La prise en charge du client REST z/OS Connect permet à des utilisateurs z/OS Connect de router des demandes vers des applications REST distantes via z/OS Connect, bénéficiant ainsi
de l'infrastructure d'intercepteur existante.
Pourquoi et quand exécuter cette tâche
Cette fonction est disponible lorsque vous configurez la fonction zosConnect-1.2. Le service z/OS Connect REST Client est une implémentation SPI de service z/OS Connect. Les demandes
appelant ce service sont effectuées de deux manières :
Exemple d'appel de service pour le service défini :
https://host:port/my/custom/uri (HTTP verb: GET/POST/PUT/DELETE). z/OS Connect comprend l'association entre l'attribut invokeURI
et l'attribut serviceName défini dans l'exemple. z/OS Connect appelle la méthode d'appel sur l'implémentation du service associé z/OS Connect (restClientServiceY).
Pour en savoir plus sur les capacités et la flexibilité offertes par l'attribut invokeURI, veuillez consulter la documentation de z/OS Connect 1.2.
- Configurez l'élément zosConnectServiceRestClient et associez-le à un élément zosConnectService.
<featureManager>
<feature>zosConnect-1.2</feature>
</featureManager>
<!-- Global interceptor definition to run for all service requests -->
<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"/>
<!-- ZosConnectManager definition -->
<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" />
Dans l'exemple, les demandes qui ciblent le service serviceY sont routées vers l'hôte distant et
le port qui est configuré sous le service associé restClientServiceY et utilise l'URI configuré
et la méthode HTTP DELETE. Le contenu JSON est automatiquement envoyé avec la demande distante. Lorsque vous configurez l'élément zosConnectServiceRestClient, indiquez les attributs
de nom d'hôte et de numéro de port. Si vous ne spécifiez pas les attributs uri ou httpMethod,
les valeurs utilisées sont celles de la demande client d'origine qui cible le service serviceY. L'exemple montre également que, les intercepteurs étant configurés pour s'exécuter globalement,
chaque requête qui cible le service serviceY est consignée, autorisée et auditée avant
d'être routée vers le noeud final distant. Les intercepteurs journalisent et auditent également
les réponses sur le retour depuis le noeud final distant. Parce qu'un attribut invokeURI
est configuré pour le service serviceY, le demandeur peut démarrer l'implémentation
de la méthode invoke du service serviceY à l'aide de l'URL suivante :
https://host:port/my/custom/uri, et utiliser au choix la méthode GET,
POST, PUT, ou DELETE HTTP. Dans ce cas, comme le service serviceY fait référence à une instance du service client REST
z/OS Connect, la méthode invoke() sur cette instance est appelée. Pour plus d'informations sur les attributs de configuration et les valeurs par défaut
disponibles, voir documentation relative à z/OS Connect 1.0 et z/OS Connect 1.2.
- (Facultatif) Configurez l'authentification de base. Ajoutez la fonction appSecurity-2.0
au fichier 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 configuration active les nom d'utilisateur et mot de passe configurés
pour que l'élément zosConnectServiceRestClientBasicAuth
soit transmis quand la demande envoyée au noeud final d'application REST distant est faite.
- (Facultatif) Configurez l'authentification par certificat. Ajoutez la fonction appSecurity-2.0
au fichier server.xml.
L'exemple montre comment configurer le magasin de clés client et le magasin de clés de confiance client
et les associer à la configuration 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" />