Spring Security:手动设置setUserPrincipal

时间:2011-12-12 14:55:04

标签: spring spring-security userprincipal

在使用Spring MVC和Spring Security的Web应用程序中。

有没有办法手动设置UserPrincipal?

我需要通过webapplication的管理部分切换到另一个用户。在我的控制器中,是否可以在请求中设置UserPrincipal?连接好像我是别人一样。

就像那样:request.setUserPrincipal()。getName()

1 个答案:

答案 0 :(得分:5)

我做过这样的事情,在注册后自动登录。它似乎只能满足您的需求:

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

我从服务中抓取我的用户。这必须实现 org.springframework.security.core.userdetails.UserDetails 界面。

我认为这应该会让你对需要做的事情有所了解。我记得我花了一段时间才从文档中将它拼凑起来。