Ich bezog mich auf this Thread, und im vorletzten Beitrag von Rob Winch
(Feder Security Lead), erwähnt er, dass wir können haben Zugang zum sessionRegisty:Federsicherheit - gibt es eine Möglichkeit, Sitzungsregistrierung in meiner Anwendung zu erhalten (ohne explizite Anpassung der concurrentFilter)
<session-management>
<concurrency-control session-registry-alias="sessionRegistry"/>
</session-management>
Deshalb habe ich die HttpSessionEventPublisher
Filter in web.xml
und geben Sie die obige Einstellung in meinem <http>
Abschnitt registrieren. Ich NICHT hinzufügen:
<beans:bean id="sessionRegistry" class="org.springframework.security.core.session.SessionRegistryImpl" />
und in meiner Klasse, ich spritze eine Instanz sessionRegistry wie folgt aus:
@Autowired
private SessionRegistry sessionRegistry
Dies ist, wie ich versuche, die Sitzungen für ein, um herauszufinden, Benutzer:
List<SessionInformation> userSessions = sessionRegistry.getAllSessions(username,false);
for (SessionInformation userSession : userSessions){
userSession.expireNow();
}
Der Auftraggeber ist der Benutzername des Benutzers. Beim Debuggen sind die Variablen der Variablen principals
und sessionids
leer. Mache ich hier irgendetwas falsch, oder sind die Schritte, die von krams's blog erwähnt werden, der einzige Weg, dies zu tun?
Was funktioniert nicht? – Xaerxess
@Xaerxess - Die Variable SessionRegistry, die eingefügt wird, enthält keine Sitzungs-IDs oder Authentifizierung. Beachten Sie, dass ich die SessionRegistry-Bean nicht explizit definiert habe – Daud
Können Sie den Code der Klasse, die auf 'sessionRegistry' zugreift, veröffentlichen? Wie überprüfen Sie, ob die Registrierung leer ist? – Xaerxess