JettyWebAppのコンテキストパスのルートディレクトリのみをパスワードで保護したいと思います。私のコンテキストパスは/MyAppなので、アクセスするにはパスワードが必要です。
http://localhost:8080/MyApp
ただし、次の場合は対象外です。
http://localhost:8080/MyApp/cometd
私の現在の設定は以下のとおりです(url-patternに注意してください):
<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を除いて、パスワードで保護されるものはありません。
Webサーブレットのルートディレクトリのみを保護する方法を知っている人はいますか?