0

我们在将应用程序部署到 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.*";

这是失败的,因为系统不允许使用通配符 (*) 进行权限声明。

还尝试在应用程序上下文文件中添加以下行,但仍然没有运气。

请协助。

4

1 回答 1

0

尝试添加到 WebSphere 的 JRE java.policy 文件中,例如 /opt/IBM/WebSphere/AppServer/java/jre/lib/security/java.policy

于 2013-09-05T08:09:38.923 回答