none
Servicio Web SecurityHeaderType RRS feed

  • Pregunta

  • Muy Buenas.

    Debo consumir un servicio web xml Axis2, mi problema es a la hora de construir la cabecera para validarme.

    Despues de crear una referencia con el WSDL, tengo la clase SecurityHeaderType, dentro de la cual hay dos propiedades Any que es un array de xmlElement y anyAttr que es un array de XMLAtribute, lo que debo enviar es lo siquiente :

    <?xml version="1.0" encoding="UTF-8"?>
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
     xmlns:oas="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
     xmlns:xm="http://www.w3.org/2005/05/xmlmime">

     <soapenv:Header>
      <oas:Security>
       <oas:UsernameToken>
        <oas:Username>xxxx</oas:Username>
        <oas:Password>yyyy</oas:Password>
       </oas:UsernameToken>
      </oas:Security>
     </soapenv:Header>
     <soapenv:Body>
      ..............
     </soapenv:Body>
    </soapenv:Envelope>

    Despues de hacer muchas, muchas pruebas lo que siempre recibo es "WSDoAllReceiver: security processing failed (actions mismatch)"

    Pare ser mas especifico :

    "El cliente encontró el tipo de contenido de respuesta 'multipart/related; boundary=MIMEBoundaryurn_uuid_7816BB02E254BDC49D1267777964562; type="application/xop+xml"; start="<0.urn:uuid:7816BB02E254BDC49D1267777964563@apache.org>"; start-info="text/xml"', pero se esperaba 'text/xml'. Error de la solicitud con el mensaje de error: -- --MIMEBoundaryurn_uuid_7816BB02E254BDC49D1267777964562 Content-Type: application/xop+xml; charset=utf-8; type="text/xml" Content-Transfer-Encoding: binary Content-ID: <0.urn:uuid:7816BB02E254BDC49D1267777964563@apache.org>  <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server</faultcode><faultstring>WSDoAllReceiver: security processing failed (actions mismatch)</faultstring><detail /></soapenv:Fault></soapenv:Body></soapenv:Envelope> --MIMEBoundaryurn_uuid_7816BB02E254BDC49D1267777964562-- --."

    Alguien me podria echar una mano, sobre que debo hacer en Any y AnyAttr para componer la cabecera del mensaje?

    Muchas Gracias

    viernes, 5 de marzo de 2010 8:40

Todas las respuestas

  • hola

    ok tienes un servicio creado con Axis2, o sea esta en java, pero tu debes consumirlo desde .net ?

    si es asi porque no creas el proxy al servicio usardo el wsdl

    por ahi podrias probar directametne agregar la web refernce en el VS

    o sino crear manualmente el proxy, usando el wsdl.exe

    Creating an XML Web Service Proxy

    Web Services Description Language Tool (Wsdl.exe)


    me imagino qeu si el wsdl define que esa infor debe ir el el head del mensaje soap el proxy se armara para que viaje alli esa informacion

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 5 de marzo de 2010 13:11
  • El problema que tengo es que despues de añadir la referencia, las propiedades que tiene la clase SecurityHeaderType son :
            <System.Xml.Serialization.XmlAnyElementAttribute()>  _
            Public Property Any() As System.Xml.XmlElement()
                Get
                    Return Me.anyField
                End Get
                Set
                    Me.anyField = value
                End Set
            End Property
           
            '''<remarks/>
            <System.Xml.Serialization.XmlAnyAttributeAttribute()>  _
            Public Property AnyAttr() As System.Xml.XmlAttribute()
                Get
                    Return Me.anyAttrField
                End Get
                Set
                    Me.anyAttrField = value
                End Set
            End Property

    Y realmente no se que hacer con ellas

     

     

    lunes, 8 de marzo de 2010 12:26