lenve / vhr

微人事是一个前后端分离的人力资源管理系统,项目采用SpringBoot+Vue开发。
http://vhr.javaboy.org
27.2k stars 10.28k forks source link

根据用户传来的请求地址,分析出请求需要的角色 #296

Open feyounger opened 2 years ago

feyounger commented 2 years ago

在 CustomFilterInvocationSecurityMetadataSource 这个类中 首先通过数据库查询到菜单表,遍历菜单匹配到对应的url再去找到这个url所拥有的角色,CustomUrlDecisionManager这个类中判断当前登录的用户是否具备当前请求URL所需要的角色信息:也是通过遍历这个URL所需要的角色,里面再通过自己所拥有的角色来得出是否有权限访问。 提出疑问:虽然在数据库查询哪里加了缓存,但是后面的操作都需要遍历,而且都是双重价格遍历。当访问量、系统复杂度、角色增多 这里的效率是不是很低呢。 提出想法: 利用@PreAuthorize("hasAnyAuthority('')")注解是不是可以代替上面步骤呢