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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/billycoder/article/details/88597944

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)

image.png

3. 自定义过滤链

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

a)创建FilterChainDefinitionMapFactoryBean

image.png

b)在applicationContext.xml中配置

image.png

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

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

Shiro授权流程

猜你喜欢

转载自blog.csdn.net/billycoder/article/details/88597944