缺省情况下,Java 应用程序不会针对 Java API 请求的活动设置安全限制。
要使用 Java 安全性防止 Java 应用程序执行潜在的不安全操作,您可以针对运行应用程序的 JVM 启用安全管理器。
关于此任务
安全管理器会强制执行一种安全策略,该策略是一组分配给代码源的许可权(系统访问特权)。Java 平台随附一个缺省的策略文件。
但是,要使 Java 应用程序能够在激活 Java 安全性的情况下在 CICS 中成功运行,您必须指定一个额外的策略文件,为 CICS 提供运行该应用程序所需的许可权。
您必须为已启用安全管理器的每种 JVM 指定此额外的策略文件。
CICS 提供了一些示例,供您创建自己的策略。
过程
对于在 JVM 服务器的 OSGi 框架中运行的应用程序:- 在 CICS Explorer™ SDK 中创建一个插件项目,并选择提供的 OSGi 安全代理程序示例。 本示例将在您包含安全概要文件的项目中创建一个名为 com.ibm.cics.server.examples.security 的 OSGi 中间件束。
本概要文件适用于安装该概要文件的框架中的所有 OSGi 束。
- 在该项目中,选择 example.permissions 文件以编辑针对您安全策略的许可权。 该文件包含特定于在 JVM 服务器中运行应用程序的许可权,包括一项检查,用于确保应用程序未使用 System.exit() 方法。
- 将 OSGi 束部署到 zFS 中的适合目录内。 CICS 必须对该目录具有读和执行访问权。
- 编辑 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 会确定该类的代码源,并在向该类授予适当的许可权之前参考安全策略。