1 项目框架
spring+springMVC (Dao层框架对本次shiro框架集成无影响)
2 设计思路
提供给北辰会展中心一套基于shiro 框架开发的权限管理系统, 实现自定义角色并赋予角色相应的权限,来控制用户访问功能, 例如广告的增加,删除,发布,修改等等;
3 shiro 主要功能
1) 权限管理 : 给用户分配角色 , 也可以给用户分配权限 或者把权限绑定到角色
2 )session 管理 : 用户登录以后 shiro会创建一个对话, 并且将对话交给sessionManager进行管理
4 shiro三大核心
subject :代表当前用户 ,可以理解为在用户输入账号密码登陆之后,就是一个subject
securityManager:是subject的管理者入口(类似于springMVC中的dispatchServlet)
realm:数据源,用户的权限,角色,账号密码都是在realm中读取,realm数据可以来自配置文件或者数据库, 通常试用数据库保存realm信息
5 验证策略
FirstSuccessfulStragey: 只要有一个realm验证成功即可,只返回第一个realm身份验证的信息,其他的忽略
AtlestOneSuccessfulStragery :只要一个realm验证成功即可,和FirstSuccessfulStragey 不同,AtlestOneSuccessfulStragery返回所有的realm验证信息
AllSuccessfulStragery:所有的realm验证成功才算成功,且返回所有realm身份验证信息,如果有一条失败,则全部失败
默认:AtlestOneSuccessfulStragery策略
6 授权
授权中几个关键的对象
主题subject (用户); 资源 Resource;权限permission ;角色 role
7 集合shiro框架
1 )pom坐标的引入,ini文件说明以及 编写shiro框架配置
- a).引入jar包
<!--shiro 整合spring jar-->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.4.0</version>
</dependency>
<!--shiro 核心类库-->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>1.2.3</version>
</dependency>
<!--shiro web 类库-->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-web</artifactId>
<version>1.2.3</version>
</dependency>
- b ). 创建ini权限资源文本(如果是idea 开发需要 下载ini插件)
ini内容解释说明:
[users];用户
//格式:用户账号 = 用户密码 ,拥有的角色权限
//解释:root用户,密码为root,该用户拥有admin角色权限
root = root ,admin ;
guest = guest , guest
//当一个用户拥有多个角色权限时 用","分割
test = 123456 ,guest ,test
[roles];角色
//格式 角色 = 可以访问的资源 * 代表所有资源
//解释 admin角色可以访问该项目的所有资源
admin = *
//guest账户 可以访问user:list资源
guest &#