shiro自定义realm处理授权,实现不同角色访问不同资源。

权限管理6大步

菜单可见和不可见:
1、不同角色看不同菜单的,表设计思路
2、不同角色看不同菜单的,表修改思路
资源可访问和不可访问:
3、shiro,登录后才能访问特定资源
4、shiro,登录后不同角色可以访问不同资源
5、shiro,登录后不同角色可以访问同一个资源里面的不同方法
6、shiro,登录后不同角色可以访问同一个资源同一个方法的不同部分

我们继续介绍不同角色针对管理系统资源访问的权限(资源可访问和不可访问)。

出现的问题

登录了之后,可以访问任意action,这肯定不行,我们应该是不同角色访问不同action。也就是达到更细化的授权效果。

实现步骤

1. 配置applicationContext_shiro.xml

erp-重难点-权限管理-4

2. 自定义AuthorizationFilter(授权过滤器)

默认情况下

erp-重难点-权限管理-4

通过自定义AuthorizationFilter修改为只要具备一个权限即可访问资源:

erp-重难点-权限管理-4

3. 在自定义Realm类中处理授权

需要动态添加权限,根据数据库内容动态添加权限

erp-重难点-权限管理-4

比如,假如“sunwukong”去登录,将动态添加如下内容:
erp-重难点-权限管理-4

那么他将可以访问具有“采购管理”、“采购订单查询”、“我的采购订单”、“采购审核”、“采购确认”、“采购入库”对应的资源。

补充

1. role授权方式

除了权限授权方式,还可以有角色(role)授权方式,参考:

shiro角色(roles)自定义Filter----同一个URL配置多个角色的或关系

erp-重难点-权限管理-4

2. 注解或jsp使用授权

还可以通过注解或者jsp标签使用授权,参考:

Shiro基础知识03----shiro授权(编程式授权),Permission详解,授权流程(zz)

erp-重难点-权限管理-4

3. 自定义过滤链

除了在applicationContext_shiro.xml配置过滤链外,还可以自定义过滤链。

a)创建FilterChainDefinitionMapFactoryBean

erp-重难点-权限管理-4

b)在applicationContext.xml中配置

erp-重难点-权限管理-4

4. 认证流程(源码分析)

Shiro源码分析----认证流程

Shiro授权流程

相关文章:

  • 2022-01-17
  • 2021-07-05
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-12
  • 2021-04-14
  • 2022-12-23
猜你喜欢
  • 2021-09-11
  • 2021-08-07
  • 2021-10-14
  • 2021-12-28
  • 2022-01-16
  • 2021-11-05
  • 2022-12-23
相关资源
相似解决方案