¿Cómo agregue el atributo para el NeerNamEToken en el encabezado WSSE? -- php campo con xml campo con soap camp Relacionados El problema

How add attribute for UsernameToken in wsse Header?


1
vote

problema

Español

Fui hecho el encabezado de jabón de WSSE en PHP. ¿Cómo puedo agregar atributo a la etiqueta NiNerMetaken?

estoy usando Soapvar para crear cabezas

  $auth = new stdClass(); $auth->Username = new SoapVar($user, XSD_STRING, NULL, $this->wss_ns, NULL, $this->wss_ns);     $auth->Password = new SoapVar($passdigest, XSD_STRING, NULL, $this->wss_ns, NULL, $this->wss_ns);     $auth->Nonce = new SoapVar($encoded_nonce, XSD_STRING, NULL, $this->wss_ns, NULL, $this->wss_ns);     $auth->Created = new SoapVar($created, XSD_STRING, NULL, $this->wss_ns, NULL, $this->wss_ns);  $username_token = new stdClass();     $username_token->UsernameToken = new SoapVar($auth, SOAP_ENC_OBJECT, NULL, $this->wss_ns, 'UsernameToken', $this->wss_ns);      $security_sv = new SoapVar(             new SoapVar(                     $username_token,                     SOAP_ENC_OBJECT,                     NULL,                     $this->wss_ns,                     'UsernameToken',                     $this->wss_ns                     ),             SOAP_ENC_OBJECT, NULL, $this->wss_ns, 'Security', $this->wss_ns);     parent::__construct($this->wss_ns, 'Security', $security_sv, true);    

El resultado del servicio web es "Elemento pasado no fue un SAPELOX o no es un nombre de usuario adecuado". La razón por la que es probablemente una etiqueta de NeerNametoken incorrecta. Necesito agregar WSU: Attribute ID.

XML Salida de mi encabezado

  <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://system.erif.pl/ws/schemas" xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <SOAP-ENV:Header>     <ns2:Security SOAP-ENV:mustUnderstand="1">         <ns2:UsernameToken>             <ns2:Username>username</ns2:Username>             <ns2:Password>lD25MlnmRXtxjT8I2cv0iMhb0yQ=</ns2:Password>             <ns2:Nonce>MTA5NDY2Nji5OA==</ns2:Nonce>             <ns2:Created>2019-01-12T09:19:43Z</ns2:Created>         </ns2:UsernameToken>     </ns2:Security> </SOAP-ENV:Header> <SOAP-ENV:Body>     <ns1:GetReportRequest/> </SOAP-ENV:Body>  

La etiqueta userMetaken debería tener atributo como este

  <wsse:UsernameToken wsu:Id="UsernameToken-1"   

¿Cuál es la forma correcta de agregar atributo para UERNAMETENO EN SOAPVAR? Gracias

Original en ingles

I was made WSSE Soap Header in PHP. How can I add atribute to UsernameToken tag?

Im using SoapVar to create header

$auth = new stdClass(); $auth->Username = new SoapVar($user, XSD_STRING, NULL, $this->wss_ns, NULL, $this->wss_ns);     $auth->Password = new SoapVar($passdigest, XSD_STRING, NULL, $this->wss_ns, NULL, $this->wss_ns);     $auth->Nonce = new SoapVar($encoded_nonce, XSD_STRING, NULL, $this->wss_ns, NULL, $this->wss_ns);     $auth->Created = new SoapVar($created, XSD_STRING, NULL, $this->wss_ns, NULL, $this->wss_ns);  $username_token = new stdClass();     $username_token->UsernameToken = new SoapVar($auth, SOAP_ENC_OBJECT, NULL, $this->wss_ns, 'UsernameToken', $this->wss_ns);      $security_sv = new SoapVar(             new SoapVar(                     $username_token,                     SOAP_ENC_OBJECT,                     NULL,                     $this->wss_ns,                     'UsernameToken',                     $this->wss_ns                     ),             SOAP_ENC_OBJECT, NULL, $this->wss_ns, 'Security', $this->wss_ns);     parent::__construct($this->wss_ns, 'Security', $security_sv, true); 

