サーブレット・セキュリティー・メソッド
認証、ログイン、ログアウト、getRemoteUser、isUserInRole、および getAuthType のサーブレット・セキュリティー・メソッドは、javax.servlet.http.HttpServletRequest インターフェースのメソッドです。
認証
認証メソッドでは、サーブレット・コンテキストに対して構成された WebSphere Application Server コンテナー・ログイン・メカニズムを使用してユーザーを認証します。
boolean authenticate(HttpServletResponse response))
- 応答
- HttpServletRequest に関連づけられた HttpServletResponse。
認証方式は、認証が確立された場合、または成功した場合に TRUE を戻します。
認証方式は、認証が完了せず基本ログイン・メカニズムがコミットされた場合に FALSE を戻し、それに対応して、メッセージと HTTP 状況コードがユーザーに戻されます。
応答の書き込み中にエラーが発生した場合、java.io.IOException が発生します。
認証が失敗した場合は ServletException が発生し、呼び出し元が責任を持ってエラー (例: 基本ログイン・メカニズムによって、ユーザーに戻すためのメッセージおよび HTTP 状況コードが確立されなかった) を処理します。

- WebSphere Application Server は、HTTP 401 コードをクライアントに戻します。
- メソッドは、サーブレット・コンテキストに対して構成された WebSphere Application Server コンテナー・ログイン・メカニズムに依存します。例えば、このサーブレットに対して定義されたフォーム・ログインがある場合、ユーザー名とパスワードを入力するようプロンプトが出されます。クライアントは、認証のためにユーザー ID およびパスワードを WebSphere Application Server に送信します。
Boolean authResultTrue = req.authenticate(response);
if (!authResultTrue) {
return;
} else {
// Use the new invocation subject to call other services.
}
ログイン
ログイン・メソッドでは、ユーザー ID とパスワードで WebSphereApplication Server へのユーザー認証が実行されます。認証が成功すれば、スレッドにユーザー・サブジェクトが作成される他、Lightweight Third Party Authentication (LTPA) Cookie (シングル・サインオン (SSO) が有効になっている場合) が作成されます。
login(java.lang.String username, java.lang.String password)
- username
- ユーザーのログイン ID に対応するストリング値。
- password
- ユーザーのパスワード。
ServletException が発生するのは、構成されたログイン・メカニズムがユーザー名とパスワードによる認証をサポートしない場合、ID が既に認証されている場合 (ログインへの呼び出しより前に)、または入力されたユーザー名とパスワードの妥当性検査が失敗した場合です。
セキュリティー・カスタム・プロパティーの変更についての詳細は、グローバル・セキュリティー構成の資料またはセキュリティー・ドメイン構成の資料で、既存のカスタム・プロパティーの変更について参照してください。

認証方式およびログイン・メソッドが、呼び出しサブジェクトを新規サブジェクトに設定するため、デプロイメント記述子、セキュリティー・アノテーション、または動的アノテーションの run-As 属性によって定義された RunAs は無視されます。
gotchaログアウト
- SSO が使用可能である場合、LTPA Cookie を消去します
- HTTP セッションを無効化します
- 認証キャッシュからユーザーを除去します
- スレッドからユーザー・サブジェクトを除去します
- 呼び出し元および呼び出しサブジェクトを消去します
- 認証タイプを NULL に設定します
ログアウト後に、保護されている Web リソースにアクセスするには、再認証が必要な他、getUserPrincipal、getRemoteUser、および getAuthType のメソッドが NULL を戻す必要があります。
logout()
ログアウトが失敗した場合、ServletException が発生します。
認証、ログインおよびログアウトのメソッドの監査イベント・タイプ
認証、ログイン、ログアウトのメソッドを監査するには、監査イベント・タイプ・ファイルをいくつか作成または拡張する必要があります。これらのイベント・タイプは、デフォルトのイベント・タイプ・ファイルの一部ではありません。
メソッド | イベント名の監査 | イベントの結果の監査 |
---|---|---|
認証/ログイン | SECURITY_AUTHN | SUCCESS または FAILURE |
ログアウト | SECURITY_AUTHN_TERMINATE | SUCCESS |
ログアウト | SECURITY_AUTHN_TERMINATE | FAILURE |
isUserInRole
(ストリングのロール名): リモート・ユーザーに 指定されたセキュリティー・ロールが与えられている場合は、true を戻します。 リモート・ユーザーが、指定されたロールを与えられていない場合、 またはユーザーが認証されていない場合は、false を戻します。
getRemoteUser
ユーザーが認証済みである場合、getRemoteUser メソッドは、要求を行うユーザーのログインを戻します。ユーザーが 認証済みでない場合、getRemoteUser メソッドは、NULL を戻します。
getAuthType
getAuthType メソッドは、 サーブレットの保護に使用される認証スキームの名前を戻します。 サーブレットが保護されていない場合、getAuthType メソッドは NULL を戻します。
- FORM
- フォーム・ベースの認証が使用される場合
- BASIC
- 基本認証が使用される場合
- CLIENT_CERT
- クライアント証明書認証が使用される場合。
- アプリケーション・セキュリティーが使用可能な状態でサーブレットが保護されている場合、getRemoteUser メソッドはログインを戻し、getAuthType メソッドは構成されている認証スキームを戻します。
- アプリケーション・セキュリティーが有効にされていない場合、両方のメソッドは NULL を戻します。