PreReq:
用户使用userService的自定义实现登录并获得从数据库获得的角色。即
身份验证-提供者用户-服务-ref=“securityPolicyService”
调用已实现的方法loadUserByUsername,并为用户加载要登录的特定俱乐部的角色,默认情况下第一次加载角色。
然后,用户点击一个与UI不同的俱乐部,我在一个服务上调用一个方法,该方法获取这个俱乐部的新权限列表。
然后我执行以下操作:
Object principle = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
SecureMember sm = (SecureMember) principle;
Authentication auth =
new UsernamePasswordAuthenticationToken(sm, null, newAuthories); <br><br>
SecurityContextHolder.getContext().setAuthentication(auth);<br>
request.getSession(false).invalidate();SecureMember从SpringFramework扩展了用户。
问题是SecureMember当局从来没有用新的更新过。
谢谢加里
发布于 2012-04-13 23:26:10
如果HttpSession为null,并且在请求期间无效,Security将不会存储安全上下文,因此,如果您在会话无效后设置上下文(并且不创建新会话),那么它将不会被存储。
如果是这样的话,您应该看到这条日志消息 (并且启用了调试日志记录)。
要么创建一个新会话,要么不使原来的会话无效。
https://stackoverflow.com/questions/10144377
复制相似问题