shiro提供多個預設的過濾器,我們可以用這些過濾器來配置控制指定url的許可權,shiro常見的過濾器如下:
配置縮寫
對應的過濾器
功能身份驗證相關的
anon
anonymousfilter
指定url可以匿名訪問
authc
formauthenticationfilter
基於表單的***;如「/**=authc」,如果沒有登入會跳到相應的登入頁面登入;主要屬性:usernameparam:表單提交的使用者名稱引數名( username); passwordparam:表單提交的密碼引數名(password); remembermeparam:表單提交的密碼引數名(rememberme); loginurl:登入頁面位址(/login.jsp);successurl:登入成功後的預設重定向位址; failurekeyattribute:登入失敗後錯誤資訊儲存key(shirologinfailure)
使用者***,使用者已經身份驗證/記住我登入的都可
授權相關的
roles
rolesauthorizationfilter
角色授權***,驗證使用者是否擁有所有角色;主要屬性: loginurl:登入頁面位址(/login.jsp);unauthorizedurl:未授權後重定向的位址;示例「/admin/**=roles[admin]」
perms
permissionsauthorizationfilter
許可權授權***,驗證使用者是否擁有所有許可權;屬性和roles一樣;示例「/user/**=perms[「user:create」]」
port
portfilter
埠***,主要屬性:port(80):可以通過的埠;示例「/test= port[80]」,如果使用者訪問該頁面是非80,將自動將請求埠改為80並重定向到該80埠,其他路徑/引數等都一樣
rest風格***,自動根據請求方法構建許可權字串(get=read, post=create,put=update,delete=delete,head=read,trace=read,options=read, mkcol=create)構建許可權字串;示例「/users=rest[user]」,會自動拼出「user:read,user:create,user:update,user:delete」許可權字串進行許可權匹配(所有都得匹配,ispermittedall)
sslsslfilter
ssl***,只有請求協議是https才能通過;否則自動跳轉會https埠(443);其他和port***一樣
nosessioncreation
nosessioncreationauthorizationfilter
需要指定許可權才能訪問
shiro內建過濾器
rest 例子 admins user rest user 根據請求的方法,相當於 admins user perms user method 其中method為post,get,delete等。port 例子 admins user port 8081 當請求的url的埠不是8081是跳轉到sch...
shiro過濾器名稱
功 能配 置 anon 任何使用者傳送的請求都能夠訪問 authc 經過認證的請求可訪問,否則將會將請求重定向到 ini 配置檔案配置的 authc.loginurl 資源,進行認證操作 authc.loginurl login.jsp authc.successurl 認證成功後重定向到此資源 a...
Shiro內建過濾器
執行 web 應用時,shiro會建立一些有用的預設 filter 例項,並自動地在 main 項中將它們置為可用 這些可用的預設的 filter 例項是被 defaultfilter 列舉類定義的 列舉的名稱字段就是可供配置的名稱 這些過濾器分為兩組 u 認證過濾器 anon 不認證也可以訪問 a...