Buenos días,
Ingrese al link que me compartiste, tengo las siguientes consultas:
Ahi veo que da dos opciones:
If using the transport API's:
rc = axiscTransportSetProperty(tHandle: AXISC_PROPERTY_HTTP_SSL:
%addr(propBuf): %addr(NULLSTR): %addr(NULLSTR): %addr(NONE):
%addr(NONE): %addr(NONE): %addr(NULLSTR): %addr(NULLSTR):
%addr(SETTRUE): *NULL);
If using stubs created by wsdl2ws.sh:
axiscStubSetSecure(WsStub.handle:
%addr(propBuf): %addr(NULLSTR): %addr(NULLSTR): %addr(NONE):
%addr(NONE): %addr(NONE): %addr(NULLSTR): %addr(NULLSTR):
%addr(SETTRUE): *NULL);
Para procesar el wsdl que me paso el el proveedor del web service use qsh:
/QIBM/ProdData/OS/WebServices/V1/client/bin/wsdl2ws.sh
-o/WSSUNAT2/RPGSFE01QAS -lrpg -ms256 -ma999
-s/qsys.lib/WSERVICE.lib/wsrpg.srvpgm
/WSSERVICE/WSOSE.wsdl
En este caso debería usar: axiscStubSetSecure o tambien puedo usar
axiscTransportSetProperty.
En el link tambien dice que se puede usar el webservice con certificado o
sin el certificado, este certificado lo debo solicitado al proveedor del
webservice?, de ser asi como lo instalo en AS400?
Gracias por la respuesta
Miguel
El mar., 14 de jul. de 2020 a la(s) 03:51, Alex Martínez ([email protected])
escribió:
> A mi me parece que no estás utilizando HTTP_SSL como transporte para
> invocar al WS
>
> ¿no utilizas axiscTransportSetProperty(tHandle:
> AXISC_PROPERTY_HTTP_SSL...... ¿?¿?¿?
>
> Supongo que has utilizado éste ejemplo. verás que hay que especificar
> además que utilizas SSL
>
>
> https://www.ibm.com/support/pages/how-consume-iws-web-service-behind-ssl-connection-rest-or-soap
>
>
> Otra opción es incluir el log trace para depurar el proceso
>
> axiscAxisStartTrace('/tmp/axistransport.log': 'engine;transport');
>
>
>
> El lun., 13 jul. 2020 a las 18:15, Miguel SB (<[email protected]>)
> escribió:
>
>> Buenos días este es el wsdl del web service:
>>
>> https://calidad.escondatagate.net/wsParser_2_1/soap/wsPaserSoap.wsdl
>>
>> Tengo un usuario y contraseña para el web service y si lo estoy usando:
>> este el mi codigo:
>>
>> WsStub.endpoint = %trim(I20STU);
>> ruta = '/QIBM/USERDATA/ICSS/CERT/SERVER/DEFAULT.KDB' + x'00';
>> none = 'NONE' + x'00';
>> SETTRUE = 'true' + x'00';
>> EXSR LEETX;
>> b64pr = apr_base64_encode_binary(var1
>> :rddata
>> :len);
>> Input2.fileName.value = '20347646891-01-F602-0009060.txt';
>> Input2.fileContent.value = var1;
>> // Invoca la operación del WebService
>> IF (stub_create_wsPaserSoapPort(WsStub) = *ON);
>> axiscStubSetUsername(WsStub.handle:I20USE);
>> axiscStubSetPassword(WsStub.handle:I20PSW);
>> axiscStubSetSecure(WsStub.handle:
>> %addr(ruta): %addr(NULLSTR): %addr(NULLSTR): %addr(NONE):
>> %addr(NONE): %addr(NONE): %addr(NULLSTR): %addr(NULLSTR):
>> %addr(SETTRUE): *NULL);
>>
>> IF (stub_op_enviarDocumento(WsStub:Input2:Result)=*ON);
>> PRPT = Result.responseMessage;
>> PHASH = Result.hashcode;
>> ELSE;
>> ENDIF;
>>
>> // Destroy Web service stubs.
>> stub_destroy_wsPaserSoapPort(WsStub);
>> *INLR=*ON;
>> /end-free
>> *---------------------------------------------------
>> C LEETX BEGSR
>> C EVAL flags = O_RDONLY
>> C EVAL FD = OPEN('/BASE64/PRUEBA.TXT':
>> C FLAGS)
>> C IF FD < 0
>> C EVAL MSG = 'ERROR'
>> C ENDIF
>> *-
>> C EVAL LEN = READ(FD: %ADDR(RDDATA):
>> C %SIZE(RDDATA))
>> C EVAL MSG = 'TAMAÑO:' + %TRIM(%EDITC(LEN:'M'))
>> C Msg dsply
>> C callp close(fd)
>> C ENDSR
>>
>> Al principio me salia un error de certificado,buscando encontre que tenia
>> que hacer una instalación en un gestor de certificados ingresando:
>> http://ip:2001/QIBM/ICSS/Cert/Admin/qycucm1.ndm/main0, y luego colocar
>> el siguiente codigo:
>>
>> axiscStubSetSecure(WsStub.handle:
>> %addr(ruta): %addr(NULLSTR): %addr(NULLSTR): %addr(NONE):
>> %addr(NONE): %addr(NONE): %addr(NULLSTR): %addr(NULLSTR):
>> %addr(SETTRUE): *NULL);
>>
>> El proveedor del web service me dio este ejemplo:
>>
>> <SOAP-ENV:Envelope xmlns:SOAP-ENV="
>> http://schemas.xmlsoap.org/soap/envelope/" xmlns:enviarDocumento="
>> http://service.parser.escondatagate.net">
>>
>> <SOAP-ENV:Header>
>>
>> <wsse:Security xmlns:wsse="
>> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
>> ">
>>
>> <wsse:UsernameToken>
>>
>> <wsse:Username>User</wsse:Username>
>>
>> <wsse:Password>Password</wsse:Password>
>>
>> </wsse:UsernameToken>
>>
>> </wsse:Security>
>>
>> </SOAP-ENV:Header>
>>
>> <SOAP-ENV:Body>
>>
>> <enviarDocumento:enviarDocumento>
>>
>> <fileName>20100049181-03-B503-1013262.txt</fileName>
>>
>> <fileContent>
>> SURFfEI1MDMtMTAxMzI2MnwyMDIwLTA1LTAxfDE2OjI5OjExfDAzfFBFTnx8MjAyMC0wNS0wMQ0KRU1JfDZ8MjAxMDAwNDkxODF8VEFJIExPWSBTQXxUQUkgTE9ZIFNBfDE1MDEyMnxKUiBNQVJJQU5PIE9ESUNJTyAxNTMtU1VSUVVJTExPLUxJTUEtTElNQXx8TElNQXxMSU1BfFNVUlFVSUxMT3xQRXx8fDAwMDANClJFQ3wxfDExMTExMTExfENMSUVOVEUgVkFSSU9TfHx8fHxQRXx8DQpDQUJ8MTAwMXwyLjU0fHx8fHx8fHx8fHx8fHxbMTAwMHwwLjQ2XXx8fHwzLjAwfHx8MDEwMXxbMTAwMHxUUkVTIFkgMDAvMTAwIFNPTEVTXXwwLjQ2fA0KREVUfDAwMDAxfDAwMzMwOHxMQVBJWiBBTUFSIEMvQiBIQiBZSU1JIChDQVgxMil8MS4wMHxOSVV8Mi41NHwzLjAwfFsxMDAwfDAuNDZ8MTB8Mi41NHwxOC4wMF18Mi41NHx8fHx8MC40NnwNCkFESXxAQDF8QVM0MDB8DQo
>> =</fileContent>
>>
>> </enviarDocumento:enviarDocumento>
>>
>> </SOAP-ENV:Body>
>>
>> </SOAP-ENV:Envelope>
>>
>>
>>
>> El sáb., 11 de jul. de 2020 a la(s) 02:19, Alex Martínez (
>> [email protected]) escribió:
>>
>>> El WS que quieres utilizar tiene habilitada una capa de seguridad,
>>> posiblemente en la cabecera haya que indicar un usuario, contraseña y/o
>>> token
>>>
>>> <soapenv:Header>
>>> <web:AuthenticationToken>
>>> <web:licenseKey>.............</web:licenseKey>
>>> <web:password>...........</web:password>
>>> <web:username>................</web:username>
>>> </web:AuthenticationToken>
>>> </soapenv:Header>
>>>
>>>
>>>
>>> El sáb., 11 jul. 2020 a las 4:11, Miguel SB (<[email protected]>)
>>> escribió:
>>>
>>>> Buenas noches,
>>>> Estoy tratando de enviar información por webservice a un servidor
>>>> externo desde AS400 y me esta dando el siguiente error:
>>>>
>>>> AxisSoapException: SOAP fault occurred: faultcode : SOAP-ENV:Client
>>>> faultstring: com.sun.xml.wss.XWSSecurityException: Message does not conform
>>>> to configured policy [ AuthenticationTokenPolicy(S) ]: No Security Header
>>>> found; nested exception is com.sun.xml.wss.XWSSecurityException:
>>>> com.sun.xml.wss.XWSSecurityException: Message does not conform to
>>>> configured policy [ AuthenticationTokenPolicy(S) ]: No Security Header
>>>> found faultactor :
>>>>
>>>> Por favor me podrían indicar porqué este que sale ese mensaje de error
>>>> y que puedo hacer para corregirlo.
>>>>
>>>> Muchas gracias
>>>>
>>>> Miguel
>>>>
>>>> ____________________________________________________
>>>> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
>>>> Forum.Help400 © Publicaciones Help400, S.L.
>>>
>>> ____________________________________________________
>>> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
>>> Forum.Help400 © Publicaciones Help400, S.L.
>>
>> ____________________________________________________
>> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
>> Forum.Help400 © Publicaciones Help400, S.L.
>
> ____________________________________________________
> Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
> Forum.Help400 © Publicaciones Help400, S.L.
____________________________________________________
�nete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 � Publicaciones Help400, S.L.