AccessControlException:拒绝访问(" java.util.PropertyPermission"" module.path""写")

时间:2015-08-11 20:33:54

标签: java

我正在尝试使用以下命令将JBoss服务器配置为在java安全管理器下运行:set "JAVA_OPTS=%JAVA_OPTS% -Djava.security.manager "JBOSS_HOME/bin/standalone.conf.bat file。但是,当我运行JBOSS_HOME/bin/standalone.bat启动服务器时,它给出了以下错误:

java.security.policy: error adding Entry: java.net.MalformedURLException: unknown protocol: vfs
java.security.policy: error adding Entry: java.net.MalformedURLException:  unknown protocol: vfs
Exception in thread "main" java.security.AccessControlException: access denied ("java.util.PropertyPermission" "module.path" "write")
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:372)
at java.security.AccessControlContext.checkPermission(AccessController.java:559)
at java.lang.SecurityManager.checkPermission(SecurityManager.java:549)
at java.lang.System.setProperty(System.java:783)
at org.jboss.modules.main.main(Main.java:148)

请让我知道如何在JBoss中配置java安全管理器。

2 个答案:

答案 0 :(得分:4)

您需要在此处定义权限。要解决此启动问题,您可以为AccessController提供有关您的权限的一些信息。一种简单的方法是通过在单独的策略文件中使用allPermission指令来初始授予所有权限。

  1. jboss / bin / 中创建名为 server.policy 的文件,内容如下:

    grant { permission java.security.AllPermission; };

  2. 将参数添加到standalone.conf.bat

    中的JAVA_OPTS

    -Djava.security.manager -Djava.security.policy=%JBOSS_HOME%/bin/server.policy

  3. 现在您已经定义了访问权限,服务器应该启动。

答案 1 :(得分:1)

据我所知,当您在安全管理器下运行Java应用程序时,所有安全权限都将被拒绝。所以你必须提到手动需要授予的所有安全权限。

根据例外情况,您的应用无权写入module.path

how to security-manager in jboss