我正在尝试使用以下命令将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安全管理器。
答案 0 :(得分:4)
您需要在此处定义权限。要解决此启动问题,您可以为AccessController提供有关您的权限的一些信息。一种简单的方法是通过在单独的策略文件中使用allPermission指令来初始授予所有权限。
在 jboss / bin / 中创建名为 server.policy 的文件,内容如下:
grant {
permission java.security.AllPermission;
};
将参数添加到standalone.conf.bat
中的JAVA_OPTS -Djava.security.manager -Djava.security.policy=%JBOSS_HOME%/bin/server.policy
现在您已经定义了访问权限,服务器应该启动。
答案 1 :(得分:1)
据我所知,当您在安全管理器下运行Java应用程序时,所有安全权限都将被拒绝。所以你必须提到手动需要授予的所有安全权限。
根据例外情况,您的应用无权写入module.path