Tengo el siguiente código (intentar iniciar sesión en un usuario mediante programación):primavera Authentication.setAuthenticated (booleano) java.lang.IllegalArgumentException: No se puede establecer este token de confianza
List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
authorities.add(new GrantedAuthorityImpl("ROLE_ADMIN"));
...
User tempUser = new User(correctUsername,
correctPassword,
true, true, true, true, // logging them in...
authorities // type is List<GrantedAuthority>
);
...
Authentication authentication
= new UsernamePasswordAuthenticationToken(tempUser, authorities);
// I'm using authorities again (List<GrantedAuthority>)
// is this the right spot for it?
...
// this is the line causing the error
authentication.setAuthenticated(true);
Cuando trato de ejecutar ese me sale el siguiente:
java.lang.IllegalArgumentException: Cannot set this token to trusted - use constructor which takes a GrantedAuthority list instead
Tenga en cuenta que estoy usando la lista de GrantedAuthority
s authorities
tanto en los User
y Authentication
objetos. No estoy seguro de dónde debería estar usando esos. Estoy tratando de replicar la respuesta para another SO question, pero me encuentro con la excepción publicada anteriormente. Otras preguntas similares que no acababa de responder a mi pregunta:
- How to programmatically log user in with Spring Security 3.1
- Programmatically login in a user using spring security
después de buscar el más cercano que he encontrado para una respuesta estaba en the forum at springsource.org, y esa persona de usar una deprecated method, pero es un enfoque similar. ¿Cómo puedo registrar un usuario en programación?
¿Qué línea está causando el problema? –
el último; con el comentario anterior que dice 'esta es la línea que causa el error ('authentication.setAuthenticated (true);') – Josh