Ich bin relativ neu in Spring und Spring Security.
Ich habe versucht, ein Programm zu schreiben, in dem ich einen Benutzer am Server mit Spring Security authentifizieren musste.
Ich habe mir Folgendes ausgedacht:
public class CustomAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider{
@Override
protected void additionalAuthenticationChecks(UserDetails userDetails, UsernamePasswordAuthenticationToken usernamePasswordAuthenticationToken)
throws AuthenticationException
{
System.out.println("Method invoked : additionalAuthenticationChecks isAuthenticated ? :"+usernamePasswordAuthenticationToken.isAuthenticated());
}
@Override
protected UserDetails retrieveUser(String username,UsernamePasswordAuthenticationToken authentication) throws AuthenticationException
{
System.out.println("Method invoked : retrieveUser");
//so far so good, i can authenticate user here, and throw exception if not authenticated!!
//THIS IS WHERE I WANT TO ACCESS SESSION OBJECT
}
}
Mein Anwendungsfall ist, dass ich bei der Authentifizierung eines Benutzers ein Attribut wie das folgende platzieren muss:
session.setAttribute("userObject", myUserObject);
myUserObject ist ein Objekt einer Klasse, auf die ich über mehrere Benutzeranforderungen hinweg im gesamten Servercode zugreifen kann.