これは不可能です。実際<form>
にログイン用の HTML がある場合は、認証方法を からBASIC
に変更する必要がありますFORM
。
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/error.jsp</form-error-page>
</form-login-config>
</login-config>
また、事前定義されたパラメーターとしてユーザー名とパスワードを使用して、HTML<form>
が事前定義された URL に送信されることを確認する必要があります。j_security_check
j_username
j_password
<form action="j_security_check" method="post">
<input type="text" name="j_username" />
<input type="password" name="j_password" />
<input type="submit" value="login" />
</form>
このようにして、コンテナは必要な方法でログインを設定し、ユーザー名は で利用できるようになりますgetRemoteUser()
。また、制限された URL に直接アクセスする認証されていないユーザーは、自動的にログイン ページに転送されます。ログインに成功すると、最初に要求されたページに自動的に戻されます。
また、FORM
Servlet 3.0 対応のコンテナ (Tomcat 7、Glassfish 3 など) で認証方式を使用する場合、サーブレットに Servlet 3.0 で導入された方式でプログラムからユーザーをログインさせることができHttpServletRequest#login()
ます。これにより、プロセスと検証をより細かく制御できます。BASIC
これは認証では不可能です。
BASIC
認証はまったく別のものです。これは、ユーザー名とパスワードを入力する JavaScript のようなダイアログを表示します。これは、HTML<form>
などを必要としない/使用しません。また、後続のすべてのリクエストでリクエストヘッダーとして送信される認証情報をクライアント側に保存します。認証のようにサーバー側のセッションに認証情報を保存しませんFORM
。
以下も参照してください。