shiro.ini 配置详解
引用:
【1】开涛的《跟我学shiro》
【2】《SpringMVC整合Shiro》
【3】《shiro简单配置》
【4】Apache shiro集群实现 (一) shiro入门介绍
shiro.ini文件默认在_/WEB-INF/_ 或_classpath_下。shiro会自动查找
#‘#’为注释
[main]
#↓修改默认跳转页
#↓shiro 认证失败后默认redirect到/login.jsp.这里修改默认项
authc.loginUrl = /login
#↓登录成功默认跳转页面,不配置则跳转至”/”。如果登陆前点击的一个需要登录的页面,则在登录自动跳转到那个需要登录的页面。不跳转到此。
authc.successUrl = /user
#↓修改角色认证默认地址
roles.unauthorizedUrl = /roles/unauthorized
#↓修改权限认证默认地址
perms.unauthorizedUrl = /perms/unauthorized
#realm
#↓默认会按此声明顺序拦截判断,这里的顺序是先走myRealm2,再走myRealm
myRealm2 = com.myproject.shiro.ShiroRealm2
myRealm = com.myproject.shiro.ShiroRealm
#↓可使用此方法,配置单个或多个,或指定顺序
#↓如果这里注释去掉,则指定只走myRealm2
#securityManager.realm = $myRealm2
#dateSource
#↓ 使用 JdbcRealm 作为当前验证的Realm
jdbcRealm=org.apache.shiro.realm.jdbc.JdbcRealm
#↓ 使用druid数据源
dataSource=com.alibaba.druid.pool.DruidDataSource
#↓ MySQL驱动
dataSource.driverClassName=com.mysql.jdbc.Driver
#↓ MySQL相关参数配置
dataSource.url=jdbc:mysql://localhost:3306/msshop
dataSource.username=root
dataSource.password=root
#↓ 引入相关数据配置
jdbcRealm.dataSource=$dataSource
#↓这里是默认的sql查询语句,可以自己设定,但参数不能修改,只有一个,且相对应。
jdbcRealm.authenticationQuery = select password from users where username = ?
#jdbcRealm.userRolesQuery = select role_name from user_roles where username = ?
#jdbcRealm.permissionsQuery = select permission from roles_permissions where role_name = ?
#↓是否
#jdbcRealm.permissionsLookupEnabled = false
#saltStyle =NO_SALT , CRYPT, COLUMN, EXTERNAL;
#jdbcRealm.saltStyle = COLUMN
securityManager.realms=$jdbcRealm
#cache
#shiroCacheManager = org.apache.shiro.cache.ehcache.EhCacheManager
#shiroCacheManager.cacheManagerConfigFile = classpath:ehcache-shiro.xml
#securityManager.cacheManager = $shiroCacheManager
#session
sessionDAO = org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO
sessionManager = org.apache.shiro.web.session.mgt.DefaultWebSessionManager
sessionDAO.activeSessionsCacheName = shiro-activeSessionCache
sessionManager.sessionDAO = $sessionDAO
securityManager.sessionManager = $sessionManager
securityManager.sessionManager.globalSessionTimeout = 3600000
#这里的规则,web.xml中的配置的ShiroFilter会使用到。
[urls]
/ = anon
/login = anon
/suc = authc
#/rpc/rest/** = perms[rpc:invoke], authc
/admin/** = authc
#用户身份/凭据
[users]
li=123,guest
sun=123,admin
[roles]
admin = *
有一点说明下:
//这是授权方法
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
String userName = (String) getAvailablePrincipal(principals);
//TODO 通过用户名获得用户的所有资源,并把资源存入info中
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
//这里有一点说明下:
//这里set的只是把【已有】的权限、角色放到当前验证的集合中,并不是给用户【设置新的】权限、角色
//【已有】的权限、角色是在配置文件中,或在库表中,这里只是取出放到集合中。
info.setStringPermissions(set集合);
info.setRoles(set集合);
info.setObjectPermissions(set集合);
return info;
}
shiro.ini 配置详解的更多相关文章
- my.ini配置详解
Mysql my.ini 配置文件详解 #BEGIN CONFIG INFO #DESCR: 4GB RAM, 只使用InnoDB, ACID, 少量的连接, 队列负载大 #TYPE: SYSTEM ...
- php.ini 配置详解
这个文件必须命名为''php.ini''并放置在httpd.conf中的PHPIniDir指令指定的目录中.最新版本的php.ini可以在下面两个位置查看:http://cvs.php.net/vie ...
- php.ini 配置详解【转载】
[PHP]engine = On #是否启用PHP解析引擎zend.ze1_compatibility_mode = Off #是否在Last-Modified应答头中放置该PHP脚本的最后修改时 ...
- Shiro 安全框架详解二(概念+权限案例实现)
Shiro 安全框架详解二 总结内容 一.登录认证 二.Shiro 授权 1. 概念 2. 授权流程图 三.基于 ini 的授权认证案例实现 1. 实现原理图 2. 实现代码 2.1 添加 maven ...
- Shiro 安全框架详解一(概念+登录案例实现)
shiro 安全框架详细教程 总结内容 一.RBAC 的概念 二.两种常用的权限管理框架 1. Apache Shiro 2. Spring Security 3. Shiro 和 Spring Se ...
- PHP的核心配置详解
1.PHP核心配置详解 代码在不同的环境下执行的结果也会大有不同,可能就因为一个配置问题,导致一个非常高危的漏洞能够利用:也可能你已经找到的一个漏洞就因为你的配置问题,导致你鼓捣很久都无法构造成功的漏 ...
- Linux中Nginx安装与配置详解
转载自:http://www.linuxidc.com/Linux/2016-08/134110.htm Linux中Nginx安装与配置详解(CentOS-6.5:nginx-1.5.0). 1 N ...
- Centos7上部署openstack ocata配置详解
之前写过一篇<openstack mitaka 配置详解>然而最近使用发现阿里不再提供m版本的源,所以最近又开始学习ocata版本,并进行总结,写下如下文档 OpenStack ocata ...
- (转)Centos7上部署openstack ocata配置详解
原文:http://www.cnblogs.com/yaohong/p/7601470.html 随笔-124 文章-2 评论-82 Centos7上部署openstack ocata配置详解 ...
随机推荐
- Mac下配置node.js环境(Mac 10.12)
有安装就有卸载,卸载教程参考:http://www.cnblogs.com/EasonJim/p/6287141.html 一.官方下载pkg安装包 1.安装 到官网https://nodejs.or ...
- UILabel自适应高度
在网上看了一些,发现很多关于自适应高度的,不能用,就在下面写一种我常用的吧!保证可以直接粘贴复制到Xcode中运行. UILabel *label = [[UILabel alloc] init]; ...
- Tsinsen-A1488 : 魔法波【高斯消元+异或方程组】
高斯消元. 自己只能想出来把每一个点看成一个变量,用Xi表示其状态,这样必定TLE,n^2 个变量,再加上3次方的高斯消元(当然,可以用bitset压位). 正解如下: 我们把地图划分成一个个的横条和 ...
- Javascript 查找元素
DOM定义了多种查找元素的方法,除了我们常用的getElementById(),还有getElementsByTagName()和getElementsByName().使用这几种方法方法我们可以查找 ...
- Grunt安装中遇到的问题汇总
Grunt安装中遇到的问题汇总 1.如果是windows下的dos中安装Grunt,必须以管理员身份登录(第一个坑) 登录方法是: 方法一:开始>所有程序>附件>命令提示符上右键&g ...
- robotium从入门到放弃 二 第一个实例
1.导入被测试的源码 我们先下载加你计算器源码,下载地址: https://robotium.googlecode.com/files/AndroidCalculator.zip 如果地址被墙无法现在 ...
- error: Embedded binary's bundle identifier is not prefixed with the parent app's bundle identifier
xcode + iwatch调试错误 在工程的 Targets 下面的 三项(工程名为my):my . my Watchkit app .my Watchkit extention General ...
- 对js原型对象的拓展和原型对象的重指向的区别的研究
我写了如下两段代码: function Person(){} var p1 = new Person(); Person.prototype = { constructor: Person, name ...
- iOS 之 #import与#include的区别及@class
#import 相比#include不会引起交叉编译. @class一般用于头文件中需要声明该类的变量时用到
- hive CliDriver 源码分析
664行 CliDriver main启动 public static void main(String[] args) throws Exception { int ret = new CliDri ...