shiro權限管理

1、權限管理

一、權限管理的關鍵對象

subject:主體,理解爲用戶,多是程序,都要去訪問系統的資源,系統須要對subject進行身份認證。web

principal:身份信息,一般是惟一的,一個主體還有多個身份信息,可是都有一個主身份信息(primary principal)redis

credential:憑證信息,能夠是密碼 、證書、指紋。算法

注意:主體在進行身份認證時須要提供身份信息和憑證信息。緩存

二、權限模型

主體(帳號、密碼)安全

資源(資源名稱、訪問地址)session

權限(權限名稱、資源id)架構

角色(角色名稱)加密

角色和權限關係(角色id、權限id)spa

主體和角色關係(主體id、角色id)對象

以下圖:

一般企業開發中將資源和權限表合併爲一張權限表,以下:

資源(資源名稱、訪問地址)

權限(權限名稱、資源id)

合併爲:

權限(權限名稱、資源名稱、資源訪問地址)

2、shiro

一、shiro架構

subject:主體,能夠是用戶也能夠是程序,主體要訪問系統,系統須要對主體進行認證、受權。

securityManager:安全管理器,主體進行認證和受權都是經過securityManager進行。

authenticator:認證器,主體進行認證最終經過authenticator進行的。

authorizer:受權器,主體進行受權最終經過authorizer進行的。

sessionManager:web應用中通常是用web容器對session進行管理,shiro也提供一套session管理的方式。

sessionDao:  經過SessionDao管理session數據,針對個性化的session數據存儲須要使用sessionDao。

cacheManager:緩存管理器,主要對session和受權數據進行緩存,好比將受權數據經過cacheManager進行緩存管理,和ehcache、redis等整合對緩存數據進行管理。

realm:域,領域,至關於數據源,經過realm存取認證、受權相關數據。

cryptography:密碼管理,提供了一套加密/解密的組件,方便開發。好比經常使用的散列(md5散列算法)、加/解密等功能。

注意:在realm中存儲受權和認證的邏輯。

二、shiro認證流程

相關文章
相關標籤/搜索