15.6. Mise en pool de clients STS

PicketLink fournit un pool de clients STS sur le serveur. Ainsi, la création de Client STS n'est plus source de goulot d'étranglement.
La mise en pool de clients peut être utilisée par des modules de connexion qui ont besoin d'un client STS pour obtenir des tickets de SAML.
Modules de connexion qui peuvent utiliser une mise en pool de clients STS :
  • org.picketlink.identity.federation.core.wstrust.auth.STSIssuingLoginModule
  • org.picketlink.identity.federation.core.wstrust.auth.STSValidatingLoginModule
  • org.picketlink.trust.jbossws.jaas.JBWSTokenIssuingLoginModule
Le nombre de client dans le pool pour chaque module de connexion par défaut est configuré par l'option de module de connexion initialNumberOfClients.
Le classe STSClientPoolFactory org.picketlink.identity.federation.bindings.stspool.STSClientPoolFactory fournit une fonctionnalité de mise en pool de clients aux applications.

Utilisation de STSClientPoolFactory

Les clients STS sont insérés dans des sous-pool en utilisant comme clé configuration. Obtenez une instance de STSClientPool et initialiser un sous-pool sur la base de la configuration, avec le nombre de clients STS initial en option, ou bien basez-vous sur le nombre par défaut.
final STSClientPool pool = STSClientPoolFactory.getPoolInstance();
pool.createPool(20, stsClientConfig);
final STSClient client = pool.getClient(stsClientConfig);
Quand vous aurez terminé avec un client, vous pouvez le renvoyer au pool de la manière suivante :
pool.returnClient();
Pour vérifier si un sous-pool existe déjà pour une configuration donnée :
if (! pool.configExists(stsClientConfig) {  
    pool.createPool(stsClientConfig);  
}
Lorsque le sous-système Fédération PicketLink est activé, toutes les pools de client créés pour un déploiement sont détruits automatiquement pendant le processus d'annulation du déploiement. Pour détruire un pool manuellement  :
pool.destroyPool(stsClientConfig);