ActiveMQ Artemis GUI Jolokia доступ в док-контейнере - PullRequest
0 голосов
/ 27 февраля 2019

Я использую ActiveMQ Artemis внутри док-контейнеров для наших трех сред (DEV / QA / PROD).

Консоль управления обычно работает на порте 8161, поэтому я включил это в оператор artemis createкогда я создал брокер.

--http-host 0.0.0.0 --http-port 8161

Итак, это вызывает следующие два изменения, которые я вижу:

  1. bootstrap.xml получает хост / порт:

    <web bind="http://0.0.0.0:8161" path="web">
       <app url="redhat-branding" war="redhat-branding.war"/>
       <app url="artemis-plugin" war="artemis-plugin.war"/>
       <app url="dispatch-hawtio-console" war="dispatch-hawtio-console.war"/>
       <app url="console" war="console.war"/>
    </web>
    
  2. jolokia-access.xml получает хост / порт:

    <allow-origin>*://0.0.0.0*</allow-origin>
    

Я пытаюсь получить доступ к управлению ActiveMQ Artemis Hawtioконсоль от удаленного компьютера, но открытые порты док-станции не 8161.Это сопоставленные порты 38161, 48161, & 58161.

Поэтому, когда я захожу в консоль управления, я получаю:

Operation unknown failed due to: java.lang.Exception : Origin http://10.0.20.2:58161 is not allowed to call this agent
Uncaught TypeError: Cannot read property 'apply' of undefined (http://10.0.20.2:58161/console/app/app.js:16:14127)
Uncaught TypeError: Cannot read property 'apply' of undefined (http://10.0.20.2:58161/console/app/app.js:16:14127)
...

1 Ответ

0 голосов
/ 27 февраля 2019

Я считаю, что проблема здесь в том, что ваш jolokia-access.xml использует это:

<allow-origin>*://0.0.0.0*</allow-origin>

Однако вы пытаетесь получить доступ к консоли через http://10.0.20.2:58161, что не разрешено в зависимости от вашегоjolokia-access.xml.Поэтому вам нужно изменить jolokia-access.xml, чтобы разрешить IP: порт, который вы собираетесь использовать для подключения.

Подробнее о jolokia-access.xml вы можете прочитать в документации по безопасности Jolokia..

Для ясности, мета-адрес 0.0.0.0 в основном является заполнителем "без определенного адреса", и в контексте привязки слушателя к сетевому интерфейсу это означает, что слушатель должен связать / прослушатьна все интерфейсы.Тем не менее, в контексте <allow-origin> для безопасности Jolokia это не означает, что допускаются все источники.<allow-origin> поддерживает буквенные совпадения и подстановочные знаки (как отмечено в документации, приведенной выше).Следовательно, если указано 0.0.0.0, оно пытается буквально сопоставить 0.0.0.0.Отключить защиту Jolokia с помощью команды create невозможно.Если вы передадите что-то вроде --http-host 10.0.20.* в команду create, то 10.0.20.* будет использоваться для привязки веб-сервера в bootstrap.xml, что приведет к сбою.

Существует возможность использования --relax-jolokiaкоторый отключит строгую проверку, которая может помочь вашему варианту использования.

...