您当前的位置: 首页 >  微服务

杨林伟

暂无认证

  • 3浏览

    0关注

    3337博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

微服务轮子项目(06) - 服务认证架构设计(URL级权限控制)

杨林伟 发布时间:2020-12-11 17:21:41 ,浏览量:3

文章目录
    • 1. 功能说明
    • 2. 配置说明
      • 2.1 开启关闭控制
        • 2.1.1 在网关添加url权限相关配置
        • 2.1.2 页面菜单管理配置权限
        • 2.1.3 页面角色管理关联权限
        • 2.1.4 页面自己添加js动态根据权限控制隐藏的元素
      • 2.2 缓存问题

1. 功能说明

注意:

  • 该功能会有性能开销,并且会增加很多系统使用成本(大量的配置),所以要按需开启
  • 一般有这种需求的系统都是后台管理类的2B系统,用户量和并发量并不大所以性能上的开销是可以接受的

总体包括以下几个部分:

  • 资源/按钮权限配置
  • 角色关联权限
  • 前端页面按钮资源控制显示/隐藏
  • 后台接口url权限认证(如果对安全性要求不高可以去掉)
2. 配置说明 2.1 开启关闭控制

该功能默认关闭,开启需要配置以下步骤:

2.1.1 在网关添加url权限相关配置

在这里插入图片描述 打开网关认证配置:

  • ylw.security.auth.urlPermission.enable设置为true

配置只认证登录,登录后所有角色都能访问的url(可选项):

  • ylw.security.auth.urlPermission.ignoreUrls

配置白名单/黑名单(可选项):

  • ylw.security.auth.urlPermission.includeClientIds
  • ylw.security.auth.urlPermission.exclusiveClientIds
2.1.2 页面菜单管理配置权限

在这里插入图片描述 菜单url:请求后台的url 菜单path:资源编码或者按钮id,用于前端页面控制元素显示/隐藏

2.1.3 页面角色管理关联权限

在这里插入图片描述

2.1.4 页面自己添加js动态根据权限控制隐藏的元素

在这里插入图片描述 admin.hasPerm方法为判断当前登录人所属角色是否具有该权限

2.2 缓存问题

目前的代码在根据多个角色编号查询资源/按钮权限的代码上增加了缓存配置(有效期5分钟),所以修改角色按钮权限后并不会马上生效。

在这里插入图片描述

如果需要马上生效则有3个方案:

  1. 去掉缓存,每次都直接查询数据库(并发量不大的情况下)
  2. 手动删除redis的缓存(应急情况下)
  3. 页面增加刷新按钮,刷新/删除缓存数据(推荐)
关注
打赏
1662376985
查看更多评论
立即登录/注册

微信扫码登录

0.8004s