Wildfly安全管理器:javax.management.MBeanPermission的权限失败

时间:2017-03-28 09:34:40

标签: wildfly-10 java-security javapolicy

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

  

14:49:56,804 INFO [stdout](ServerService线程池 - 58)   2017-03-28 14:49:56,804 ServerService线程池 - 58错误可以   不要取消注册org.apac的MBean   he.logging.log4j2:类型= 2483b420,成分=记录器,名字= *,亚型= RingBuffer   java.security.AccessControlException:WFSM000001:权限检查   失败(许可"(" javax.management.MBeanPermission"" - # - [ - ]"   " queryNames&#34)"在代码源中   "(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>

2 个答案:

答案 0 :(得分:0)

registerMBeanname权限不太对。 registerMBean属性应该是MBean的名称。 queryNames<permission class="javax.management.MBeanPermission" name="*" actions="registerMBean"/> <permission class="javax.management.MBeanPermission" name="*" actions="queryNames"/> 是行动。

它应该看起来像:

*

您可以指定特定名称或仅使用pdf.create(html).toStream(function(err, stream) { if (err) { console.log(err) } else { res.set('Content-type', 'application/pdf'); stream.pipe(res) } }); 作为通配符。有关详细信息,请查看MBeanPermission

答案 1 :(得分:0)

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