Tomcat 7 - не работает несколько ограничений безопасности
Запустив Tomcat 7, я пытаюсь настроить /conf/web.xml на сервере Tomcat для защиты некоторых URL-адресов с помощью базовой аутентификации и для предоставления некоторых других URL-адресов для общего доступа.
Файл tomcat-users.xml содержит следующую роль и пользователя:
<role rolename="test-ui"/>
<user username="paul" password="password" roles="test-ui"/>
Я добавил следующий раздел в Tomcats /conf/web.xml
<security-constraint>
<web-resource-collection>
<web-resource-name>Public access</web-resource-name>
<url-pattern>/docs/*</url-pattern>
</web-resource-collection>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Protected access</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>test-ui</role-name>
</auth-constraint>
</security-constraint>
<security-role>
<description>Protected access</description>
<role-name>test-ui</role-name>
</security-role>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
Таким образом, существует два элемента "security-constraint", открытый элемент не содержит "auth-constraint", что на самом деле должно означать, что аутентификация не требуется.
Когда я открываю URL http://localhost:8080/
Tomcat просит аутентификацию. Это нормально, однако, когда я открываю URL http://localhost:8080/docs/
Tomcat также запрашивает аутентификацию, и, насколько я понимаю, он настроен как "небезопасный" URL - так что общедоступный доступ, но он не ведет себя так.
Что я сделал не так в конфигурации или этот сценарий не должен работать так?
Благодарю. Павел
2 ответа
Если ограничение безопасности не существует, Контейнер ДОЛЖЕН разрешить доступ без аутентификации для этих URL. ограничение безопасности не является обязательным.