2.32 例外クラス

統合ユーザ管理のAPIで使用する例外クラスについて説明します。使用する例外クラスには,JAASで規定されているログインモジュールの例外クラスと日立で提供するAPI(JAAS以外)の例外クラスがあります。

<この節の構成>
(1) JAASのログインモジュールの例外クラス
(2) 日立で提供するAPIの例外クラス

(1) JAASのログインモジュールの例外クラス

JAASで規定されているログインモジュールの例外クラスを次の表に示します。

表2-3 JAASのログインモジュールの例外クラス一覧

項番例外名内容
1javax.security.auth.login.LoginException項番2~4の親クラスです。コンストラクタのパラメタにmsg(java.lang.String)を持ちます。
2javax.security.auth.login.AccountExpiredExceptionユーザアカウントが期限切れであることを通知します。
3javax.security.auth.login.CredentialExpiredExceptionCredentialが期限切れであることを通知します。
4javax.security.auth.login.FailedLoginException認証が失敗したことを通知します。

また,ユーザ認証ライブラリ/シングルサインオンライブラリのログインモジュールでは,これらの例外にエラーメッセージ文字列を設定して送出します。エラーメッセージ文字列の一覧を次の表に示します。

なお,ここで示した例外以外でも,JAASのコンフィグレーションファイルの記述に誤りがある場合にLoginContextクラスをインスタンス化すると,java.lang.SecurityException例外が発生します。その場合は,次の表のエラーメッセージ文字列を参照して,JAASのコンフィグレーションファイルの内容を修正してください。

表2-4 ユーザ認証ライブラリ/シングルサインオンライブラリのログインモジュールの例外

例外名エラーメッセージ文字列発生条件
javax.security.auth.login.FailedLoginExceptiondata not found認証情報が,渡されたパラメタ内にありません。
WebPasswordHandlerクラスに渡したHttpServletRequest内にユーザID/パスワードが格納されていません。
invalid data
  • ユーザID/パスワードに誤りがあり,認証できません。
  • 証明書から取り出したユーザIDに対応したエントリが,リポジトリ内にありません。
no data該当セッション内で認証済みである場合に,呼び出そうとしたレルムに対応したシングルサインオン用認証情報が定義されていません。
javax.security.auth.login.LoginExceptioninvalid parameterCredentialを作成しようとしたときの属性名と属性の一覧の指定内容に次のような誤りがあります。
  • 属性名が指定されていません。
  • 同じAliasが重複して指定されました。
SQLの例外名称JDBCを使用したアクセスに失敗しました。この例外が発生した場合は,エラーメッセージ文字列を参照して対処してください。
JNDIの例外名称LDAPのアクセスに失敗しました。
  • LDAPサーバが見つかりません(CommunicationException)。
  • バインドDNの指定ミスです(AuthenticationException)。
not supported未サポートのCallbackHandlerを使用しました。
  • WebSSOLoginModuleまたはWebPasswordLoginModuleで必要とする情報が,CallbackHandlerで求められません。
  • handleメソッドで例外が発生しました。この例外は,上記の条件でユーザ管理が提供するCallbackHandlerだけで発生します。
no class for xxxWebSSOLoginModuleから呼び出すクラスが使用できません(xxxはcom.cosminexus.admin.auth.sso.loginmoduleで指定された値)。
  • インスタンス化ができません。JAASのログインモジュールを継承していません。また,アクセス権限がない,クラスパスが設定されていない場合があります。
config error
  • JAASのコンフィグレーションファイルに必要な情報が記述されていないため,処理を続行できませんでした。
  • Cosminexus標準ログインモジュールによるユーザ管理のコンフィグレーションファイルに必要な情報が記述されていないため,処理を続行できませんでした。
invalid sessionHttpSessionオブジェクトに関連づけようとしましたが,HttpSessionオブジェクトが無効になりました。
crypto error暗号化/復号化で失敗しました。
  • JNI機能で呼び出すシングルサインオンライブラリの共用ライブラリが見つかりません(java.library.pathの設定に問題があります)。
  • 復号化に失敗しました(暗号化と復号化で異なる鍵を使用しています)。
no sso dataシングルサインオン用の情報がありません。
  • シングルサインオンをするために必要な情報が定義されていませんでした。
no principalPrincipalがないため,最初に認証したユーザを特定することができませんでした。
class cast errorリポジトリから取り出した型と統合ユーザ管理のコンフィグレーションファイルに指定された型が不一致です。一致するようにしてください。ua.conf(統合ユーザ管理のコンフィグレーションファイル)のcom.cosminexus.admin.auth.ldap.password.encryptを参照してください。ua.confファイルについては,マニュアル「Cosminexus リファレンス 定義編」を参照してください。
not found driverJDBCを使用しました。
  • WebPasswordJDBCLoginModuleでドライバが見つかりません。ドライバを正しい場所に格納してください。
その他各システムのログインモジュールで発生しました。
  • WebSSOLoginModuleで,ユーザ認証ライブラリ以外のログインモジュールから発生しました。

(2) 日立で提供するAPIの例外クラス

日立で提供するAPI(JAAS以外)の例外クラスは,次の図に示す階層を持ちます。

図2-2 例外クラスの階層

[図データ]

例外クラス一覧を次の表に示します。

表2-5 日立で提供するAPIの例外クラス一覧

項番例外名内容
1com.cosminexus.admin.common.UAException項番2~8の親クラスです。
2com.cosminexus.admin.common.ParameterError各APIのパラメタの指定に誤りがありました。
3com.cosminexus.admin.common.FormatErrorFormatを持つものに対する指定に誤りがありました。
4com.cosminexus.admin.common.ConfigErrorコンフィグレーションファイルの内容に誤りがありました。
5com.cosminexus.admin.auth.api.repository.ldap.ObjectClassErrorオブジェクトクラスの指定に誤りがありました。
6com.cosminexus.admin.auth.CryptoException暗号化/復号化に失敗しました。
7com.cosminexus.admin.auth.api.repository.event.ChangeDataFailedException他システムの認証情報の更新に失敗した場合に,リスナクラスが呼び出されます。
8com.cosminexus.admin.auth.api.repository.event.SSODataListenerException他システムの認証情報の更新に失敗した場合に,LdapSSODataManagerクラスが呼び出されます。