2010-12-09 33 views
7

Si j'utilise Spring Security et le clustering de serveurs d'applications et que la session http est répliquée, est-il possible qu'un utilisateur authentifié bascule automatiquement vers un autre nœud du cluster et soit toujours connecté? Serait-il préférable d'utiliser un cache distribué au lieu de répliquer la session sur le cluster?Comment puis-je utiliser Spring Security avec un cluster avec réplication de session pour basculer sur un utilisateur authentifié?

Répondre

2

Oui. Le contexte de sécurité de Spring Security est stocké en tant que valeur dans votre session. Donc, si votre session est répliquée, le contexte de sécurité le sera également, donc peu importe le travailleur que votre utilisateur authentifié a touché. Bien entendu, la réplication de session n'est pas instantanée, il est donc possible que, si votre utilisateur est authentifié juste avant la fermeture du serveur, le serveur de basculement n'ait pas la possibilité de récupérer le contexte répliqué. Mais s'ils s'authentifiaient et continuaient à faire beaucoup de choses, et que le serveur échouait, le contexte de sécurité aurait déjà été répliqué, et la session de l'utilisateur devrait reprendre là où elle s'était arrêtée, sur le nouveau serveur de basculement. Ce sera légèrement différent sous tomcat vs jboss vs weblogic, donc vous devez vraiment tester pour vous assurer que votre cas d'utilisation est couvert.