z/OS Connect REST 用戶端支援可讓 z/OS Connect 使用者透過 z/OS Connect,將要求遞送至遠端 REST 應用程式;因而利用現有的攔截程式基礎架構。
關於這項作業
在您配置 zosConnect-1.2 特性時,就可以使用此功能。 z/OS Connect REST 用戶端服務是
z/OS Connect 服務 SPI 實作。 呼叫此服務的要求可用下列兩種方式來建立:
比方說,所定義之服務的服務呼叫如下:https://host:port/my/custom/uri (HTTP verb: GET/POST/PUT/DELETE)。 z/OS Connect
瞭解 invokeURI
屬性與範例中定義之
serviceName
屬性之間的關聯。 z/OS Connect 會在實作 z/OS Connect 相關聯服務 (restClientServiceY) 時,呼叫 invoke 方法。
如需 invokeURI
屬性所提供之功能和彈性的相關資訊,請參閱 z/OS Connect 1.2的說明文件。
程序
- 配置
zosConnectServiceRestClient
元素,並將它與 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" />
在範例中,以 serviceY 服務為目標的要求所要送往的遠端主機和埠,是在相關聯的 restClientServiceY 服務之下配置,且使用所配置 URI 和 DELETE HTTP 方法。 JSON 內容會自動隨遠端要求一起傳送。 當您配置 zosConnectServiceRestClient
元素時,請指定主機名稱和埠號屬性。 如果您沒有指定 uri 或 httpMethod 屬性,會使用以 serviceY 服務為目標之原始用戶端要求中的值。 範例也顯示,由於攔截程式是配置成廣域執行,凡是以 serviceY 服務為目標的每一項要求都會先經過記載、授權和審核,再送往遠端端點。 攔截程式也會記載和審核遠端端點所傳回的回應。 因為已針對 serviceY 服務配置 invokeURI 屬性,所以要求者可以使用下列 URL 並使用 GET
、 POST
、 PUT,
或 DELETE HTTP
方法來開始實作 serviceY invoke
方法:
https://host:port/my/custom/uri 。 在此情況下,因為 serviceY 服務參照 z/OS Connect REST 用戶端服務的實例,所以會呼叫此實例上的 invoke()
方法。 如需可用的配置屬性和預設值的相關資訊,請參閱 z/OS Connect 1.0 和 z/OS Connect 1.2的說明文件。
- (選用)配置基本鑑別。 將
appSecurity-2.0
特性新增至 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" />
此配置會在對遠端 REST 應用程式端點發出要求時,傳播配置給 zosConnectServiceRestClientBasicAuth
元素的使用者名稱與密碼。
- (選用)配置憑證鑑別。 將
appSecurity-2.0
特性新增至 server.xml
檔。
此範例顯示如何配置用戶端金鑰儲存庫及用戶端信任儲存庫,並將它們與 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" />