2010-12-09 7 views
7

Si estoy usando Spring Security y el servidor de aplicaciones de clustering y tengo la sesión http ser replicado, ¿es posible tener un usuario autenticado de forma automática de conmutación por error a otro nodo del clúster y aún así estar conectado? ¿Sería mejor utilizar un caché distribuido en lugar de replicar la sesión en el clúster?¿Cómo puedo usar Spring Security con un clúster con replicación de sesión para conmutar por error a un usuario autenticado?

Respuesta

2

Sí. El contexto de seguridad de Spring Security se almacena como un valor dentro de su sesión. Entonces, si su sesión es replicada, el contexto de seguridad también lo será, por lo que no importará qué trabajador acierte su usuario autenticado.

Por supuesto, la replicación de sesión no es instantánea, por lo que es posible que si el usuario se autentica justo antes de que el servidor se cayera, el servidor de conmutación por error no tenga la oportunidad de recuperar el contexto replicado. Pero si se autentican, y fue a hacer un montón de cosas, y luego el servidor que ha fallado, el contexto de seguridad habrían sido ya replicado, y la sesión del usuario deben recogida en que se detuvo, en el nuevo servidor de conmutación por error.

Este será ligeramente diferente bajo Tomcat JBoss vs vs WebLogic, por lo que realmente necesita para poner a prueba para asegurarse de que su caso de uso en particular está cubierto.

Cuestiones relacionadas