【Shiro】二、Apache Shiro配置
1、配置
使用配置获得SecurityManager,SecurityManager是核心,配置好并获取到SecurityManager,Shiro就算正式运行起来了。
两种方式:通过ini文件;通过ini实例
ini文件的格式
段:一个ini文件分为4段内容,段用[]表示;每段用键值对来进行配置
[main]:SecurityManager相关对象及其属性
[users]:静态定义的用户信息
[roles]:静态定义的角色信息
[urls]:Web应用中基于URL的安全控制
[main]
#定义对象
sha256Matcher = org.apache.shiro.authc.credential.Sha256CredentialsMatcher #定义对象及其属性
myRealm = com.company.security.shiro.DatabaseRealm
myRealm.connectionTimeout = 30000
myRealm.username = jsmith
myRealm.password = secret
#引用对象
myRealm.credentialsMatcher = $sha256Matcher #定义嵌套属性
securityManager.sessionManager.globalSessionTimeout = 1800000 #集合属性
securityManager.sessionManager.sessionListeners = $listen1,$listen2
anObject = some.class.with.a.Map.property
anObject.mapProperty = key1:$obj1,key2:$obj2 #重写覆盖
myRealm = com.company.security.MyRealm
myRealm = com.company.security.DatabaseRealm #自定义SecurityManager
securityManager = com....MyCustomerSecurityManager [users]
#格式:用户名 = 密码,角色1,角色2,角色3...
admin = secret
louis = 520,admin
yang = 1234,customer,controller [roles]
#格式:角色名 = 权限表达式1,权限表达式2.....
#权限表达式的格式:类型:操作:id,使用*通配符
#admin角色拥有所有权限
admin = *
#louis角色可以做sale类型的任何事
louis = sale:*
#yang角色可以做sale类型下confirm事件,且只能操作0001id
yang = sale:confirm:0001 [urls]
后面再讲
一般使用ini的方式配置,除非运行环境内存小,有限制,才用编程模式
2、术语
了解一下Shiro中用到的一些英文术语
Authentication:认证
Authorization:授权
Credential:用户凭证,如密码、token
Principal:用户标识,如用户名
Subject:用户
Role:角色
Permission:功能权限
Session:会话
Realm:安全DAO
Cryptography:密码术
Cipher:加密算法
Hash:散列算法
【Shiro】二、Apache Shiro配置的更多相关文章
- 【Shiro】Apache Shiro架构之集成web
Shiro系列文章: [Shiro]Apache Shiro架构之身份认证(Authentication) [Shiro]Apache Shiro架构之权限认证(Authorization) [Shi ...
- 【Shiro】Apache Shiro架构之自定义realm
[Shiro]Apache Shiro架构之身份认证(Authentication) [Shiro]Apache Shiro架构之权限认证(Authorization) [Shiro]Apache S ...
- 【Shiro】Apache Shiro架构之权限认证(Authorization)
Shiro系列文章: [Shiro]Apache Shiro架构之身份认证(Authentication) [Shiro]Apache Shiro架构之集成web [Shiro]Apache Shir ...
- 【Shiro】Apache Shiro架构之身份认证(Authentication)
Shiro系列文章: [Shiro]Apache Shiro架构之权限认证(Authorization) [Shiro]Apache Shiro架构之集成web [Shiro]Apache Shiro ...
- [转载] 【Shiro】Apache Shiro架构之实际运用(整合到Spring中)
写在前面:前面陆陆续续对Shiro的使用做了一些总结,如题,这篇博文主要是总结一下如何将Shiro运用到实际项目中,也就是将Shiro整到Spring中进行开发.后来想想既然要整,就索性把Spring ...
- SpringBoot整合Shiro 二:Shiro配置类
环境搭建见上篇:SpringBoot整合Shiro 一:搭建环境 Shiro配置类配置 shiro的配置主要集中在 ShiroFilterFactoryBean 中 关于权限: anon:无需认证就可 ...
- Apache Shiro 手册
(一)Shiro架构介绍 一.什么是Shiro Apache Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能: 认证 - 用户身份识别,常被称为用户"登录 ...
- Apache Shiro 使用手册---转载
原文地址:http://www.360doc.com/content/12/0104/13/834950_177177202.shtml (一)Shiro架构介绍 一.什么是Shiro Apache ...
- Apache Shiro 使用手册
http://kdboy.iteye.com/blog/1154644 (一)Shiro架构介绍 一.什么是Shiro Apache Shiro是一个强大易用的Java安全框架,提供了认证.授权.加 ...
- apache shiro整合spring(一)
apache shiro整合spring 将shiro配置文件整合到spring体系中 方式一:直接在spring的配置文件中import shiro的配置文件 方式二:直接在web.xml中配置sh ...
随机推荐
- [CSP-S模拟测试]:u(差分)
题目背景 $\frac{1}{4}$遇到了一道水题,完全不会做,于是去请教小$D$.小$D$看了一眼就切掉了这题,嘲讽了$\frac{1}{4}$一番就离开了.于是,$\frac{1}{4}$只好来问 ...
- [CSP-S模拟测试]:小奇的矩阵(matrix)(DP+数学)
题目背景 小奇总是在数学课上思考奇怪的问题. 题目描述 给定一个$n\times m$的矩阵,矩阵中的每个元素$a_{i,j}$为正整数.接下来规定: $1.$合法的路径初始从矩阵左上角出发,每 ...
- ip地址与子网掩码----基础知识
前言 IP地址有三种基本类型,由网络号的第一组数字来表示. A类地址的第一组数字为1-126. B类地址的第一组数字为128-191. C类地址的第一组数字为192-223. 注:数字0和 127不作 ...
- python中的Nonetype
在python中的None的类型是Nonetype, 嗯,看清楚了吧,None是值,Nonetype是类型.同理,数字1是值,int是类型.注意:在python中是没有Null的,取而代之的是None
- 经典JS 判断上传文件大小和JS即时同步电脑时间
我也是新手,还是一个JS笨,有一些网站要实现的功能要自己写么? 答案是不会,去问同事大佬吧,闲简单.就在晚上看了一些其他大佬们写的JS效果, 代码很少.占用网站CPU也小的多.可以一用, 废话少扯.代 ...
- C#进阶系列——WebApi 路由机制剖析:你准备好了吗? 转载https://www.cnblogs.com/landeanfen/p/5501490.html
阅读目录 一.MVC和WebApi路由机制比较 1.MVC里面的路由 2.WebApi里面的路由 二.WebApi路由基础 1.默认路由 2.自定义路由 3.路由原理 三.WebApi路由过程 1.根 ...
- Maven 上传文件 Error creating bean with name 'multipartResolver':
<!--配置MultipartResolver 处理文件上传--><bean id="multipartResolver" class="org.spr ...
- python学习笔记之数据类型、字符编码、文件处理
1.数据类型 1.数字(int,float) 整形(int):定义 age=20 #本质age=int(20) 浮点类型:salary=3000.3 #本质salary=float(3000.3) ...
- FileInputStream_FileOutputStream
Writer的基本方法 //向输出流中写入一个字符数据,该字节数据为参数b的低16位 void write(int c) throws IOException //将一个字符类型的数组中的数据写入输出 ...
- java的实用类
1) Random类 用于生成随机数字,所有生成的数字,都是等概率的. nextInt():生成的值介于int的所有取值范围(-231 ~ 231-1) nextInt(int value):生成 ...