Работая с 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 - так что общедоступный доступ, но он не ведет себя так.
Что я сделал не так в конфигурации или этот сценарий не должен работать так?
Спасибо.
Пол