shiro 授權介紹

2022-09-16 00:57:12 字數 1571 閱讀 7615

授權即訪問控制,它將判斷使用者在應用程式中對資源是否擁有相應的訪問許可權。

如,判斷乙個使用者有檢視頁面的許可權,編輯資料的許可權,擁有某一按鈕的許可權,以及是否擁有列印的許可權等等。

一、授權的三要素

授權有著三個核心元素:許可權、角色和使用者。

許可權

許可權是apache shiro安全機制最核心的元素。它在應用程式中明確宣告了被允許的行為和表現。乙個格式良好好的許可權宣告可以清晰表達出使用者對該資源擁有的許可權。

大多數的資源會支援典型的crud操作(create,read,update,delete),但是任何操作建立在特定的資源上才是有意義的。因此,許可權宣告的根本思想就是建立在資源以及操作上。

而我們通過許可權宣告僅僅能了解這個許可權可以在應用程式中做些什麼,而不能確定誰擁有此許可權。

於是,我們就需要在應用程式中對使用者和許可權建立關聯。

通常的做法就是將許可權分配給某個角色,然後將這個角色關聯乙個或多個使用者。

許可權宣告及粒度

shiro許可權宣告通常是使用以冒號分隔的表示式。就像前文所講,乙個許可權表示式可以清晰的指定資源型別,允許的操作,可訪問的資料。同時,shiro許可權表示式支援簡單的萬用字元,可以更加靈活的進行許可權設定。

下面以例項來說明許可權表示式。

可查詢使用者資料

user:view

可查詢或編輯使用者資料

user:view,edit

可對使用者資料進行所有操作

user:* 或 user

可編輯id為123的使用者資料

user:edit:123

角色

shiro支援兩種角色模式:

1、傳統角色:乙個角色代表著一系列的操作,當需要對某一操作進行授權驗證時,只需判斷是否是該角色即可。這種角色許可權相對簡單、模糊,不利於擴充套件。

2、許可權角色:乙個角色擁有乙個許可權的集合。授權驗證時,需要判斷當前角色是否擁有該許可權。這種角色許可權可以對該角色進行詳細的許可權描述,適合更複雜的許可權設計。

下面將詳細描述對兩種角色模式的授權實現。

二、授權實現

shiro支援三種方式實現授權過程:

1、基於編碼的授權實現

1.1基於傳統角色授權實現

當需要驗證使用者是否擁有某個角色時,可以呼叫subject 例項的hasrole*方法驗證。

[j**a]view plain

copy

subject currentuser = securityutils.getsubject();    

if (currentuser.hasrole("administrator"))  else    

[j**a]view plain

copy

subject currentuser = securityutils.getsubject();    

if (currentuser.hasrole("administrator"))  else    

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