shiro 的5個許可權註解

2021-10-22 15:03:57 字數 1780 閱讀 9236

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 表示...