Shiro內建過濾器

2021-10-02 15:54:48 字數 1855 閱讀 3526

filter name

class

description

anon

org.apache.shiro.web.filter.authc.anonymousfilter

匿名***,即不需要登入即可訪問;一般用於靜態資源過濾;示例/static/**=anon

authc

org.apache.shiro.web.filter.authc.formauthenticationfilter

基於表單的***;如/**=authc,如果沒有登入會跳到相應的登入頁面登入

basic http身份驗證***

logout

org.apache.shiro.web.filter.authc.logoutfilter

nosessioncreation

org.apache.shiro.web.filter.session.nosessioncreationfilter

不建立會話***,呼叫subject.getsession(false)不會有什麼問題,但是如果subject.getsession(true)將丟擲disabledsessionexception異常

perms

org.apache.shiro.web.filter.authz.permissionsauthorizationfilter

許可權授權***,驗證使用者是否擁有所有許可權;屬性和roles一樣;示例/user/**=perms[「user:create」]

port

org.apache.shiro.web.filter.authz.portfilter

埠***,主要屬性port(80):可以通過的埠;示例/test= port[80],如果使用者訪問該頁面是非80,將自動將請求埠改為80並重定向到該80埠,其他路徑/引數等都一樣

rest風格***,自動根據請求方法構建許可權字串;示例/users=rest[user],會自動拼出user:read,user:create,user:update,user:delete許可權字串進行許可權匹配(所有都得匹配,ispermittedall)

roles

org.apache.shiro.web.filter.authz.rolesauthorizationfilter

角色授權***,驗證使用者是否擁有所有角色;示例/admin/**=roles[admin]

sslorg.apache.shiro.web.filter.authz.sslfilter

ssl***,只有請求協議是https才能通過;否則自動跳轉會https埠443;其他和port***一樣;

user

org.apache.shiro.web.filter.authc.userfilter

使用者***,使用者已經身份驗證/記住我登入的都可;示例/**=user

這些過濾器分為兩組:

訪問),user

注意 user 和 authc 不同

當應用開啟了rememberme時,使用者下次訪問時可以是乙個user,但絕不會是authc,因為authc是需要重新認證的

user表示使用者不一定已通過認證,只要曾被shiro記住過登入狀態的使用者就可以正常發起請求,比如rememberme

說白了:以前的乙個使用者登入時開啟了rememberme,然後他關閉瀏覽器,下次再訪問時他就是乙個user,而不會authc

shiro內建過濾器

rest 例子 admins user rest user 根據請求的方法,相當於 admins user perms user method 其中method為post,get,delete等。port 例子 admins user port 8081 當請求的url的埠不是8081是跳轉到sch...

Shiro內建過濾器

執行 web 應用時,shiro會建立一些有用的預設 filter 例項,並自動地在 main 項中將它們置為可用 這些可用的預設的 filter 例項是被 defaultfilter 列舉類定義的 列舉的名稱字段就是可供配置的名稱 這些過濾器分為兩組 u 認證過濾器 anon 不認證也可以訪問 a...

shiro內建過濾器研究

rest 例子 admins user rest user 根據請求的方法,相當於 admins user perms user method 其中method為post,get,delete等。port 例子 admins user port 8081 當請求的url的埠不是8081是跳轉到sch...