認証は、ユーザIDとパスワードによって、正当なユーザであるかをチェックする機能です。これにより、不当なユーザからのアクセスを防止できます。
認証方法は、以下が用意されています。
Servletによる認証
Servletでは以下の認証方法を使用してWebコンテナへ接続するクライアントの認証を行うことができます。
BASIC認証
FORM認証
認証に失敗した場合
サーバーログに以下のメッセージが出力され、BASIC認証は401、FORM認証は200のステータスコードが返されます。
WEB9102
Java EEアプリケーションクライアントによる認証
呼び出すWebサービスにHTTP Basic認証が設定されている場合、WebサービスクライアントからのリクエストにHTTP Basic認証情報を設定する必要があります。
接続するサーバで認証が必要と判断された場合、セキュリティコールバックハンドラが実行されます。deployment descriptorファイル (application-client.xml)に任意のセキュリティコールバックハンドラを指定できます。セキュリティコールバックハンドラを指定しなかった場合にはデフォルトのセキュリティコールバックハンドラが実行されます。
以下にデフォルトのセキュリティコールバックハンドラの動作と、セキュリティコールバックハンドラを実装する場合について説明します。
デフォルトのセキュリティコールバックハンドラは以下のように動作します。
appclientコマンドの-userオプションと-passwordオプションを指定した場合、各オプションで指定したユーザ名とパスワードで認証を行います。
appclientコマンドの-textauthオプションを指定した場合、コンソールにユーザ名とパスワードの入力を促すメッセージを出力して、入力された情報で認証を行います。
1.または2.においてオプションを指定していなかった場合、ダイアログボックスが表示され、ユーザ名とパスワードを要求します。
Java EEアプリケーションクライアントでJAASコールバックハンドラを実装すると、必要な資格証明を取得するためにログイン画面を表示するなどのカスタム機能を提供できます。そのような場合、コンテナにより起動時にコールバックハンドラがインスタンス化され、デフォルトのセキュリティコールバックハンドラは無視されます。
カスタムセキュリティコールバックハンドラを実装するには、次のように行います。
javax.security.auth.callback.CallbackHandlerインタフェースを実装し、引数を持たないコンストラクタを持つクラス(またはコンストラクタを定義しないクラス)を作成します。
アプリケーションクライアントJARファイルにコールバックハンドラのクラスを追加する、または環境変数APPCPATHにコールバックハンドラのクラスを設定します。
ハンドラ・クラスへの参照を、application-client.xmlファイルに追加します。
例
<application-client> <callback-handler> com.cart.MyCallbackHandler </callback-handler> </application-client>
注意
指定したクラスがロードできない場合や、カスタムセキュリティコールバックハンドラのクラスに異常がある場合(引数を持つコンストラクタを定義しているなど)には、デフォルトのセキュリティコールバックハンドラが実行されます。