1、shiro內置過濾器:web
Shiro內置了不少默認的過濾器,好比:身份驗證、受權等,默認過濾器能夠參考「DefaultFilter」中的枚舉過濾器:apache
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. 身份驗證相關:session
*******************************身份驗證******************************************************** 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.BasicHttpAuthenticationFilter BaseHTTP身份驗證過濾器,主要屬性: 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 匿名過濾器,即不須要登陸也能夠訪問;通常用於靜態資源過濾,示例:"/static/**=anon"
2.受權相關:app
**********************************受權***************************************************** 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.HttpMethodPermissionFilter reset風格過濾器,會自動根據請求方法構建權限字符串 5.ssl: -->org.apache.shiro.web.filter.authz.SslFilter SSL過濾器,只有請求協議是https才能經過;不然會自動跳轉到https端口(443);其餘和port過濾器同樣
3. 其餘:jsp
***********************************Session**************************************************** 1.noSessionCreation: -->org.apache.shiro.web.filter.session.NoSessionCreationFilter 不建立會話過濾器,調用subject.getSession(false)不會由什麼問題,可是若是subject.getSession(true)將拋出異常
2、自定義過濾器:url
經過自定義過濾器能夠擴展功能,spa
例如:動態url-叫哦/權限訪問控制的實現,根據Subject身份信息獲取用戶信息綁定到Request(即設置通用數據)、驗證碼驗證、在線用戶信息保存等。rest