shiro.ini 配置詳解html
#‘#’爲註釋
[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 = *
有一點說明下:mysql
//這是受權方法
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;
}