デプロイメント記述子を使用してコンテナー管理認証を使用できます。これには、URL に送信する入力フィールドとパスワード フィールドを備えた単純なログイン フォームを除いて、追加のコードは必要ありませんj_security_check
。基本的な例を次に示します。
<form action="j_security_check" method="post">
<input type="text" name="j_username">
<input type="password" name="j_password">
<input type="submit">
</form>
/private
という名前のフォルダにプライベート ページがあり、上記のログイン ページが にあると仮定すると/private/login.jsp
、次のエントリを webapp の に追加しますweb.xml
。
<security-constraint>
<web-resource-collection>
<web-resource-name>Private</web-resource-name>
<url-pattern>/private/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>friends</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>Private</realm-name>
<form-login-config>
<form-login-page>/private/login.jsp</form-login-page>
<form-error-page>/private/error.jsp</form-error-page>
</form-login-config>
</login-config>
次に、使用している servletcontainer で、いわゆるRealm forを構成する必要がありますPrivate
。使用しているサーブレット コンテナが不明なため、Tomcat 8.0 を対象としたドキュメントを次に示します: Realm Configuration HOW-TO。XML ファイルやデータベース、さらにはカスタムの場所に対してユーザー名とパスワードの組み合わせを検証するように構成できます。
Filter
まったく別の代替手段は、セッション スコープ内のログイン ユーザーの存在をチェックする を使用して、ログイン メカニズムを自作することです。これを達成する方法は、これとこの回答を参照してください。