opened
LuisUrrutia
username_0
Los archivos ```soap-validation.php```, ```soap-wsse.php``` y ```xmlseclibs.php``` no cuentan con namespaces.
Sería ideal renombrar la carpeta a ```Wss``, separar las clases de ```xmlseclibs.php``` en sus propios archivos, y renombrar los ficheros para que queden acorde y puedan funcionar con cualquier Autoloader, como por ejemplo el recomendado por PSR-4.

Entiendo que dichos archivos no son de su autoría e imagino que por eso no lo hicieron, sin embargo, quizás se le podría aplicar otro namespace como por ejemplo ```\OrangePeople\Wss```, aunque desconozco que implicaciones tendría.
En teoría, generaría problemas usar un namespace diferente, por la forma en que trabajan los autoloaders convencionales, por lo cual sería mejor usar un namespace como ```Freshwork\Transbank\Wss``` o derechamente crear otro repositorio/librería para composer con dichos archivos y que esta librería sea dependiente de estos.
Namespaces para archivos en carpeta wss
issue
created
gonzunigad
username_1
Existe la librería. 
Está en https://github.com/robrichards/xmlseclibs pero la gente de Orange People realizó unas modificaciones que hay que analizar bien para que al hacer la migración no se rompa nada. 

Si alguien tiene tiempo de hacer pruebas y hacer un PR, sería ideal.
comment
created
LuisUrrutia
username_0
Superando las pruebas, todavía tendríamos el mismo problema con ```soap-validation.php```.
Sobre [xmlseclibs](https://github.com/robrichards/xmlseclibs) y [soap-wsse](https://github.com/robrichards/wse-php) no tendríamos que preocuparnos, pero con ```soap-validation.php``` podríamos intentar hacer un PR al [repositorio donde se mantiene](https://github.com/OrangePeople/php-wss-validation) para hacerlo compatible con composer y como solución temporal, agregar el namespace ```Freshwork\Transbank\Wss```.

¿Qué opinan? Podría realizar estas pruebas más tarde, utilizando esta solución temporal.
comment
created
gonzunigad
username_1
Ya cambié y agregé un namespace a SoapValidation en la version 1.0.4. Falta lo otro.
comment
created
LuisUrrutia
username_0
Te comento lo que he averiguado hasta el momento.

Estoy trabajando con la clase ```XMLSecurityDSig``` que sirve para trabajar con los _elementos_ de seguridad sobre los nodos ```Signature``` dentro de la cabecera de un SOAP (WS-Security)

El tema es que, al parecer, la librería ```xmlseclibs``` está más orientada a la generación se firmas y documentos cifrados, que a la validación de los mismos en la forma que está realizado el Webservice de Webpay.
Conozco muy poco acerca de como trabaja WSS y SOAP, por tanto no puedo decirlo con toda seguridad, pero lo que si es cierto, es que el equipo de OrangePeople creó sus métodos personalizados para validar la información del nodo ```Body``` con el ```DigestValue``` de WSS y realmente no es posible crear una clase extendida de ```XMLSecurityDSig``` e implementar estos métodos (los de OrangePeople) porque cierta funcionalidad de ```XMLSecurityDSig``` tiene visibilidad privada... aparte de que no corresponde que esté esa funcionalidad (validar body) en dicha clase, por lo que intentaré crear mi propia clase, reutilizando algunos elementos de ```XMLSecurityDSig``` para crear un ```SoapValidation``` personalizado y así aprovechamos los parches que ha tenido ```xmlseclibs``` con respecto a seguridad.
comment
created
LuisUrrutia
username_0
Acá nuevamente y luego de varias horas intentando entender todo este tema de WSS, logré crear una pequeña librería de validación que puede sustituir a ```soap-validation.php```.

https://github.com/username_0/TransbankSoapValidation

Ya probé la validación del mismo con PatPass y Webpay Normal, por tanto si pudieras revisarlo tu también sería genial.

Básicamente lo único que hay que cambiar es ```SoapValidation(``` de esta linea:
https://github.com/freshworkstudio/transbank-web-services/blob/381f10e9f535579c41d620843ecd09d0649a34f8/src/TransbankWebService.php#L83

por: ```\username_0\TransbankSoapValidation\Validation(```
comment
closed
gonzunigad
username_1
issue