| ||||
Respuesta: Como puedo ver el header enviado en soap? Lo tengo super mirado y no he visto explicación. Si hago un __getLastRequest() me muestra:
Código XML:
Ver original Y se supone que le he añadido una cabecera con la clase que me comentas en el post http://www.forosdelweb.com/f68/soap-...igital-862645/ pero no la veo. Es para ver si la cabecera se crea bien. A lo mejor es que no lo hago bien... |
| ||||
Respuesta: Como puedo ver el header enviado en soap? hola, SoapClient::__getLastRequestHeaders — Devuelve los encabezados SOAP de la última petición. a lo que me refiero es que trataras con:
Código PHP:
Ver original es el ejemplo que quise miraras
__________________ -= El conocimiento y el saber te hacen un ser libre =- Ando en busca de conocimiento.... |
| ||||
Respuesta: Como puedo ver el header enviado en soap? Cita: Ya, pero esto te muestra las cabeceras del transporte, no del mensaje SOAP.
Iniciado por Snaft_J1 hola, a lo que me refiero es que trataras con:
Código PHP:
Ver original es el ejemplo que quise miraras |
| ||||
Respuesta: Como puedo ver el header enviado en soap? ummmm, ok. pero te recuerdo que en la clase mySoap se sobre escribe el metodo __doRequest desde el cual podrias obtener las headers, ahora si lo que quieres es explorarlo mediante php se podria hacer algo adicional como lo que sigue: nota: me tome un ratito y he modificado la clase publicada en el post que mensionas para anexarte una forma en la que se podria extraer el header.
Código PHP:
Ver original como puedes observar he adaptado un poco el metodo __doRequest para que intercepte y analice la respuesta obtenida y nos permita extraer las headers, posteriormente retorna la respuesta obtenida inicialmente. como usarlo? desde el objeto cliente basta con que llame al metodo nuevo llamado getResponseHeaders().
Código PHP:
Ver original si alguien sabe alguna otra forma de obtener las headers sin montar todo esto, seria bueno que nos lo hiciera saber, gracias. Saludos.
__________________ -= El conocimiento y el saber te hacen un ser libre =- Ando en busca de conocimiento.... |
| ||||
Respuesta: Como puedo ver el header enviado en soap? jejeje, compa crei haberte puesto la url, en todo caso si que vamos aprendiendo mas sobre este elemento, aqui esta la url http://www.sis.utoronto.ca/web_servi...e_samples.html chekatela y me cuentas yo igual tengo una duda y es, haz logrado hacer funcionar? que sucede? que no funciona? de ese modo nos sincrnonizamos mas. saludos
__________________ -= El conocimiento y el saber te hacen un ser libre =- Ando en busca de conocimiento.... |
| ||||
Respuesta: Como puedo ver el header enviado en soap? hola, mira a continuación te posteo nuevamente el script inicial modificado para que puedas pasar un certificado y logres enviar una petición firmada, si gustas lo hacemos paso a paso, por ahora te pongo el script, espero cuentes con los certificados digitales y claves privadas para ello.
Código PHP:
Ver original hasta alli bien es una primera etapa aun que es de notar que el script puede sufrir una pequeña variante dado el caso de que el metodo de transporte sea HTTP. creo que vamos progresando jejejeje. saludos y suerte.
__________________ -= El conocimiento y el saber te hacen un ser libre =- Ando en busca de conocimiento.... |
| ||||
Respuesta: Como puedo ver el header enviado en soap? Vaya, ya me has roto los esquemas. Yo pensaba que había dos formas de hacer esto. 1ª - Con la clase esta 2ª - Con las optios que pones en el último ejemplo. Pongo lo que tengo que hacer y así será más fácil.
Código:
El mecanismo de autenticación que se debe emplear estará basado en la firma digital de los mensajes SOAP entrantes. Estos mensajes SOAP deben tener una cabecera WS-Security en donde se incluya la firma digital del cuerpo (incluyendo en nodo soap:Body) y el certificado con el que se ha realizado la firma, según el perfil WS-Security Certificate Token Profile 1.0. Entonces, se supone que esas cabeceras hay que añadirlas y aparte firmarlo verdad? Me han pasado un certificado .cert (-----BEGIN CERTIFICATE----- ......... -----END CERTIFICATE-----) pero no me han pasado nunguna clave RSA. Me falta algo? El transporte es HTTPS y está securizado por IP también. Agradezco mucho tu dedicación. WSSE es nuevo para mí, ya tengo una aplicación funcionando con SOAP pero sin cabecera. Saludos. |
| ||||
Respuesta: Como puedo ver el header enviado en soap? podrias mostrar tu codigo y si es posible la salida por aqui o por un privado si gustas. saludos.
__________________ -= El conocimiento y el saber te hacen un ser libre =- Ando en busca de conocimiento.... |
| ||||
Respuesta: Como puedo ver el header enviado en soap? Si es que en lo primero que me atasco es en la explicación.
Código:
No se si he de usar todas las etiquetas de seguridad, parte de ellas, si con el certificado sólo me vale... Una pequeña ecplicación ya que el proveedor del WS no tiene atención técnica. El mecanismo de autenticación que se debe emplear estará basado en la firma digital de los mensajes SOAP entrantes. Estos mensajes SOAP deben tener una cabecera WS-Security en donde se incluya la firma digital del cuerpo (incluyendo en nodo soap:Body) y el certificado con el que se ha realizado la firma, según el perfil WS-Security Certificate Token Profile 1.0. |
| ||||
Respuesta: Como puedo ver el header enviado en soap? hola, a continuación te incluyo una serie de referencia. http://www.oasis-open.org/committees...rofile-1.0.pdf http://docs.oasis-open.org/wss/v1.1/...kenProfile.pdf http://www.owasp.org/index.php/Web_Services no necesariamente tendrias que incluirlas todas, eso depende de las condiciones preestablecidas en el ws, ahora ya que no contamos con atención tecnica diría que toca a prueba y error, es decir tendrías que realizar varios clientes donde se incluyan cada una de estas cabeceras o todas haber que sucede. pienso que el ejemplo estandar que hemos realizado aquí debería funcionar pero para ello tienes que validar que tanto tu certificado como la clave son validos y las condiciones de entorno sean las correctas. luego de ello podríamos intentar generar un cliente adecuado incluyendo el certificado y la clave, probarlo y ver que resultado obtenemos. dependiendo del resultado obtenido y el mensaje de error enviado por el ws podremos pensar en que acciones tomar. saludos cluster28 y animo esto tiene solución je je je.
__________________ -= El conocimiento y el saber te hacen un ser libre =- Ando en busca de conocimiento.... |
| ||||
Respuesta: Como puedo ver el header enviado en soap? La verdad es que no tengo todavía en marcha en entorno de pruebas por lo que ahora mismo estoy especulando con el funcionamiento del WS y así intentar ir a piñón cuando esté listo. Por no tener, no tengo ni código hecho, sólo pruebas sueltas. Viendo la documentación que me has pasado En inglés me cuesta más, pero en español no hay casi nada al respecto, he creado un prototipo de mensaje XML que se supone me piden viendo el esquema que he puesto anteriormente. Sería algo así, pero sin la encriptación. Por lo que el "soap:Body" supongo que debería cambiar.
Código XML:
Ver original Ahora tengo que investigar el tema de las referencias y los Id´s y cómo encriptar el body. Saludos. |
| ||||
Respuesta: Como puedo ver el header enviado en soap? ok, me parece bien tu estructura la veo bien, pero en este momento la encripcion del body no debe ser un problema, eso ya lo haremos, realmente no es complicado y bueno tampoco creo que sea especificamente necesario enviar el body encriptado mas que firmado. no crees que ya seria hora de ir estructurando un pequeño laboratorio que conjugue todo? jejejeje...
__________________ -= El conocimiento y el saber te hacen un ser libre =- Ando en busca de conocimiento.... |
| ||||
Respuesta: Como puedo ver el header enviado en soap? El entorno de desarrollo no depende de mí por lo que tengo que esperar unos días. He estado mirando las clases pero no se como crear la entrada "dsig:Signature". en el XML actual. He conseguido generar este:
Código XML:
Ver original Para generar esta parte:
Código XML:
Ver original Está el método "attachTokentoSig" pero al no tener la etiqueta "xxx:Signature" en el XML me salta un error, y no he visto el método para generarlo. EDICIÓN: He conseguido hacer esta cabecera:
Código XML:
Ver original Cambiando la KEY funciona. He puesto un típica de "-----BEGIN RSA PRIVATE KEY-----" por el certificado que me han facilitado "-----BEGIN CERTIFICATE-----". Ya comenté que sólo tengo un certificado pero no un clave pública. Me lío con lo de los certificados y claves públicas. Código PHP: Código PHP: Última edición por cluster28; 02/12/2010 a las 05:15 |
| ||||
Respuesta: Como puedo ver el header enviado en soap? Cita: no crees que te salta error por que estas pasando el certificado como PRIVATE_KEY y no poseemos una private_key por tanto deberia ser NULL, bueno al menos eso es lo que veo en el código que haz pegado aquí.Está el método "attachTokentoSig" pero al no tener la etiqueta "xxx:Signature" en el XML me salta un error, y no he visto el método para generarlo. con null me refiero a que puedes pasar el valor NULL al momento de asignar el private_key dado que no lo necesitamos o simplemente podrías quitar esa fracción de código. respecto a lo demás, se ve que cada vez avanzamos más. espero esto soluciones nuestras duditas y continuemos viendo avances. saludos.
__________________ -= El conocimiento y el saber te hacen un ser libre =- Ando en busca de conocimiento.... |
| ||||
Respuesta: Como puedo ver el header enviado en soap? El tema de la KEY al ser un certificado hay que hacerlo así: Código PHP: Warning: DOMNode::C14N() [domnode.c14n]: Relative namespace UR is invalid here : (null) in /web/WSF/xmlseclibs2010.php on line 744 Warning: DOMNode::C14N() [domnode.c14n]: Internal error : checking for relative namespaces in /web/WSF/xmlseclibs2010.php on line 744 Warning: DOMNode::C14N() [domnode.c14n]: Internal error : processing docs children list in /web/WSF/xmlseclibs2010.php on line 744 Warning: openssl_sign() [function.openssl-sign]: supplied key param is a public key in /web/WSF/xmlseclibs2010.php on line 452 Warning: openssl_sign() [function.openssl-sign]: supplied key param cannot be coerced into a private key in /web/WSF/xmlseclibs2010.php on line 452 Sigo indagando |
| ||||
Respuesta: Como puedo ver el header enviado en soap? claro lo que digo es que ya lo estas cargando aqui
Código PHP:
asi que pasalo nulo o quitalo y dime si te genera esos errores aun..Ver original o pudo haber sido que me confundi jejeje. saludos.
__________________ -= El conocimiento y el saber te hacen un ser libre =- Ando en busca de conocimiento.... |
| ||||
Respuesta: Como puedo ver el header enviado en soap? Progresos: Con este código: Código PHP:
Código XML:
Ver original Se supone que está todo correcto menos "<ds:SignatureValue></ds:SignatureValue>" que no consigo llenarlo porque me salen los Warnings: Warning: openssl_sign() [function.openssl-sign]: supplied key param is a public key in /web/WSF/xmlseclibs2010.php on line 452 Warning: openssl_sign() [function.openssl-sign]: supplied key param cannot be coerced into a private key in /web/WSF/xmlseclibs2010.php on line 452 Poniendo que se trata de un certificado y su clave es pública consigo generar el XML pero sin "<ds:SignatureValue></ds:SignatureValue>". Ya te digo que no puedo probarlo contra el WS, pero no tiene mala pinta. Sigo trabajando.... Saludos Última edición por cluster28; 02/12/2010 a las 10:42 |
| ||||
Respuesta: Como puedo ver el header enviado en soap? bien, he modificado un poco tu codigo, prueba con:
Código PHP:
Ver original esperemos que tal se avanza. saludos
__________________ -= El conocimiento y el saber te hacen un ser libre =- Ando en busca de conocimiento.... |
| ||||
Respuesta: Como puedo ver el header enviado en soap? o tambien podríamos probar a intentar firmarlo y generar la clave nosotros de forma automatica
Código PHP:
Ver original
__________________ -= El conocimiento y el saber te hacen un ser libre =- Ando en busca de conocimiento.... |
Etiquetas: |