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 屬性,要求端可以使用 https://host:port/my/custom/uri URL,以及 GET、POST、PUT, 或 DELETE HTTP 方法,來啟動 serviceY invoke 方法的實作。在此情況下,由於 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" />