以前在做项目的时候,都已实现现成的权限控制,从来没有自己研究过原理,这次趁着新项目的机会自己研究了一下。
按照教程,查资料,大概实现了一个demo,然后卡在了权限的刷新上,比如,管理员给某个角色添加,删除了新的权限,怎么才能做到用户不登录实时刷新权限呢。
最后查API文档,以及在这位仁兄的博客中找到了答案:https://blog.csdn.net/s1040342522/article/details/109495704
在使用这个博客中的方法时,主要问题在于如何获取指定用户的SimplePrincipalCollection。
完整的代码见:https://github.com/alex-zhaopeng/demo.git
@RequestMapping("/logout")
@ResponseBody
public ReturnMessage logOut(@RequestBody Map<String, Object> map) {
Subject subject = SecurityUtils.getSubject();
String username = map.get("username").toString();
List<UserVo> userVos = userService.findRolesByUsername(username);
UserVo user =