Веб-приложение Hawt.io - права пользователей

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

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

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

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

1 ответ

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

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