Soy relativamente nuevo en Spring y Spring Security.
Estaba intentando escribir un programa en el que necesitaba autenticar a un usuario en el extremo del servidor utilizando la seguridad de Spring,
Se me ocurrió lo siguiente:
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
}
}
Mi caso de uso es que cuando un usuario está autenticado, necesito colocar un atributo como:
session.setAttribute("userObject", myUserObject);
myUserObject es un objeto de alguna clase al que puedo acceder a través del código de mi servidor a través de múltiples solicitudes de usuario.