Bonjour tous J'utilise la méthode suivante pour faire connexion programmatique pour l'utilisateur, mais avec son nom d'utilisateur & mot de passe, et il fonctionne très bien:Faire un login programmatique sans nom d'utilisateur/mot de passe?
public static void autoLogin(User user, HttpServletRequest request,
AuthenticationManager authenticationManager) {
GrantedAuthority[] grantedAuthorities = new GrantedAuthority[] { new GrantedAuthorityImpl(
user.getAuthority()) };
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(
user.getUserName(), user.getPassword(),
grantedAuthorities);
// generate session if one doesn't exist
request.getSession();
token.setDetails(new WebAuthenticationDetails(request));
Authentication authenticatedUser = authenticationManager
.authenticate(token);
SecurityContextHolder.getContext().setAuthentication(authenticatedUser);
// setting role to the session
request
.getSession()
.setAttribute(
HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY,
SecurityContextHolder.getContext());
}
et je me demandais s'il est possible de faire connexion programmatique mais sans le nom d'utilisateur ou l'authentification par mot de passe, rend simplement cet utilisateur authentifié.
Si vous avez supprimé ces deux lignes, comment la ligne suivante a-t-elle été compilée? SecurityContextHolder.getContext(). SetAuthentication (authenticatedUser); –