Я хотел бы защитить паролем только корневой каталог на моем контекстном пути для Jetty WebApp. Мой контекстный путь — /MyApp, поэтому я хотел бы потребовать пароль для доступа:
http://localhost:8080/MyApp
Но НЕ для:
http://localhost:8080/MyApp/cometd
Моя текущая настройка приведена ниже (обратите внимание на шаблон URL):
<security-constraint>
<web-resource-collection>
<web-resource-name>Private Page</web-resource-name>
<url-pattern>/</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>moderator</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Test Realm</realm-name>
</login-config>
Я ожидаю, что это будет работать только по характеру работы / и /* в целом. Я также видел этот ресурс, который, как мне кажется, предполагает, что это должно в значительной степени работать: http://www.coderanch.com/t/364782/Servlets/java/there-key-difference-between-URL
Однако для моего случая шаблоны URL:
<url-pattern>/</url-pattern>
а также
<url-pattern>/*</url-pattern>
похоже, действуют одинаково: оба
http://localhost:8080/MyApp
а также
http://localhost:8080/MyApp/cometd
ОБА защищены паролем.
Конечно, если я перейду на /nothingishere, просто для проверки работоспособности, ничто не будет защищено паролем, кроме /MyApp/nothingishere.
Кто-нибудь знает, как защитить только корневой каталог для веб-сервлетов?