Tomcat 7 - не работает несколько ограничений безопасности - PullRequest
2 голосов
/ 24 февраля 2012

Работая с 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 ]

0 голосов
/ 03 октября 2013

Если ограничение безопасности не существует, Контейнер ДОЛЖЕН разрешить доступ без аутентификации для этих URL. ограничение безопасности является необязательным.

0 голосов
/ 02 марта 2012

Вам нужноузел вдаже пусто например

...