Ich mag umgehen manuell den Benutzer von Spring Security mit dem folgenden Code:SecurityContextHolder.getContext() getAuthentication() Rückkehr null
User localeUser = new User();
UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken(localeUser ,null, localeUser .getAuthorities());
SecurityContext securityContext = SecurityContextHolder.getContext();
securityContext.setAuthentication(auth);
// Create a new session and add the security context.
HttpSession session = request.getSession(true);
session.setAttribute("SPRING_SECURITY_CONTEXT", securityContext);
return "dummyLogin";
Die Dummy-Login-Seite (von Fliesen behandelt) ruft intern eine andere Anfrage Mapping in den gleichen Controller, wo ich versuche, die Authentifizierung so etwas zu bekommen.
SecurityContextHolder.getContext().getAuthentication()
Wo ich null bekomme !!!.
Bitte helpp!
Sie übergeben ein leeres Benutzerobjekt an den UsernamePasswordAuthenticationToken-Konstruktor. Vielleicht ist das der Grund, warum Sie null bekommen. – Selva
Auch ein Null-Passwort (ich denke, das ist auch illegal). Vielleicht, wenn Sie den Stack-Trace zeigen? –
Passwort kann Null sein, würde ich lieber überprüfen, ob die Sitzung die gleiche ist, nachdem Sie es erstellt und in Code, die getAuthentication ausführen. Protokollieren Sie Ihre session.getId(), um es zu überprüfen. – freakman