許可權管理以及shiro的簡述(個人理解)

2021-08-07 07:34:49 字數 1399 閱讀 4061

許可權管理簡要設計(資料庫表):

許可權表:存貯各種許可權(url);

使用者表:屬於某個組;

組(角色):組中根據需求擁有各種許可權(角色表與組表性質類似)。

表關係:組和許可權表(多對多),組和使用者表(多對多)。(這裡的關係要根據實際需求來做決定,不是固定的)

許可權表可以通過其他方式進行表示,這裡寫許可權表是為了方便理解

在使用者登陸系統時,會進行許可權的認證,一般通過過濾器進行處理。

首先需要構建realm物件,這個物件包含著從資料庫或者是快取裡面讀取出來的登陸資訊以及許可權資訊。這個物件確認以後,我們來建立securitymanager物件,並將realm物件傳遞給securitymanager物件。然後通過securityutils工具類將securitymanager設定進去,並通過它獲取subject物件。接著,來建立token物件,token物件用於儲存頁面傳遞來的登入資訊。最後通過subject.login()方法將token傳遞進去進行登陸認證。如果沒有異常,登陸成功。

realm:shiro框架提供了兩個realm,inirealm和jdbcrealm。分別是通過配置檔案和資料來讀取資訊。這兩種方式並不適用於真正的專案。我們需要自定義realm,自定義realm需要繼承authorizingrealm。繼承這個類以後需要去實現他的兩個方法:dogetauthorizationinfo()這個方法用於認證使用者角色和許可權,dogetauthenticationinfo()這個方法用於認證使用者密碼。

spring整合shiro:需要將securitymanager交給spring去管理(deafultwebsecuritymanager)。以及hashedcredentialsmatcher交給spring進行管理。還需要將filter交給spring管理(shirofilte***ctorybean)。還需要將filter配置到web.xml中。

spring配置檔案需要配置如下bean:

/ = anon

/login = anon

/test = authc

mvc需要做的配置:

這段配置一定寫在mvc的配置檔案中,否則shiro註解無效

以下為shiro需要的jar包

org.apache.shiro

shiro-core

1.2.3

org.apache.shiro

shiro-ehcache

1.2.3

org.apache.shiro

shiro-web

1.2.3

org.apache.shiro

shiro-spring

1.2.3

Shiro許可權管理

shiro許可權管理 一.許可權管理的四張核心的表關係 使用者表使用者 角色 關係表 角色表角色 許可權 關係表 許可權表角色 選單 關係表 選單表二.許可權的控制項 粗粒度配置檔案配置 細粒度通過註解實現 三.了解認證和授權的流程 前端發起登入請求 訪問shiro的subject subject....

Shiro許可權管理

1.sql語句許可權表 create table role id int not null auto increment comment id name varchar 20 not null comment 角色名稱 description varchar 200 comment 描述 prima...

Shiro許可權管理(二) 認證

時隔這麼久終於有時間更新了,今天和大家分享一下shiro的原理。我認為無論是shiro也好,還是其他安全框架也好,其功能主要就分為三部分 認證 授權 加密。下面我們來詳細說明shiro具體是如何實現的。講原理當然離不開結構圖,我們先來看一下shiro的整體結構。由shiro的結構圖我們可以看出shi...