2015-05-22 2 views
0

У меня вопрос о безопасности hawt.io. Я установил hawt.io как веб-приложение (в настоящее время это встроенный причал, но мы также можем использовать tomcat во встроенном/обычном режиме). Hawt.io визуализирует дерево JMX mbeans того же процесса, мы не подключаемся к удаленным серверам, все локально. Что я хотел бы сделать это, чтобы найти лучший способ, чтобы обеспечить механизм аутентификации и авторизации, который будет использоваться: аутентификацияВеб-приложение Hawt.io - разрешения пользователя

  • пользователя: должно быть сделано предпочтительно через LDAP
  • авторизация
  • Пользователя: некоторые пользователи могут получить полные доступ ко всем mbeans, другие ограничены, чтобы не выполнять операции mbean, а только читать атрибуты.

Я думал, что я могу установить веб-фильтр, в причалу я могу сделать это за пределами web.xml и проверить запросы, но так как hawt.io использует POST веб-метод для связи с его внутренней Jolokia, идентификатор выполнение операции находится внутри тела запроса, поэтому у меня нет доступа к нему из веб-фильтра, поскольку в сервлетах Java я могу читать тело запроса только один раз. Я знаю, что могу предоставить «фальшивый запрос», но, возможно, существует лучшее решение.

Возможно, кто-то может предоставить соответствующие фрагменты конфигурации для настройки такой установки. Большое спасибо заблаговременно

ответ

0

Для авторизации на основе ролей вы можете запросить аванс, если пользователь имеет доступ к данному атрибуту mbean/operation /. Если вы реализуете это interface , вы можете, возможно, интегрироваться с некоторой авторизацией на стороне сервера для JMX. По умолчанию hawtio использует dummy implementation, который пропускает все. Это все изначально предназначалось для работы с элементами защиты JMX, реализованными для Apache Karaf, который предоставляет ту же самую mbean, но фактически ограничивает доступ через конфигурацию ACL. В любом случае, javascript на стороне клиента настроен для поиска этого mbean, сканируя «type = security; area = jmx», просто установите более высокий атрибут «rank» в вашей mbean, и javascript будет использовать его.

Смежные вопросы