Wildfly 安全管理器:javax.management.MBeanPermission 权限失败
Wildfly Security Manager : Permission failed for javax.management.MBeanPermission
我已经设置了我的 JBOSS Wildfly10。我将 standlone.conf.bat 文件中的 SECMGR 标志启用为 true 以启用 java 安全管理器,并且由于我的 war 部署在 wildfy 10 中,我将在 standalone.xml 中设置以下权限作为下面并出现以下错误:
14:49:56,804 INFO [stdout] (ServerService Thread Pool -- 58)
2017-03-28 14:49:56,804 ServerService Thread Pool -- 58 ERROR Could
not unregister MBeans for org.apac
he.logging.log4j2:type=2483b420,component=Loggers,name=*,subtype=RingBuffer
java.security.AccessControlException: WFSM000001: Permission check
failed (permission "( "javax.management.MBeanPermission" "-#-[-]"
"queryNames")" in code source
"(vfs:/C:/wildfly-10.0.0.Final/standalone/deployments/mySample.war/WEB-INF/lib/log4j-core-2.5.
jar )" of "null")
我的 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>
queryNames
和 registerMBean
权限不太正确。 name
属性应该是 MBean 的名称。 registerMBean
和queryNames
是动作。
它应该看起来像:
<permission class="javax.management.MBeanPermission" name="*" actions="registerMBean"/>
<permission class="javax.management.MBeanPermission" name="*" actions="queryNames"/>
您可以指定具体名称或仅使用 *
作为通配符。查看 MBeanPermission
了解更多详情。
嗨,James,感谢您的回复,正如您所说,我对 java 安全管理有点陌生,我已经更正了权限并引用了 MBeanPermission link,这对我很有帮助,那个问题得到了解决固定。
我已经设置了我的 JBOSS Wildfly10。我将 standlone.conf.bat 文件中的 SECMGR 标志启用为 true 以启用 java 安全管理器,并且由于我的 war 部署在 wildfy 10 中,我将在 standalone.xml 中设置以下权限作为下面并出现以下错误:
14:49:56,804 INFO [stdout] (ServerService Thread Pool -- 58) 2017-03-28 14:49:56,804 ServerService Thread Pool -- 58 ERROR Could not unregister MBeans for org.apac he.logging.log4j2:type=2483b420,component=Loggers,name=*,subtype=RingBuffer java.security.AccessControlException: WFSM000001: Permission check failed (permission "( "javax.management.MBeanPermission" "-#-[-]" "queryNames")" in code source "(vfs:/C:/wildfly-10.0.0.Final/standalone/deployments/mySample.war/WEB-INF/lib/log4j-core-2.5. jar )" of "null")
我的 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>
queryNames
和 registerMBean
权限不太正确。 name
属性应该是 MBean 的名称。 registerMBean
和queryNames
是动作。
它应该看起来像:
<permission class="javax.management.MBeanPermission" name="*" actions="registerMBean"/>
<permission class="javax.management.MBeanPermission" name="*" actions="queryNames"/>
您可以指定具体名称或仅使用 *
作为通配符。查看 MBeanPermission
了解更多详情。
嗨,James,感谢您的回复,正如您所说,我对 java 安全管理有点陌生,我已经更正了权限并引用了 MBeanPermission link,这对我很有帮助,那个问题得到了解决固定。