南庄建网站,极品教师韩剧在线观看第一集,做电子杂志的网站,南京马鞍山网站建设动态权限前面讨论用户登录认证的时候#xff0c;根据用户名查询用户会将用户拥有的角色一起查询出来#xff0c;自动实现判断当前登录用户拥有哪些角色。可以说用户与角色之间的动态配置和判断security做的非常不错。不过在配置方法级别的权限的时候#xff0c;使用注解虽然…动态权限前面讨论用户登录认证的时候根据用户名查询用户会将用户拥有的角色一起查询出来自动实现判断当前登录用户拥有哪些角色。可以说用户与角色之间的动态配置和判断security做的非常不错。不过在配置方法级别的权限的时候使用注解虽然是一种比较优雅的方式但是要求在开发的时候就知道当前url对应哪些角色无法实现动态的配置而实际的项目中每个链接允许哪些角色访问也不是一成不变的因此下面我们来实现自己的路由判断。创建表前面的讨论中我们创建了用户表角色表和用户角色中间表下面来创建菜单功能表并把现在有的url链接添加进去然后创建角色菜单中间表加入角色与url之间的对应关系创建基础类首先去掉前面的方法级别权限的注解然后创建菜单实体类创建查询方法根据url查询次链接对应的所有角色名称对应的sql语句如下路由动态获取角色首先增加一个处理类在收到访问的时候动态获取当前url的角色新建一个ObjectPostProcessor类将这个处理类配置到其中最后将新建的ObjectPostProcessor类配置到权限配置方法中路由决策管理用户与角色是多对多的关系url与角色也是多对多的关系这里的设定是只要用户与url对应的角色中有相同的存在就表示用户有访问的权限。首先看一下对应判断的处理类使用双重for循环进行判断并进行结果投票。在注释中可以看到使用不同的方式会产生不同的策略。下一步在security配置类中配置路由策略方法除了UrlRoleAuthHandler类其它决策类使用的都是security存在的类最后在权限配置中配置决策管理测试这样动态权限url就配置好了根据上面方法中的数据可以登录查看是否具有对应的url权限没有配置的是否不具备权限。代码地址https://gitee.com/blueses/spring-boot-security 11