1

我已经设置了我的 JBOSS Wildfly10。我在 standlone.conf.bat 文件中将 SECMGR 标志启用为 true 以启用 java 安全管理器,并且由于我的 war 部署在 wildfy 10 中,我在standlone.xml 中设置了以下权限,如下所示并出现以下错误:

14:49:56,804 INFO [stdout] (ServerService 线程池 -- 58) 2017-03-28 14:49:56,804 ServerService 线程池 -- 58 错误无法取消注册 org.apac he.logging.log4j2:type= 的 MBean 2483b420,component=Loggers,name=*,subtype=RingBuffer java.security.AccessControlException: WFSM000001: 权限检查失败(权限"("javax.management.MBeanPermission" "-#-[-]" "queryNames")" 在代码中来源“(vfs:/C:/wildfly-10.0.0.Final/standalone/deployments/mySample.war/WEB-INF/lib/log4j-core-2.5.jar)”的“空”)

我的 Standalone.xml 配置如下,所以任何人都可以在这里帮我解决我做错的地方吗?

 <subsystem xmlns="urn:jboss:domain:security-manager:1.0">
                <deployment-permissions>
                    <minimum-set>
                        <permission class="java.lang.RuntimePermission" name="shutdownHooks"/>
                        <permission class="java.util.PropertyPermission" name="*" actions="read"/>
                        <permission class="java.lang.RuntimePermission" name="createClassLoader"/>
                        <permission class="java.lang.RuntimePermission" name="getClassLoader"/>
                        <permission class="java.lang.RuntimePermission" name="shutdownHooks"/>
                        <permission class="javax.management.MBeanServerPermission" name="createMBeanServer"/>
                        <permission class="java.lang.reflect.ReflectPermission" name="suppressAccessChecks"/>
                        <permission class="javax.management.MBeanPermission" name="registerMBean"/>
                        <permission class="javax.management.MBeanPermission" name="queryNames"/>
                    </minimum-set>
                </deployment-permissions>
            </subsystem>
4

2 回答 2

0

嗨,詹姆斯,感谢您的回复,我对 java 安全管理并不陌生,正如您所说,我已更正了权限并引用了 MBeanPermission 链接,这对我很有帮助,并且该问题已得到解决。

于 2017-03-29T20:08:01.963 回答
0

queryNames权限registerMBean不太正确。该name属性应该是 MBean 的名称。和是registerMBean动作queryNames

它应该看起来像:

<permission class="javax.management.MBeanPermission" name="*" actions="registerMBean"/>
<permission class="javax.management.MBeanPermission" name="*" actions="queryNames"/>

您可以指定特定名称或仅用*作通配符。查看MBeanPermission更多详细信息。

于 2017-03-29T16:04:29.380 回答