黑马程序员技术交流社区
标题: 【郑州校区】bos项目笔记之chapter09_系统分析、环境搭建(4) [打印本页]
作者: 谷粒姐姐 时间: 2018-4-10 10:02
标题: 【郑州校区】bos项目笔记之chapter09_系统分析、环境搭建(4)
本帖最后由 谷粒姐姐 于 2018-4-10 10:05 编辑
4. 用户授权功能实现 用户授权功能主要解决 用户能操作哪些功能问题 !
4.1. 对页面部分功能添加权限和角色需要
修改 applicationContext-shiro.xml 配置 shiroFilter 权限过滤程序
访问 courier.html 时,因为需要特别权限 调用 自定义 Realm 的 doGetAuthorizationInfo
进行授权,如果没有权限,跳转
<property name="unauthorizedUrl" value="/unauthorized.html" />
4.2. 在数据表中导入预定义角色、权限数据 导入 t_user_role_permission.sql
权限数据
角色数据
角色 权限 关系表
用户表
用户 角色关系表
4.3.实现 Realm 的授权方法
Realm
创建角色 Service、DAO
创建权限 Service、DAO
5. Apache Shiro 实现方法级别细粒度权限控制 细粒度(方法)权限控制原因: 自定义注解(加在方法上,在注解中描述需要权限信息),对目标业务对象创建代理对象,在代理方法中使用反射技术读取注解信息,获取需要权限,查询当前登录用户具有权限是否满足
1、 配置 applicationContext-shiro.xml 激活注解
传统 spring AOP 配置 , 对 spring bean 创建代理 Advisor ,会在业务 Bean 使用 shiro 注解, 配置自动代理模式 (对所有 spring 管理 bean 的方法,执行时,检查是否有 shiro 注解 )
2、 配置快递员添加 方法,业务层使用 shiro 注解
注意问题:
针对 CourierServiceImpl 对象进行代理 !!! 解决:
applicationContext-dataSource.xml
applicationContext-shiro.xml
使用方法注解进行权限控制, 当权限不足时,代理对象抛出一个异常
org.apache.shiro.authz.UnauthorizedException: Subject does not have permission [courier_add]
bos项目笔记之chapter08_系统分析、环境搭建(5)
作者: 谷粒姐姐 时间: 2018-4-10 10:05
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |