El Java Mutual TLS Client es un external object Java que cumple con el objetivo de comunicarse con WebServices de protocolo SOAP seguro.
Java Mutual TLS Client incluye una tag de securidad (wsse:Security) en el encabezado del envelope SOAP en cada solicitud enviada al proveedor del Web Service. Esta tag contiene información de autenticación para que el proveedor pueda verificar la identidad y integralidad de la solicitud.
Para eso utiliza certificados digitales, soportando los formatos de certificado más comunes, incluyendo JSK y PKCS12 (.pfx o .p12).
Java Mutual TLS Client se adapta necesidades específicas mediante una configuración completamente parametrizable: el endpoint(URL), el mensaje y el certificado pueden ser configurados en tiempo de ejecución.
WS-Security (Seguridad en Servicios Web) es un protocolo de comunicaciones que suministra un medio para aplicar seguridad a los Servicios Web. La especificación puede ser encontrada en ese enlace: https://docs.oasis-open.org/wss-m/wss/v1.1.1/os/wss-SOAPMessageSecurity-v1.1.1-os.html
El External Object principal es el SOAPmTLSClient que básicamente tiene el método (ExecuteRequest) que realizará el consumo del SOAP.
El External Object SOAPmTLSDataIn corresponderá al parámetro de entrada del método ExecuteRequest y consta de los siguientes campos:
Address: URL del EndPoint a la que se realizará la conexión SOAP.
EnvelopeXML: XML del Envelope que realizará el Request.
KeyStoreType: Tipo de Key Store que se utilizará. Los valores válidos son PFX o JKS.
KeyStoreFile: Path identificando el KeyStore.
KeyStorePassword: Contraseña del KeyStore. Solo válido para JKS.
KeyStoreKeyPassword: Contraseña de la clave privada del Certificado.
KeyStoreKeyAlias: Alias del Certificado.
Encoding: Encoding a utilizar.
ConnectionTimeOut: Tiempo máximo de espera de la conexión.
ReadTimeOut: Tiempo máximo de la lectura de la respuesta.
LogActive: Habilitación de generación de logs en el Output.
El External Obejct SOAPmTLSResultData corresponderá al parámetro de salida del método ExecuteRequest que corresponderá con la respuesta del SOAP y consta de los siguientes campos:
ErrorCode: Código de error en caso de fallo.
ErrorDescription: Descripción del error en caso de fallo.
Result: Envelope de Respuesta del SOAP.