shiro共有5個註解,接下來我們就詳細說說吧
使用該註解標註的類,例項,方法在訪問或呼叫時,
當前subject必須在當前session中已經過認證。
使用該註解標註的類,例項,方法在訪問或呼叫時,
當前subject可以是「gust」身份,不需要經過認證或者在原先的session中存在記錄。
當前subject需要擁有某些特定的許可權時,才能執行被該註解標註的方法。
如果當前subject不具有這樣的許可權,則方法不會被執行。
當前subject必須擁有所有指定的角色時,才能訪問被該註解標註的方法。
如果當天subject不同時擁有所有指定角色,則方法不會執行還會丟擲authorizationexception異常。
當前subject必須是應用的使用者,才能訪問或呼叫被該註解標註的類,例項,方法。
shiro的認證註解處理是有內定的處理順序的,如果有個多個註解的話,前面的通過了會繼續檢查後面的,若不通過則直接返回,處理順序依次為(與實際宣告順序無關):
requiresroles
requirespermissions
requiresauthentication
requiresuser
requiresguest
例如:你同時宣告了requiresroles和requirespermissions,那就要求擁有此角色的同時還得擁有相應的許可權。
可以用在controller或者方法上。可以多個roles,多個roles時預設邏輯為 and也就是所有具備所有role才能訪問。
@target()
@retention(retentionpolicy.runtime)
public @inte***ce requiresroles
//屬於user角色
@requiresroles("user")
//必須同時屬於user和admin角色
@requiresroles()
//屬於user或者admin之一;修改logical為or 即可
@requiresroles(value=,logical=logical.or)
與 requiresroles類似
@target()
@retention(retentionpolicy.runtime)
public @inte***ce requirespermissions
//符合index:hello許可權要求
@requirespermissions("index:hello")
//必須同時複核index:hello和index:world許可權要求
@requirespermissions()
//符合index:hello或index:world許可權要求即可
@requirespermissions(value=,logical=logical.or)
這三個的使用方法一樣
@requiresauthentication
@requiresuser
@requiresgusst
注:shiro依賴於slf4j,commons-beanutils,commons-logging三個jar包。 shiro註解許可權控制 5個許可權註解
shiro共有5個註解,接下來我們就詳細說說吧 使用方法 shiro的認證註解處理是有內定的處理順序的,如果有個多個註解的話,前面的通過了會繼續檢查後面的,若不通過則直接返回,處理順序依次為 與實際宣告順序無關 requiresroles requirespermissions requiresau...
shiro註解許可權控制 5個許可權註解
shiro共有5個註解,接下來我們就詳細說說吧 requiresauthentication 使用該註解標註的類,例項,方法在訪問或呼叫時,當前subject必須在當前session中已經過認證。requiresguest 使用該註解標註的類,例項,方法在訪問或呼叫時,當前subject可以是 gu...
shiro許可權註解
shiro許可權註解 可以用在controller層對應的方法上 service層對應的方法上 1 requiresauthentication 表示當前subject已經通過login進行了身份驗證 即subject.isauthenticated 返回true。2 requiresuser 表示...