shiro註解許可權控制 5個許可權註解

2021-09-12 17:32:24 字數 1977 閱讀 5447

shiro共有5個註解,接下來我們就詳細說說吧

requiresauthentication:
使用該註解標註的類,例項,方法在訪問或呼叫時,當前subject必須在當前session中已經過認證。

requiresguest:
使用該註解標註的類,例項,方法在訪問或呼叫時,當前subject可以是「gust」身份,不需要經過認證或者在原先的session中存在記錄。

requirespermissions:
當前subject需要擁有某些特定的許可權時,才能執行被該註解標註的方法。如果當前subject不具有這樣的許可權,則方法不會被執行。

requiresroles:
當前subject必須擁有所有指定的角色時,才能訪問被該註解標註的方法。如果當天subject不同時擁有所有指定角色,則方法不會執行還會丟擲authorizationexception異常。

requiresuser
當前subject必須是應用的使用者,才能訪問或呼叫被該註解標註的類,例項,方法。

使用方法:

shiro的認證註解處理是有內定的處理順序的,如果有個多個註解的話,前面的通過了會繼續檢查後面的,若不通過則直接返回,處理順序依次為(與實際宣告順序無關):

requiresroles 

requirespermissions

requiresauthentication

requiresuser

requiresguest

例如:你同時宣告了requiresroles和requirespermissions,那就要求擁有此角色的同時還得擁有相應的許可權。

1) requiresroles
可以用在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)

requirespermissions

與 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,requiresguest

這三個的使用方法一樣

@requiresauthentication

@requiresuser

@requiresgusst

shiro註解許可權控制 5個許可權註解

shiro共有5個註解,接下來我們就詳細說說吧 使用方法 shiro的認證註解處理是有內定的處理順序的,如果有個多個註解的話,前面的通過了會繼續檢查後面的,若不通過則直接返回,處理順序依次為 與實際宣告順序無關 requiresroles requirespermissions requiresau...

shiro 的5個許可權註解

shiro共有5個註解,接下來我們就詳細說說吧 使用該註解標註的類,例項,方法在訪問或呼叫時,當前subject必須在當前session中已經過認證。使用該註解標註的類,例項,方法在訪問或呼叫時,當前subject可以是 gust 身份,不需要經過認證或者在原先的session中存在記錄。當前sub...

Shiro方法註解許可權控制

spring配置方式一 在spring mvc.xml檔案中注入 在spring.xml檔案中注入 spring配置方式二 在spring mvc.xml檔案中注入 使用該註解標註的類,例項,方法在訪問或呼叫時,當前subject必須在當前session中已經過認證 使用該註解標註的類,例項,方法在...