mpm*_*pmp 21 security authentication spring
无论如何设置List<GrantedAuthority>在Authentication/UserDetailsImpl对象中?在我的应用程序中,我有两层安全性,一个用于登录(使用我的自定义登录验证器,在类中我使用设置Authentication对象UsernamePasswordAuthenticationToken)和一个用于"挑战问题",其中提示用户回答特定题.
我想要做的是在用户回答质询问题后,在登录过程中创建GrantedAuthority的当前时间添加一个List<GrantedAuthority>.
这可能吗?
zig*_*ear 26
您可以使用以下代码执行此操作:
Collection<SimpleGrantedAuthority> oldAuthorities = (Collection<SimpleGrantedAuthority>)SecurityContextHolder.getContext().getAuthentication().getAuthorities();
SimpleGrantedAuthority authority = new SimpleGrantedAuthority("ROLE_ANOTHER");
List<SimpleGrantedAuthority> updatedAuthorities = new ArrayList<SimpleGrantedAuthority>();
updatedAuthorities.add(authority);
updatedAuthorities.addAll(oldAuthorities);
SecurityContextHolder.getContext().setAuthentication(
new UsernamePasswordAuthenticationToken(
SecurityContextHolder.getContext().getAuthentication().getPrincipal(),
SecurityContextHolder.getContext().getAuthentication().getCredentials(),
updatedAuthorities)
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20971 次 |
| 最近记录: |