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);