Sono relativamente nuovo alla primavera sicurezza di e Spring.
Stavo tentando di scrivere un programma in cui avevo bisogno di autenticare un utente sul lato server utilizzando la sicurezza Spring,
Mi è venuto in mente quanto segue:
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
}
}
Il mio caso d'uso è che quando un utente viene autenticato, devo inserire un attributo come:
session.setAttribute("userObject", myUserObject);
myUserObject è un oggetto di una classe a cui posso accedere tramite il codice del mio server su più richieste dell'utente.