13.6. STS クライアントプール
PicketLink はサーバー上の STS クライアントのプールを提供します。これにより、STS クライアントの作成がボトルネックとして削除されます。
クライアントプーリングは、STS クライアントが SAML チケットの取得に必要なログインモジュールから利用できます。
STS クライアントプーリングを使用できるログインモジュール。
- org.picketlink.identity.federation.core.wstrust.auth.STSIssuingLoginModule
- org.picketlink.identity.federation.core.wstrust.auth.STSValidatingLoginModule
- org.picketlink.trust.jbossws.jaas.JBWSTokenIssuingLoginModule
各ログインモジュールのプール内のデフォルトのクライアント数は、
initialNumberOfClients ログインモジュールオプションで設定されます。
STSClientPoolFactory クラス
org.picketlink.identity.federation.bindings.stspool.STSClientPoolFactory は、アプリケーションにクライアントプール機能を提供します。
STSClientPoolFactory の使用
STS クライアントは、その 設定 をキーとして使用してサブプールに挿入されます。STSClientPool インスタンスを取得してから、設定に基づいてサブプールを初期化します。任意で STS クライアントの初期数で、またはデフォルトの番号に依存します。
final STSClientPool pool = STSClientPoolFactory.getPoolInstance(); pool.createPool(20, stsClientConfig); final STSClient client = pool.getClient(stsClientConfig);
final STSClientPool pool = STSClientPoolFactory.getPoolInstance();
pool.createPool(20, stsClientConfig);
final STSClient client = pool.getClient(stsClientConfig);
クライアントを使用した作業が終了したら、以下のようにプールに戻すことができます。
pool.returnClient();
pool.returnClient();
特定の設定についてサブプールがすでに存在しているかどうかを確認するには、次のコマンドを実行します。
if (! pool.configExists(stsClientConfig) {
pool.createPool(stsClientConfig);
}
if (! pool.configExists(stsClientConfig) {
pool.createPool(stsClientConfig);
}
PicketLink Federation サブシステムを有効にすると、デプロイメント用に作成されたすべてのクライアントプールはアンデプロイプロセス時に自動的に破棄されます。プールを手動で破棄するには、以下を実行します。
pool.destroyPool(stsClientConfig);
pool.destroyPool(stsClientConfig);