Подтвердить что ты не робот

Назначение тегов ролей в tomcat-users.xml?

В файле Tomcat 7 tomcat-users.xml какая цель поддерживается тегами <role />?

Для экземпляра XAMPP Tomcat 7 я выяснил, как настроить файл tomcat-users.xml, чтобы разрешить мне доступ к Tomcat Web Application Manager и Tomcat Virtual Host Менеджер. Более конкретно, следующее обеспечивает вышеупомянутый доступ:

<tomcat-users>
  <user username="uname" password="pword" roles="manager-gui,admin-gui"/>
</tomcat-users>

Обратите внимание, что NOT в этом успешном фрагменте XML - это теги <role />. Это суть моего вопроса: я не могу, чтобы жизнь меня определяла, для каких целей должны использоваться теги ролей.

В целях изучения того, как настроить доступ, я прочитал много документации и сообщений на форуме, но все они, похоже, идут по кругу: можно определить роли, но тогда роли действительно не кажутся сами собой определяющими полезный (?)

Например, здесь повторяющаяся иллюстрация, используемая как в файле tomcat-users.xml, так и в многочисленных сообщениях на форуме, "объясняющих" использование ролей.

<tomcat-users>
  <role rolename="tomcat"/>
  <user username="uname" password="pword" roles="tomcat"/>
</tomcat-users>

Хорошо, поэтому в этом "объяснении" элемент роли определяет атрибут rollename, равный tomcat, тогда пользовательский элемент содержит атрибут ролей, который определяет роль пользователя как tomcat. Какой смысл?

Спрашивается по-другому, учитывая, что в элементе ролей имя роли attrbute определяет tomcat, role = tomcat делает что именно? Особенно по сравнению с моим рабочим определением пользователя, где manager-gui и admin-gui определяют роли, которые позволяют Диспетчер веб-приложений Tomcat И Доступ к виртуальному хосту Tomcat.

Приветствия и благодарности,
Райли
SFO

4b9b3361

Ответ 1

Из того, что я понимаю, вы (можете) определить роли:

  • потому что это дает вам большую гибкость, например, добавьте описание, например. GUI может использовать эту информацию.

    <role rolename="customer" description="Customer of Java WebService"/>
    
  • вы можете переназначить или сгруппировать роли позже в определенном сервлет

    <security-role-ref>
        <role-name>cust</role-name>
        <role-link>bankCustomer</role-link>
    </security-role-ref> 
    

Пожалуйста, имейте в виду, что я не эксперт Tomcat, поэтому я надеюсь, что настоящий эксперт может уточнить этот ответ.

Ответ 2

Использование элемента <role .../> в tomcat-users.xml является необязательным. Tomcat создает список ролей из элементов <role .../> и из ролей, названных в атрибуте roles="..." для пользователей.

Преимущество использования элемента <role .../> заключается в том, что вы можете объявить полный набор поддерживаемых ролей, и вы можете включить атрибут описания, описывающий роль.

В стороне, tomcat-users.xml также поддерживает группы, хотя они не показаны в примере, который отправляется по умолчанию с Tomcat. Группы - это наборы ролей, которые затем могут быть назначены пользователям.

Ответ 3

Спрашивается по-другому, учитывая, что в элементе ролей имя роли attrbute определяет tomcat, role = tomcat делает что именно? Особенно по сравнению с моим рабочим определением пользователя, где manager-gui и admin-gui определяют роли, которые позволяют Tomcat Web Application Manager и Tomcat Virtual Host Manager получить доступ.

Ограничения роли/безопасности определены в дескрипторе приложений web.xml.

Например, менеджер-gui определяется в приложении менеджера tomcat:

<security-constraint>
<web-resource-collection>
  <web-resource-name>HTML Manager interface (for humans)</web-resource-name>
  <url-pattern>/html/*</url-pattern>
</web-resource-collection>
<auth-constraint>
   <role-name>manager-gui</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<description>
  The role that is required to access the HTML Manager pages
</description>
<role-name>manager-gui</role-name>
</security-role>