Me refería al subproceso this, y en el segundo último mensaje por Rob Winch
(Spring Security Lead), menciona que podemos tener acceso a la sessionRegisty:seguridad de primavera - hay una forma de obtener el registro de sesión dentro de mi aplicación (sin personalizar explícitamente el filtro concurrent)
<session-management>
<concurrency-control session-registry-alias="sessionRegistry"/>
</session-management>
por lo tanto, me registro en el filtro HttpSessionEventPublisher
web.xml
y especificar el ajuste anterior en mi sección <http>
. Me NO añadir lo siguiente:
<beans:bean id="sessionRegistry" class="org.springframework.security.core.session.SessionRegistryImpl" />
y en mi clase, me inyecto una instancia de sessionRegistry así:
@Autowired
private SessionRegistry sessionRegistry
Ésta es la forma en que estoy tratando de averiguar las sesiones para una usuario:
List<SessionInformation> userSessions = sessionRegistry.getAllSessions(username,false);
for (SessionInformation userSession : userSessions){
userSession.expireNow();
}
El principal es el nombre de usuario del usuario. Al depurar, las variables sessionRegistry
de la variable principals
y sessionids
están vacías. ¿Estoy haciendo algo mal aquí, o son los pasos mencionados por krams's blog, la única forma de hacerlo?
¿Qué no funciona? – Xaerxess
@Xaerxess: la variable sessionRegistry que se inserta no tiene identificadores de sesión ni autenticación. Tenga en cuenta que no he definido el bean sessionRegistry explícitamente – Daud
¿Se puede publicar el código de clase que accede a 'sessionRegistry'? ¿Cómo se verifica si el registro está vacío? – Xaerxess