我们在将应用程序部署到 CCIX 开发环境中时遇到了一个问题(应用程序 ID 为 cet)。
我们在我们的应用程序中使用 Spring 框架 3.1.0 作为 MVC 框架。当我们部署应用程序时,Spring 开始初始化它自己的容器。此过程中的步骤之一是读取所有环境变量。Spring 通过调用 System.getenv() 方法来实现这一点,该方法将返回系统中的所有环境变量和相应的值。在此步骤中,将引发安全异常,如下所示
[8/30/13 1:20:13:965 EDT] 00000014 SecurityManag W SECJ0314W:当前 Java 2 安全策略报告了可能违反 Java 2 安全权限的情况。请参阅信息中心了解更多信息。
允许:
getenv.* : Access denied (java.lang.RuntimePermission getenv.*)
代码:
org.springframework.core.env.AbstractEnvironment in {file:/opt/httpd/root/apps/cet/ibm/ccix-dev-ear/caseesc.war/WEB-INF/lib/spring-core-3.2.1.RELEASE.jar}
堆栈跟踪:
java.security.AccessControlException:访问被拒绝(java.lang.RuntimePermission getenv.*)
我们尝试通过在 was.policy 文件中添加以下行来调试它。
权限 java.lang.RuntimePermission "getenv.*";
这是失败的,因为系统不允许使用通配符 (*) 进行权限声明。
还尝试在应用程序上下文文件中添加以下行,但仍然没有运气。
请协助。