- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
BOS 物流管理系统 第9天 权限系统设计
今天内容安排:
1、 权限控制 几种方式
URL级别 权限控制 (粗粒度权限控制 )
方法级别 权限控制 (细粒度权限控制 )
页面中显示的权限控制 ,使用自定义标签
2、 权限系统的数据表设计
3、 Apache Shiro 框架运行原理
4、 shiro 系统集成 (采用Spring 整合shiro 方式集成 )
5、 自定义Shiro Realm ,实现认证功能 (基于数据库完成 )
权限系统的数据表如何设计
面试重点!!!
表设计 主要几个实体 : 用户、 角色、 权限
用户 user : 访问系统的人
权限 function : 系统某个功能允许访问,对应的权限 (例如: 取派员查询权限、 区域导入权限 … )
角色 role : 角色是权限的一个集合,方便用户授权
一个用户 对应 多个角色 ,一种角色 可以授予多个用户 === 多对多
一个角色 包含 多个权限 ,一个权限 可以属于 多个角色 === 多对多
设计角色表、权限表 都具有 id (编号 生成)、 name (名称 中文)、 code(关键字 编程使用 英文 ) 、description (描述 )
权限表为什么要这么设计 ?
目的为了实现 系统动态菜单 ,添加 菜单的路径、 是否需要生成菜单、 菜单优先级 (保证菜单显示顺序)、 父权限编号 (生成菜单父节点 )
任务二:创建权限数据表、生成实体类
根据PDM 导出SQL 语句
auth_function 权限表
auth_role 角色表
role_function 角色权限关系表
user_role 用户角色关系表
生成实体类,使用hibernate3-maven-plugin 插件 修改 src/main/resources/reveng.xml
替换之前 domain.user下的User实体类
实体类和表设计完成!
任务三:Apache Shiro 权限控制
Shiro简介
权限控制企业都是采用什么技术开发的 ?
自定义权限控制实现 (URL级别 Filter实现、 方法级别 自定义注解 Spring AOP 反射实现, 页面显示 自定义标签实现 )
Spring Security 安全框架
缺点:使用复杂、 Spring 官方项目 使用Apache Shiro 进行权限控制
Apache Shiro 比较新 ,很多企业了解到shiro 因为 spring side 项目
什么是Apache Shiro ?
Apache Shiro 可以不依赖任何技术使用, 通常在企业中和Spring 结合使用
在项目导入shiro
Authentication: 认证 用户登录
Authorization : 授权 权限管理
项目导入shiro ,使用maven坐标方式 导入
shiro.version1.2.2/shiro.version
dependency
groupIdorg.apache.shiro/groupId
artifactIdshiro-all/artifactId
version${shiro.version}/version
/dependency
Shiro 原理简介
学习shiro ,只需要看规范就ok了 “Apache_Shiro_reference(中文版).pdf”
核心 ;
四大核心内容: 认证、授权、会话管理、 加密
Shiro 是如何进行权限控制的 ?
应用代码 调用Subject (shiro的Subject 就代表当前登陆用户) 控制权限 Subject 在shiro框架内部 调用 Shiro SecurityManager 安全管理器 安全管理器调用 Realm (程序和安全数据连接器 )
通过以上分析,结论:
程序员使用shiro 只需要 1、 应用程序代码 调用Subject 2、 定义编写Realm连接安全数据
Shiro 整合BOS 项目,进行URL权限控制
Shiro虽然可以单独使用,但是企业现在使用最多还是 spring + shiro 方式 !
参考“shiro 安全框架--最好的中文配置文档.pdf”
第一步: URL 级别权限控制, 配置Filter (web.xml )
!-- 权限控制 Filter --
!-- shiro security filter --
filter
!-- 这里的 filter-name 要和 spring 的 applicationContext-shiro.xml 里的 org.apache.sh
文档评论(0)