shiro.ini文件默認在/WEB-INF/shiro.ini 或_classpath_下。shiro會自動查找
#'#'為注釋[main]#↓修改默認跳轉頁#↓shiro 認證失敗后默認redirect到/login.jsp.這里修改默認項authc.loginUrl= /login#↓登錄成功默認跳轉頁面,不配置則跳轉至”/”。如果登陸前點擊的一個需要登錄的頁面,則在登錄自動跳轉到那個需要登錄的頁面。不跳轉到此。authc.successUrl= /user#↓修改角色認證默認地址roles.unauthorizedUrl= /roles/unauthorized#↓修改權限認證默認地址perms.unauthorizedUrl= /perms/unauthorized#realm#↓默認會按此聲明順序攔截判斷,這里的順序是先走myRealm2,再走myRealmmyRealm2= com.myPRoject.shiro.ShiroRealm2myRealm= com.myproject.shiro.ShiroRealm#↓可使用此方法,配置單個或多個,或指定順序#↓如果這里注釋去掉,則指定只走myRealm2#securityManager.realm = $myRealm2#dateSource#↓ 使用 JdbcRealm 作為當前驗證的RealmjdbcRealm=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/msshopdataSource.username=rootdataSource.passWord=root#↓ 引入相關數據配置jdbcRealm.dataSource=$dataSource#↓這里是默認的sql查詢語句,可以自己設定,但參數不能修改,只有一個,且相對應。jdbcRealm.authenticationQuery= select passwordfrom 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 = COLUMNsecurityManager.realms=$jdbcRealm#cache#shiroCacheManager = org.apache.shiro.cache.ehcache.EhCacheManager#shiroCacheManager.cacheManagerConfigFile = classpath:ehcache-shiro.xml#securityManager.cacheManager = $shiroCacheManager#sessionsessionDAO= org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAOsessionManager= org.apache.shiro.web.session.mgt.DefaultWebSessionManagersessionDAO.activeSessionsCacheName= shiro-activeSessionCachesessionManager.sessionDAO= $sessionDAOsecurityManager.sessionManager= $sessionManagersecurityManager.sessionManager.globalSessionTimeout= 3600000#這里的規則,web.xml中的配置的ShiroFilter會使用到。[urls]/= anon/login= anon/suc= authc#/rpc/rest/** = perms[rpc:invoke], authc/admin/** = authc#用戶身份/憑據[users]li=123,guestsun=123,admin[roles]admin = *///////////////////////////////////////////////////////這是授權方法protectedAuthorizationInfo 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; }新聞熱點
疑難解答