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配置的更多相关文章

  1. 【Shiro】Apache Shiro架构之集成web

    Shiro系列文章: [Shiro]Apache Shiro架构之身份认证(Authentication) [Shiro]Apache Shiro架构之权限认证(Authorization) [Shi ...

  2. 【Shiro】Apache Shiro架构之自定义realm

    [Shiro]Apache Shiro架构之身份认证(Authentication) [Shiro]Apache Shiro架构之权限认证(Authorization) [Shiro]Apache S ...

  3. 【Shiro】Apache Shiro架构之权限认证(Authorization)

    Shiro系列文章: [Shiro]Apache Shiro架构之身份认证(Authentication) [Shiro]Apache Shiro架构之集成web [Shiro]Apache Shir ...

  4. 【Shiro】Apache Shiro架构之身份认证(Authentication)

    Shiro系列文章: [Shiro]Apache Shiro架构之权限认证(Authorization) [Shiro]Apache Shiro架构之集成web [Shiro]Apache Shiro ...

  5. [转载] 【Shiro】Apache Shiro架构之实际运用(整合到Spring中)

    写在前面:前面陆陆续续对Shiro的使用做了一些总结,如题,这篇博文主要是总结一下如何将Shiro运用到实际项目中,也就是将Shiro整到Spring中进行开发.后来想想既然要整,就索性把Spring ...

  6. SpringBoot整合Shiro 二:Shiro配置类

    环境搭建见上篇:SpringBoot整合Shiro 一:搭建环境 Shiro配置类配置 shiro的配置主要集中在 ShiroFilterFactoryBean 中 关于权限: anon:无需认证就可 ...

  7. Apache Shiro 手册

    (一)Shiro架构介绍 一.什么是Shiro Apache Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能: 认证 - 用户身份识别,常被称为用户"登录 ...

  8. Apache Shiro 使用手册---转载

    原文地址:http://www.360doc.com/content/12/0104/13/834950_177177202.shtml (一)Shiro架构介绍 一.什么是Shiro Apache ...

  9. Apache Shiro 使用手册

    http://kdboy.iteye.com/blog/1154644 (一)Shiro架构介绍 一.什么是Shiro  Apache Shiro是一个强大易用的Java安全框架,提供了认证.授权.加 ...

  10. apache shiro整合spring(一)

    apache shiro整合spring 将shiro配置文件整合到spring体系中 方式一:直接在spring的配置文件中import shiro的配置文件 方式二:直接在web.xml中配置sh ...

随机推荐

  1. [CSP-S模拟测试]:u(差分)

    题目背景 $\frac{1}{4}$遇到了一道水题,完全不会做,于是去请教小$D$.小$D$看了一眼就切掉了这题,嘲讽了$\frac{1}{4}$一番就离开了.于是,$\frac{1}{4}$只好来问 ...

  2. [CSP-S模拟测试]:小奇的矩阵(matrix)(DP+数学)

    题目背景 小奇总是在数学课上思考奇怪的问题. 题目描述 给定一个$n\times m$的矩阵,矩阵中的每个元素$a_{i,j}$为正整数.接下来规定:    $1.$合法的路径初始从矩阵左上角出发,每 ...

  3. ip地址与子网掩码----基础知识

    前言 IP地址有三种基本类型,由网络号的第一组数字来表示. A类地址的第一组数字为1-126. B类地址的第一组数字为128-191. C类地址的第一组数字为192-223. 注:数字0和 127不作 ...

  4. python中的Nonetype

    在python中的None的类型是Nonetype, 嗯,看清楚了吧,None是值,Nonetype是类型.同理,数字1是值,int是类型.注意:在python中是没有Null的,取而代之的是None

  5. 经典JS 判断上传文件大小和JS即时同步电脑时间

    我也是新手,还是一个JS笨,有一些网站要实现的功能要自己写么? 答案是不会,去问同事大佬吧,闲简单.就在晚上看了一些其他大佬们写的JS效果, 代码很少.占用网站CPU也小的多.可以一用, 废话少扯.代 ...

  6. C#进阶系列——WebApi 路由机制剖析:你准备好了吗? 转载https://www.cnblogs.com/landeanfen/p/5501490.html

    阅读目录 一.MVC和WebApi路由机制比较 1.MVC里面的路由 2.WebApi里面的路由 二.WebApi路由基础 1.默认路由 2.自定义路由 3.路由原理 三.WebApi路由过程 1.根 ...

  7. Maven 上传文件 Error creating bean with name 'multipartResolver':

    <!--配置MultipartResolver 处理文件上传--><bean id="multipartResolver" class="org.spr ...

  8. python学习笔记之数据类型、字符编码、文件处理

    1.数据类型 1.数字(int,float) 整形(int):定义 age=20  #本质age=int(20) 浮点类型:salary=3000.3 #本质salary=float(3000.3) ...

  9. FileInputStream_FileOutputStream

    Writer的基本方法 //向输出流中写入一个字符数据,该字节数据为参数b的低16位 void write(int c) throws IOException //将一个字符类型的数组中的数据写入输出 ...

  10. java的实用类

    1)   Random类 用于生成随机数字,所有生成的数字,都是等概率的. nextInt():生成的值介于int的所有取值范围(-231 ~ 231-1) nextInt(int value):生成 ...