Диспетчер безопасности Wildfly: не удалось разрешить javax.management.MBeanPermission

У меня настроен JBOSS Wildfly10. Я включаю флаг SECMGR в файле standlone.conf.bat в значение true для включения диспетчера безопасности Java, и, поскольку моя война развернута в wildfy 10, я даю следующий набор разрешений в standalone.xml, как показано ниже, и получаю следующую ошибку:

14: 49: 56,804 ИНФОРМАЦИЯ [stdout] (Пул потоков ServerService - 58) 2017-03-28 14:49:56,804 Пул потоков ServerService - 58 ОШИБКА Не удалось отменить регистрацию MBeans для org.apac he.logging.log4j2:type=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)" из "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 ответа

Решение

queryNames а также registerMBean разрешения не совсем правильные. name атрибут должен быть именем MBean. registerMBean а также queryNames это действия.

Это должно выглядеть примерно так:

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

Вы можете указать конкретные имена или просто использовать * как подстановочный знак. Посмотрите на MBeanPermission Больше подробностей.

Привет, Джеймс, спасибо за ответ. Я немного новичок в управлении безопасностью java, поскольку ты сказал, что я исправил разрешение и сослался на ссылку MBeanPermission. Это было полезно для меня, и эта проблема была исправлена.

Другие вопросы по тегам