依預設,Java 應用程式沒有對 Java API 所要求的活動加諸任何安全限制。若要使用 Java 安全性來保護 Java 應用程式,免於執行可能不安全的動作,您可以在執行該應用程式的 JVM 中啟用安全管理程式。
關於這項作業
安全管理程式會施行安全原則,原則是指派給程式碼來源的一組許可權(系統存取權)。Java 平台提供預設的原則檔。但若要在 Java 安全性作用中時,讓 Java 應用程式可以在 CICS 中順利執行,您必須指定其他原則檔,提供 CICS 執行該應用程式所需要的許可權。
您必須針對已啟用安全管理程式的每一種 JVM,指定這個額外的原則檔。CICS 提供一些範例,您可以用來建立您的專屬原則。
附註: - OSGi 安全代理程式範例在您的專案中建立稱為 com.ibm.cics.server.examples.security 的 OSGi 中介軟體組,該專案包含安全設定檔。此設定檔套用於安裝所在架構中的所有 OSGi 軟體組。
- example.permissions 檔案包含在 JVM 伺服器中執行應用程式的特定許可權,包括檢查以確定應用程式沒有使用 System.exit() 方法。
- CICS 必須具備 zFS 中部署 OSGi 軟體組之目錄的讀取權和執行權。
對於在 JVM 伺服器的 OSGi 架構中執行的應用程式:
程序
- 在 CICS Explorer® SDK 中建立外掛程式專案,然後選取提供的 OSGi 安全代理程式範例。
- 在專案中,選取 example.permissions 檔案,以編輯安全原則的許可權。
- 將 OSGi 軟體組部署到 zFS 中的合適目錄。
- 編輯 JVM 伺服器的 JVM 設定檔,將 OSGi 軟體組新增至 OSGI_BUNDLES 選項,然後再新增任何其他組合:
- OSGI_BUNDLES=/u/bundles/com.ibm.cics.server.examples.security_1.0.0.jar,/usr/lpp/cicsts42/lib/com.ibm.cics.db2.jcc.jar
- 將下列 Java 環境變數新增至 JVM 設定檔,以啟用 OSGi 架構中的安全:
- org.osgi.framework.security=osgi
- 儲存變更,並啟用 JVMSERVER 資源,以在 JVM 伺服器中安裝中介軟體組。
結果
呼叫 Java 應用程式時,JVM 先判定類別的程式碼來源,並查詢安全原則,然後才對該類別授與適當的許可權。