@
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例如:你同時宣告了requiresroles和requirespermissions,那就要求擁有此角色的同時還得擁有相應的許可權。requirespermissions
requiresauthentication
requiresuser
requiresguest
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 表示...