2011-12-12 29 views
6

En una aplicación web con Spring MVC y Spring Security.Spring Security: setUserPrincipal manualmente

¿Hay alguna manera de configurar UserPrincipal manualmente?

Necesito cambiar a otro usuario por una parte de administrador de mi aplicación web. En mi controlador, ¿es posible configurarUserPrincipal en la solicitud? Para conectarme como si fuera otra persona.

Al igual que:. Request.setUserPrincipal() getName()

+0

Es posible que desee considerar el uso del filtro SwitchUser incorporado en Spring. Vea la segunda respuesta aquí: http://stackoverflow.com/questions/2563220/how-to-change-granted-role-temporarily-to-achieve-view-the-site-as-someone-els o los JavaDocs relevantes aquí : http://static.springsource.org/spring-security/site/docs/3.0.x/apidocs/org/springframework/security/web/authentication/switchuser/SwitchUserFilter.html – BobG

Respuesta

4

que he hecho cosas como esta para iniciar sesión automáticamente en la gente después de registrar. Parece que lo haría justo lo que busca:

Authentication authentication = new UsernamePasswordAuthenticationToken(
      userService.loadUserByUsername(u.getUserName()), null, 
      AuthorityUtils.createAuthorityList("ROLE_USER")); 
SecurityContextHolder.getContext().setAuthentication(authentication); 

estoy agarrando mi usuario de un servicio. Esto tiene que implementar la interfaz org.springframework.security.core.userdetails.UserDetails.

Creo que esto debería darle una buena idea de lo que se debe hacer. Recuerdo que me tomó un tiempo juntar esto de los documentos.

Cuestiones relacionadas