3.8.3.3. STS 客户端池
JBoss EAP 不支持 STS 客户端池功能。
STS 客户端池是一种允许您在服务器上配置 STS 客户端池的功能,从而消除了 STS 客户端创建可能出现的瓶颈。客户端池可用于需要 STS 客户端来获取 SAML 票据的登录模块。包括:
-
org.picketlink.identity.federation.core.wstrust.auth.STSIssuingLoginModule -
org.picketlink.identity.federation.core.wstrust.auth.STSValidatingLoginModule -
org.picketlink.trust.jbossws.jaas.JBWSTokenIssuingLoginModule
每个登录模块的池中的默认客户端数量都使用 initialNumberOfClients 登录模块选项进行配置。
org.picketlink.identity.federation.bindings.stspool.STSClientPoolFactory 类为应用提供客户端池功能。
使用 STSClientPoolFactory
STS 客户端通过其 STSClientConfig 配置作为键插入到子池。要将 STS 客户端插入到子池中,您需要获取 STSClientPool 实例,然后根据配置初始化子池。(可选)您可以在初始化池时指定 STS 客户端的初始数量,或者您可以依赖默认编号。
示例:将 STS 客户端插入 Subpool
final STSClientPool pool = STSClientPoolFactory.getPoolInstance();
pool.createPool(20, stsClientConfig);
final STSClient client = pool.getClient(stsClientConfig);
使用完客户端后,您可以通过调用 returnClient() 方法将它返回到池。
示例:将 STS 客户端返回到 Subpool
pool.returnClient();
示例:检查是否使用给定配置检查子池是否存在
if (! pool.configExists(stsClientConfig) {
pool.createPool(stsClientConfig);
}
如果启用了 picketlink-federation 子系统,则为部署创建的所有客户端池都会在取消部署过程中自动销毁。手动销毁池:
示例:手动销毁子池
pool.destroyPool(stsClientConfig);