shiro註解使用

2021-08-09 21:42:07 字數 2545 閱讀 9742

@

requiresauthentication

驗證使用者是否登入,等同於方法

subject.isauthenticated

()結果為

true時。

@

requiresuser

驗證使用者是否被記憶,

user

有兩種含義:

一種是成功登入的(

subject.isauthenticated

()結果為

true);

另外一種是被記憶的(

subject.isremembered

()結果為

true)。

@

requiresguest

驗證是否是乙個

guest

的請求,與

@requiresuser

完全相反。

換言之,

requiresuser

== !

requiresguest。

此時subject.getprincipal

() 結果為

null.

@

requiresroles

例如:@

requiresroles

("arolename

");

void somemethod

();

如果subject

中有arolename

角色才可以訪問方法

somemethod

。如果沒有這個許可權則會丟擲異常

authorizationexception。

@

requirespermissions

例如:@

requirespermissions

( )void somemethod

();

要求subject

中必須同時含有

file:read

和write:afile.txt

的許可權才能執行方法

somemethod

()。否則丟擲異常

authorizationexception。

使用方法:

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

requiresroles

requirespermissions

requiresauthentication

requiresuser

requiresguest

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

1) requiresroles

@target()

@retention(retentionpolicy.runtime)

public @inte***ce requiresroles

//屬於user角色

@requiresroles("user")

//必須同時屬於user和admin角色

@requiresroles()

//屬於user或者admin之一;修改logical為or 即可

@requiresroles(value=,logical=logical.or)

2) requirespermissions

@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)

3) requiresauthentication,requiresuser,requiresguest

@requiresauthentication

@requiresuser

@requiresgusst

注:shiro依賴於slf4j,commons-beanutils,commons-logging三個jar包。

shiro註解的使用

使用spring springmvc mybatis shiro開發許可權管理的demo 1.表的建立 permission 許可權表 role 角色表 user 使用者表 role permission 角色許可權表 user role 使用者角色表 獲取許可權的步驟 使用者id 角色id 角色名...

shiro許可權註解

shiro許可權註解 可以用在controller層對應的方法上 service層對應的方法上 1 requiresauthentication 表示當前subject已經通過login進行了身份驗證 即subject.isauthenticated 返回true。2 requiresuser 表示...

Shiro許可權註解

shiro許可權註解 可以用在controller層對應的方法上 service層對應的方法上 1 requiresauthentication 表示當前subject已經通過login進行了身份驗證 即subject.isauthenticated 返回true。2 requiresuser 表示...