El cliente REST de z/OS Connect permite a los usuarios de
z/OS Connect direccionar solicitudes a aplicaciones REST remotas a
través de z/OS Connect; por lo tanto, se saca partido de la
infraestructura de interceptor existente.
Acerca de esta tarea
Esta función está disponible cuando se configura la
característica zosConnect-1.2. El servicio de cliente REST de z/OS
Connect es una implementación de SPI de servicio de z/OS Connect. Las
solicitudes que invocan este servicio se realizan de dos formas:
Un ejemplo de invocación de servicio para el servicio definido
es: https://host:puerto/my/custom/uri (HTTP verb:
GET/POST/PUT/DELETE). z/OS Connect comprende la asociación
entre el atributo invokeURI y el atributo
serviceName definido en el ejemplo. z/OS Connect
llama al método de invocación en la implementación del servicio
asociado de z/OS Connect (restClientServiceY).
Si desea más información sobre la prestación y la flexibilidad que ofrece el atributo invokeURI,consulte la documentación para z/OS Connect 1.2.
- Configure el elemento
zosConnectServiceRestClient y asócielo a un elemento
zosConnectService.
<featureManager>
<feature>zosConnect-1.2</feature>
</featureManager>
<!-- Definición de interceptor global para ejecutar para
todas las solicitudes de servicio -->
<zosConnectInterceptors interceptorRef="auth,audit,fileSystemLogger" id="globalInterceptorList1"/>
<fileSystemloggerInterceptor id="fileSystemLogger" logName="service1Log_%SERVERNAME%"sequence="1"/>
<authorizationInterceptor id="auth" sequence="2"/>
<auditInterceptor id="audit" sequence="3"/>
<!-- Definición de ZosConnectManager -->
<zosConnectManager globalAdminGroup="ADMIN"
globalOperationsGroup="OPS"
globalInvokeGroup="INVOKE"
globalInterceptorsRef="globalInterceptorList1"/>
<zosConnectServiceRestClient id="restClientServiceY"
host="remoteHostName"
port="8800"
uri="/remote/endpoint"
httpMethod="DELETE"/>
<zosConnectService serviceName="serviceY"
serviceRef="restClientServiceY" invokeURI="/my/custom/uri" />
En el ejemplo, las solicitudes que especifican como destino el
servicio serviceY se direccionan al host remoto y el puerto que se ha
configurado en el servicio restClientServiceY asociado y que
utiliza el URI configurado y el método HTTP DELETE. La carga útil de
JSON se envía automáticamente con la solicitud remota. Cuando
configure el elemento zosConnectServiceRestClient,
especifique el nombre de host y los atributos de número de
puerto. Si no especifica los atributos uri o httpMethod, los valores
que se utilizan son los de la solicitud de cliente original que
está especificando como destino el servicio serviceY. Además, el
ejemplo muestra que dado que los interceptores se han configurado
para ejecutarse de forma global, cada solicitud que especifica como
destino el servicio serviceY se registra, autoriza y audita
antes de direccionarse al punto final remoto. Los interceptores
también registran y auditan las respuestas cuando se devuelven del
punto final remoto. Puesto que el atributo invokeURI se ha
configurado para el servicio serviceY, el solicitante puede iniciar
la implementación del método serviceY invokeutilizando el URL siguiente:
https://host:puerto/my/custom/uri y
utilizandop cualquiera de estos métodos GET,
POST, PUT, o DELETE
HTTP. En este caso, puesto que el servicio serviceY hace
referencia a una instancia del servicio de cliente REST de z/OS
Connect, se llama al método invoke() en esta
instancia. Para obtener información adicional sobre los atributos de configuración disponibles y los valores predeterminados, consulte la documentación de z/OS Connect 1.0 y z/OS Connect 1.2.
- (Opcional) Configure la autenticación básica. Añada la característica appSecurity-2.0 al archivo server.xml.
<featureManager>
<feature>zosConnect-1.2</feature>
<feature>appSecurity-2.0</feature>
</featureManager>
<zosConnectServiceRestClientBasicAuth id="fredBasicAuth" userName="Fred" password="{xor}OS06Oy8oOw=="/>
<zosConnectServiceRestClient id="restClientServiceY"
host="remoteHostName"
port="8800"
uri="/remote/endpoint"
httpMethod="POST"
basicAuthRef="bobBasicAuth"/>
<zosConnectService serviceName="serviceY"
serviceRef="restClientServiceY" />
La configuración permite que el nombre de usuario y la contraseña que
se han configurado para el elemento
zosConnectServiceRestClientBasicAuth se
propaguen cuando se realiza la solicitud al punto final de
aplicación REST remoto.
- (Opcional) Configure la autenticación de certificado. Añada la
característica appSecurity-2.0 al archivo
server.xml.
El ejemplo muestra cómo configurar el almacén de claves del
cliente y el almacén de confianza del cliente y asociarlos a la
configuración de zosConnectServiceRestClient.
<featureManager>
<feature>zosConnect-1.2</feature>
<feature>appSecurity-2.0</feature>
</featureManager>
<keyStore id="clientKeyStore" password="zosConnect"
location="${server.config.dir}/resources/security/clientKey.jks" />
<keyStore id="clientTrustStore" password="zosConnect"
location="${server.config.dir}/resources/security/clientTrust.jks" />
<ssl id="sslCertificates" keyStoreRef="clientKeyStore" trustStoreRef="clientTrustStore"/>
<zosConnectServiceRestClient id="restClientServiceY"
host="remoteHostName"
port="8800"
uri="/remote/endpoint"
httpMethod="PUT"
sslCertsRef="sslCertificates"/>
<zosConnectService serviceName="serviceY"
serviceRef="restClientServiceY" />