Shiro-过滤器
一、shiro內置過濾器:
Shiro內置了很多默認的過濾器,比如:身份驗證、授權等,默認過濾器可以參考“DefaultFilter”中的枚舉過濾器:
package org.apache.shiro.web.filter.mgt; public enum DefaultFilter {anon(AnonymousFilter.class),authc(FormAuthenticationFilter.class),authcBasic(BasicHttpAuthenticationFilter.class),logout(LogoutFilter.class),noSessionCreation(NoSessionCreationFilter.class),perms(PermissionsAuthorizationFilter.class),port(PortFilter.class),rest(HttpMethodPermissionFilter.class),roles(RolesAuthorizationFilter.class),ssl(SslFilter.class),user(UserFilter.class); }1. 身份驗證相關:
*******************************身份驗證******************************************************** 1.authc: -->org.apache.shiro.web.filter.authc.FormAuthenticationFilter屬于表單的過濾器,如"/**=authc",如果沒有登錄會跳到相應的登錄頁面登錄:主要屬性:usernameParam:表單提交的用戶名參數名(username)passwordParam:表單提交的密碼參數名(password)rememberMeParam:表單提交的密碼參數名(rememberMe)loginUrl:登錄頁面地址(/login.jsp)successUrl:登錄成功后的默認重定向地址failureKeyAttribute:登錄失敗后錯誤信息存儲key(shiroLoginFailure)2.authcBasic: -->org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilterBaseHTTP身份驗證過濾器,主要屬性:applicationName:彈出框顯示的信息(aoolication)3.logout: -->org.apache.shiro.web.filter.authc.LogoutFilter退出過濾器,主要屬性:redirectUrl:退出成功后重定向的地址(/)4.user: -->org.apache.shiro.web.filter.authc.UserFilter用戶過濾器,用戶已經身份驗證/記住我都可以,示例:"/**=user"5.anon: -->org.apache.shiro.web.filter.authc.AnonymousFilter匿名過濾器,即不需要登錄也可以訪問;一般用于靜態(tài)資源過濾,示例:"/static/**=anon"2.授權相關:
**********************************授權*****************************************************1.roles: -->org.apache.shiro.web.filter.authz.RolesAuthorizationFilter角色授權過濾器,驗證用戶是否擁有角色:主要屬性:loginUrl:登錄頁面地址(/login.jsp)unauthorizedUrl:未授權重定向地址;示例:"/admin/**=roles[admin]"2.perms: -->org.apache.shiro.web.filter.authz.PermissionsAuthorizationFilter授權過濾器,驗證用戶是否擁有權限,屬性和Roles一樣;示例:"/user/**=parms["user:create"]"3.port: -->org.apache.shiro.web.filter.authz.PortFilter端口過濾器,主要屬性port(80),表示可以通過的端口;示例:"/test=port[80]",如果用戶訪問的頁面是非80,會自動將端口改為80端口,其他路徑參數都一樣4.rest: -->org.apache.shiro.web.filter.authz.HttpMethodPermissionFilterreset風格過濾器,會自動根據請求方法構建權限字符串5.ssl: -->org.apache.shiro.web.filter.authz.SslFilterSSL過濾器,只有請求協(xié)議是https才能通過;否則會自動跳轉到https端口(443);其他和port過濾器一樣3. 其他:
***********************************Session****************************************************1.noSessionCreation: -->org.apache.shiro.web.filter.session.NoSessionCreationFilter不創(chuàng)建會話過濾器,調用subject.getSession(false)不會由什么問題,但是如果subject.getSession(true)將拋出異常?
?二、自定義過濾器:
通過自定義過濾器可以擴展功能,
例如:動態(tài)url-叫哦/權限訪問控制的實現(xiàn),根據Subject身份信息獲取用戶信息綁定到Request(即設置通用數據)、驗證碼驗證、在線用戶信息保存等。
轉載于:https://www.cnblogs.com/luliang888/p/11171485.html
總結
- 上一篇: 在阿里工作5年了,斗胆谈谈我认为的高级开
- 下一篇: 别再瞎搞了,处理Java异常的10个最佳