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

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

权限管理6大步

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

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

出现的问题

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

实现步骤

1. 配置applicationContext_shiro.xml

在这里插入图片描述

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

默认情况下

在这里插入图片描述

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

在这里插入图片描述

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

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

在这里插入图片描述

比如,假如“sunwukong”去登录,将动态添加如下内容:
在这里插入图片描述

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

补充

1. role授权方式

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

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

image.png

2. 注解或jsp使用授权

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

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

在这里插入图片描述

3. 自定义过滤链

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

a)创建FilterChainDefinitionMapFactoryBean

在这里插入图片描述

b)在applicationContext.xml中配置

在这里插入图片描述

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

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

Shiro授权流程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值