shiro授權 註解式開發

2022-06-13 19:30:14 字數 2640 閱讀 2866

1、shiro授權角色、許可權

2、shiro的註解式開發

1

2select r.roleid from t_shiro_user u,t_shiro_user_role ur,t_shiro_role r

3 where u.userid = ur.userid and ur.roleid =r.roleid

4 and u.userid =#56

7select p.permission from t_shiro_user u,t_shiro_user_role ur,t_shiro_role_permission rp,t_shiro_permission p

8 where u.userid = ur.userid and ur.roleid = rp.roleid and rp.perid =p.perid

9 and u.userid =#

10

shirouserservice

1

/**2

* 查詢角色3*

@param

userid4*

@return5*/

6 setgetrolesbyuserid(integer userid);78

/**9

* 查詢角色許可權

10*

@param

userid

11*

@return

12*/

13 setgetpersbyuserid(integer userid);

service實現類

@override

public setgetrolesbyuserid(integer userid)

@override

public setgetpersbyuserid(integer userid)

重寫自定義realm中的授權方法

1/*2

授權的方法3*/

4@override

5protected

authorizationinfo dogetauthorizationinfo(principalcollection principalcollection)

@requiresuser:表示當前subject已經身份驗證或者通過記住我登入的

@requiresguest:表示當前subject沒有身份驗證或者通過記住我登入過,即是遊客身份

@requiresroles(value = ,logical = logical.and):表示當前subject需要角色admin和user

@requirespermissions(value = ,logical = logical.or):表示當前subject需要許可權user:delete或者user:b

controller層

1

@requiresuser

2@responsebody

4public

string passuser()

89 @requiresroles(value = , logical =logical.or) //value:不同或者多個的角色,logical:value值的拼接方式可以是and或者or

10@responsebody

12public

string passrole()

1617 @requirespermissions(value = , logical =logical.or)

18@responsebody

20public

string passper()

springmvc-servlet.xml

1

class="org.springframework.aop.framework.autoproxy.defaultadvisorautoproxycreator"

2 depends-on="lifecyclebeanpostprocessor">34

5class="org.apache.shiro.spring.security.interceptor.authorizationattributesourceadvisor">67

891012

13unauthorized

1415

1617

18

在main.jsp中新增

1
使用者zs身份認證,未認證。登入即可訪問

使用者ls角色認證,不同角色有不同的訪問許可權,即使zs登入也不可以訪問此頁面

許可權認證結果圖同上,

從**來看

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

@responsebody

public

string passper()

擁有 "user:update","user:create" 這兩個許可權的即可訪問此頁面。從頂部的圖中可以看出那些使用者對應了哪些許可權。

Shiro入門(六)Shiro授權

本章講解shiro授權的相關知識 1.概念 authorization 授權,也就是授予使用者訪問某些資源的許可權。前提在於需要使用者通過登入驗證才可以進行授權。許可權 permit 表示某些功能,如按鈕的顯示,選單的訪問,資料的crud 角色 role 許可權的集合,比如管理員角色,其擁有訪問系統...

shiro下篇授權

先寫個例子看一下 1 在realm中進行授權 1.2使用者請求的這個方法必須要有 quanxian 這個授權,才可以訪問。這裡給予當前登陸使用者 quanxian 這個訪問許可權。加上之後可以測試一下。2 使用shiro的方法註解方式許可權控制 第一步 在spring配置檔案中開啟shiro註解支援...

shiro認證授權

1.shiro配置類 1.1需要配置什麼?建立乙個shirofilte ctorybean物件,檢測認證 向bean中傳入securitymanager物件 沒有認證的時候應該訪問哪個url位址 setloginurl 哪些資源是可以被匿名訪問的 setfilterchaindefinitionma...