Result from web service is "Element passed was not a SOAPElement or is not a proper UsernameToken". The reason why is probably wrong UsernameToken tag. I need add wsu:Id attribute.

XML output from my header

<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://system.erif.pl/ws/schemas" xmlns:ns2="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <SOAP-ENV:Header>     <ns2:Security SOAP-ENV:mustUnderstand="1">         <ns2:UsernameToken>             <ns2:Username>username</ns2:Username>             <ns2:Password>lD25MlnmRXtxjT8I2cv0iMhb0yQ=</ns2:Password>             <ns2:Nonce>MTA5NDY2Nji5OA==</ns2:Nonce>             <ns2:Created>2019-01-12T09:19:43Z</ns2:Created>         </ns2:UsernameToken>     </ns2:Security> </SOAP-ENV:Header> <SOAP-ENV:Body>     <ns1:GetReportRequest/> </SOAP-ENV:Body> 

UsernameToken tag should be have attribute like this

<wsse:UsernameToken wsu:Id="UsernameToken-1" 

What is proper way to add attribute for UernameToken in SoapVar? Thank You

        

Lista de respuestas


Relacionados problema

6  ¿Cómo ver los datos de SOAP que envía mi aplicación cliente?  ( How to see soap data my client application sends ) 
Tengo un proyecto donde he creado clases de proxy de servicio web con wsdl.exe y luego simplemente cree una instancia de esa clase (hereda el sistema.web.serv...

2  Problemas de jabón PHP con respuesta  ( Php soap problems with response ) 
Desde hace unos días, estoy experimentando problemas con mi interfaz de búsqueda de SOAP SOAT (Extensión SOAP EXTENSIÓN PHP, NO NUSOAP) al Servicio de Literat...

0  Servicios web de jabón a JSON  ( Web services soap to json ) 
Hasta ahora, puedo consumir un poco de WS usando SOAP en My Android (con la biblioteca de KSOAP2), pero como leo JSON es más ligero que XML y Android ofrecen ...

4  ¿Cómo llamar al método de jabón sobrecargado con PHP Soapclient?  ( How to call overloaded soap method with php soapclient ) 
Confluence Soap API Define dos métodos con el mismo nombre pero Parámetros diferentes: Página GetPage (token de cadena, página larga): devuelve una págin...

1  Reutilizar y agregar a 500 errores para obtener mejores estadísticas de SOAP  ( Reuse and add to 500 error to get better stats from soap ) 
Entregamos una gran cantidad de datos basados ​​en solicitudes de jabón. Cada vez que falla una solicitud, SOAP especifica un error 500, debe devolverse con u...

0  WCF: Use JSON para codificar un cuerpo de mensaje de jabón  ( Wcf use json to encode a soap message body ) 
Tenemos implementaciones de jabón de nuestros servicios y hasta ahora Tuvimos algún código heredado que envió nuestros argumentos y devoluciones en otro objet...

1  Parámetro webmethod permanecer nulo  ( Webmethod parameter stay null ) 
Estoy desarrollando una aplicación de iPhone que envía mensajes de jabón a un servicio web .NET para llamar a varios webmethods. Estos métodos obtienen datos ...

0  ¿Usando el servicio Liferay con JavaScript?  ( Using liferay service with javascript ) 
Necesito recuperar alguna información de un servidor Liferay con JavaScript. Construito un servicio en Liferay para que pueda generar solicitudes de jabón al ...

1  WSO2 ESB Cómo manejar las operaciones de jabón de forma independiente  ( Wso2 esb how to handle soap operations independently ) 
Necesito "conectar" cada operación de mi servicio de jabón a un servicio de descanso. En WSO2-ESB, he definido un nuevo servicio de proxy con un WSDL predefin...

1  ¿Hay un equivalente en el motor de la aplicación de Google que le permite usar jabón con Java y es gratis o una biblioteca de jabón con SOAP?  ( Is there a google app engine equivalent that lets you use soap with java and is ) 
Es crucial para nosotros usar SOAP y no queremos tener que intentar reescribir esta aplicación en Python, por lo que estamos buscando alternativas a Google Ap...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos