Wie kann ich session-Objekt von der Methode ApplicationListener
Möchte ich hinzufügen, Objekt HttpSession
nach erfolgreicher Benutzer-Authentifizierung. Bitte nicht schlagen-Lösung mit SavedRequestAwareAuthenticationSuccessHandler
weil in dieser app für einige Grund-Anwendung sind ingnoring ursprünglichen Anfrage.
public class AuthenticationSuccessListener implements ApplicationListener<InteractiveAuthenticationSuccessEvent> {
@Override
public void onApplicationEvent(InteractiveAuthenticationSuccessEvent e) {
//adding object to HttpSession
}
}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Soweit ich informiert bin,
ApplicationListener
Instanzen sind nur Bohnen in IhremApplicationContext
. Daher sollten Sie in der Lage zu injizieren anderen beans oder Ressourcen in Ihnen.Also um einen Verweis auf die aktuelle
HttpSession
Beispiel:Frühling füllt die
HttpSession
mit seiner scoped-proxy-Mechanismus sicherzustellen, dass Sie bekommen dieHTTPSession
relevant für den aktuellen thread der Ausführung.Werden Sie auch brauchen, um sicherzustellen, dass Sie sich eine
RequestContextListener
in Ihrem web.xml also, dass der Frühling gelingen kann, die aktuellenHTTPSession
.IllegalStateException
:java.lang.IllegalStateException: No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread?