Apache shiro集群实现 (二) shiro 的INI配置
Apache shiro集群实现 (一) shiro入门介绍
Apache shiro集群实现 (二) shiro 的INI配置
Apache shiro集群实现 (三)shiro身份认证(Shiro Authentication)
Apache shiro集群实现 (四)shiro授权(Authentication)--访问控制
Apache shiro集群实现 (五)分布式集群系统下的高可用session解决方案
Apache shiro集群实现 (六)分布式集群系统下的高可用session解决方案---Session共享
一、概述
INI配置文件是一种key/value的键值对配置,提供了分类的概念,每一个类中的key不可重复。在这个示例中我们使用一个INI文件来配置Shiro SecurityManager,首先,在pom.xml同目录中创建一个src/main/resources子目录,在该子目录中创建一个shiro.ini文件,内容如下:
# =======================# Shiro INI 配置# =======================[main]# 对象和它们的属性在这里定义# 例如 SecurityManager, Realms 等。[users]# 用户在这里定义,如果只是一小部分用户。(实际使用中,使用这种配置显然不合适)[roles]# 角色在这里定义,(实际应用中也不会在这里定义角色,一般都是存储于数据库中)[urls]# web系统中,基于url的权限配置,web章节会介绍。
二、详细介绍
[main]部分
[main]sha256Matcher = org.apache.shiro.authc.credential.Sha256CredentialsMatchermyRealm = com.company.security.shiro.DatabaseRealmmyRealm.connectionTimeout = 30000myRealm.username = jsmithmyRealm.password = secretmyRealm.credentialsMatcher = $sha256MatchersecurityManager.sessionManager.globalSessionTimeout = 1800000
[main]myRealm = com.company.shiro.realm.MyRealm...
...myRealm.connectionTimeout = 30000myRealm.username = jsmith...
...myRealm.setConnectionTimeout(30000);myRealm.setUsername("jsmith");...
...sha256Matcher = org.apache.shiro.authc.credential.Sha256CredentialsMatcher...myRealm.credentialsMatcher = $sha256Matcher...
...securityManager.sessionManager.globalSessionTimeout = 1800000...
securityManager.getSessionManager().setGlobalSessionTimeout(1800000);
数组类型注入:
# 'cipherKey' 是数组类型的默认使用Base64编码- securityManager.rememberMeManager.cipherKey = kPH+bIxk5D2deZiIxcaaaA==
...
securityManager.rememberMeManager.cipherKey = 0x3707344A4093822299F31D008
集合类型的注入:
Array/Set/List setter,多个值通过逗号分隔
sessionListener1 = com.company.my.SessionListenerImplementation...sessionListener2 = com.company.my.other.SessionListenerImplementation...securityManager.sessionManager.sessionListeners = $sessionListener1, $sessionListener2
object1 = com.company.some.Classobject2 = com.company.another.Class...anObject = some.class.with.a.Map.propertyanObject.mapProperty = key1:$object1, key2:$object2
anObject.map = $objectKey1:$objectValue1, $objectKey2:$objectValue2...
注入顺序:
...myRealm = com.company.security.MyRealm...myRealm = com.company.security.DatabaseRealm...
默认值:
...securityManager = com.company.security.shiro.MyCustomSecurityManager...
[users]
[users]admin = 123lonestarr = 123, role1,role2darkhelmet = 123, role1,role2
username = password, roleName1, roleName2, ..., roleNameN
[main]...sha256Matcher = org.apache.shiro.authc.credential.Sha256CredentialsMatcher...iniRealm.credentialsMatcher = $sha256Matcher...[users]# user1 = sha256-hashed-hex-encoded password, role1, role2, ...user1 = 2bb80d537b1da3e38bd30361aa855686bde0eacd7162fef6a25fe97bf527a25b, role1, role2, ...
[main]...# true = hex, false = base64:sha256Matcher.storedCredentialsHexEncoded = false
[roles]
[roles]# 'admin' 拥有所有权限admin = *# 'schwartz' 拥有lightsaber下所有权限schwartz = lightsaber:*# 'goodguy' 拥有winnebago下的'drive' 下的'eagle5'权限goodguy = winnebago:drive:eagle5
rolename = permissionDefinition1, permissionDefinition2, ..., permissionDefinitionN
[urls]
[urls]- /admin/** = authc, roles[admin], perms["permission1"]
Apache shiro集群实现 (二) shiro 的INI配置的更多相关文章
- Apache shiro集群实现 (八) web集群时session同步的3种方法
Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...
- Apache shiro集群实现 (七)分布式集群系统下---cache共享
Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...
- Apache shiro集群实现 (六)分布式集群系统下的高可用session解决方案---Session共享
Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...
- Apache shiro集群实现 (五)分布式集群系统下的高可用session解决方案
Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...
- Apache shiro集群实现 (四)shiro授权(Authentication)--访问控制
Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...
- Apache shiro集群实现 (三)shiro身份认证(Shiro Authentication)
Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...
- Apache shiro集群实现 (一) shiro入门介绍
近期在ITOO项目中研究使用Apache shiro集群中要解决的两个问题,一个是Session的共享问题,一个是授权信息的cache共享问题,官网上给的例子是Ehcache的实现,在配置说明上不算很 ...
- 集群环境下Shiro Session的管理
问题引入 紧接上篇连接 在多台tomcat集群中,shiro管理的session需要放在Redis中,我们只需要增加redisSessionDAO的配置就行 <!-- 定义会话管理器的操作 表示 ...
- Apache Hadoop集群离线安装部署(二)——Spark-2.1.0 on Yarn安装
Apache Hadoop集群离线安装部署(一)——Hadoop(HDFS.YARN.MR)安装:http://www.cnblogs.com/pojishou/p/6366542.html Apac ...
随机推荐
- 【swift】ios中生成二维码
ios开发中可以自己代码生成二维码,需要使用到一个框架 CoreImage CoreImage框架可以做滤镜,Gif动图,二维码等 先看效果图 下面直接贴上代码(OC也是下面一样的流程) func c ...
- Python super使用
一 基础使用 在类的继承中,如果重定义某个方法,该方法会覆盖父类的同名方法,但有时,我们希望能同时实现父类的功能,这时,我们就需要调用父类的方法了,可通过使用 super 来实现,比如: #!/usr ...
- [NOI 2007]货币兑换Cash
Description 题库链接 (按我的语文水平完全无 fa♂ 概括题意,找了 hahalidaxin 的题意简述... 有 \(AB\) 两种货币,每天可以可以付 \(IP_i\) 元,买到 \( ...
- ●CodeChef Sereja and Game
题链: https://www.codechef.com/problems/SEAGM题解: 概率dp,博弈论 详细题解:http://www.cnblogs.com/candy99/p/650434 ...
- 51Nod 1781 跑的比谁都快
香港记者跑的比谁都快是众所周知的常识. 现在,香港记者站在一颗有 n 个点的树的根结点上(即1号点),编号为 i 的点拥有权值 a[i] ,数据保证每个点的编号都小于它任意孩子结点的别号. 我们假定这 ...
- 在Unix系统中,主存索引节点和辅存索引节点从内容上比较有什么不同,为什么要设置主存索引节点?
主存索引节点和辅存索引节点的不同主要体现在:主存索引节点状态:设备号.索引节点号:引用计数. 主存索引节点状态——反映主存索引节点的使用情况.它指示出: 1. 索引节点是否被锁上了: 2. 是否有 ...
- widows下的进程与服务
进程: 当程序卡死的时候,我们可以直接通过任务管理器来关闭进程. 服务: 在这个界面,我们可以选择启动或者关闭相关服务,还可以选择服务是否自动启动. 以关闭MySQL自启动服务为例:https://j ...
- C语言程序设计作业
一.阅读邹欣老师的博客--师生关系,针对文中的几种师生关系谈谈你的看法,你期望的师生关系是什么样的? 我期望老师与学生之间的关系是和睦相处的,学生有问题可以找老师,当然是再老师有空的条件下.老师和学生 ...
- Android编译安装失败解决办法
今天用AndroidStudio开发了一个手机App玩玩,但是偶然遇到一个问题,自己手机上测试得劲的很,分享给朋友做测试,但是nie,意外出现了.... 两个人都给我说个安装失败,这个就比较尴尬了,找 ...
- Jmeter_ForEach控制器实现网页爬虫
一直以来,爬虫似乎都是写代码去实现的,今天像大家介绍一下Jmeter如何实现一个网页爬虫! Jmeter的爬虫原理其实很简单,就是对网页提交一个请求,然后把返回的所有href提取出来,利用ForEac ...