初期化仕様¶
認可機構では起動時にApplicationInitializerに呼び出されて行う初期化処理の中で、複数のコンポーネントの初期化をおこなっています。
この初期化処理は InitialProcess クラスが窓口となって行いますが、以下のインタフェースを持つクラスを ServiceLoader を使って読み込み、Levelの順に実行しています。
Level0 ( jp.co.intra_mart.foundation.authz.initialize.phases.Level0 )
XMLの設定情報をベースに動作可能なコンポーネントの初期化を行います。基本的にDBへのアクセスを必要としないものが対象になります。ResourceManagerやSubjectManager等のマネージャAPIはこのレベルでは使えません。
- ルーティングテーブルに使用する認可リソースマッパー拡張の読み込み
- 認可判断機能の認可判断モジュール拡張の読み込み
- 式パーサーの初期化
- リソースタイプ拡張の読み込み
- サブジェクトタイプ拡張の読み込み
- ポリシー解釈器設定の読み込み
Level1 ( jp.co.intra_mart.foundation.authz.initialize.phases.Level1 )
XMLの設定情報をベースに動作可能なコンポーネント(Level0で初期化されるコンポーネント)を使用するコンポーネントの初期化を行います。マネージャAPIのうち初期化が必要なものはこのレベルで初期化されます。ただしテナント環境セットアップが最後まで完了していない場合、このレベルの初期化が終わっても正常に動作できない可能性があります。
- サブジェクト解決系の初期化
- サブジェクトリゾルバ拡張の読み込み
Level2 ( jp.co.intra_mart.foundation.authz.initialize.phases.Level2 )
マネージャAPIを使用する必要のあるコンポーネントの初期化を行います。
プラグインや拡張などを追加する際に、起動時の初期化が必要であれば、適切なタイミングで初期化できるよう注意してください。