shiro是apache旗下乙個開源安全框架(它將軟體系統的安全認證相關的功能抽取出來,實現使用者身份認證,許可權授權、加密、會話管理等功能,組成了乙個通用的安全認證框架。使用shiro就可以非常快速的完成認證、授權等功能的開發,降低系統成本。
使用者資源訪問控制,流程分析:
具體例子的流程圖
在概念層,shiro 架構包含三個主要的理念:subject,securitymanager和 realm。
其中:subject :主體物件,負責提交使用者認證和授權資訊。
securitymanager:安全管理器,負責認證,授權等業務實現。
realm:領域物件,負責從資料層獲取業務資料。
通過shiro框架進行許可權管理時,要涉及到的一些核心物件,主要包括:
認證管理物件,授權管理物件,會話管理物件,快取管理物件,加密管理物件
以及realm管理物件(領域物件:負責處理認證和授權領域的資料訪問題)
subject(主體):與軟體互動的乙個特定的實體(使用者、第三方服務等)。
securitymanager(安全管理器) :shiro 的核心,用來協調管理元件工作。
authenticator(認證管理器):負責執行認證操作
authorizer(授權管理器):負責授權檢測
sessionmanager(會話管理):負責建立並管理使用者 session 生命週期,提供乙個強有力的 session 體驗。
sessiondao:代表 sessionmanager 執行 session 持久(crud)動作,它允許任何儲存的資料掛接到 session 管理基礎上。
cachemanager(快取管理器):提供建立快取例項和管理快取生命週期的功能
cryptography(加密管理器):提供了加密方式的設計及管理。
realms(領域物件):是shiro和你的應用程式安全資料之間的橋梁。
新增shiro依賴
使用spring整合shiro時,需要在pom.xml中新增如下依賴:
org.apache.shiro<
/groupid>
shiro-spring<
/artifactid>
1.5.3
<
/version>
<
/dependency>
shiro核心物件配置基於springboot 實現的專案中,沒有提供shiro的自動化配置,需要我們自己配置。
第一步:建立springshiroconfig類。關鍵**如下:
package com.cy.pj.common.config;
/**@configuration 註解描述的類為乙個配置物件,
* 此物件也會交給spring管理
*/@configuration
public
class
springshiroconfig
第二步:在shiro配置類中新增securitymanager配置(這裡一定要使用org.apache.shiro.mgt.securitymanager這個介面物件),關鍵**如下:、
/**
* 配置securitymanager(注意包名),此物件使用者實現使用者身份認證和授權等功能,是shiro框架的核心
* @bean註解一般要結合@configuration註解使用,用於描述方法,表示這個方法的返回值要交給spring管理
* key預設為方法名或者直接由@bean註解指定
*/@bean
//@bean("securitmanager")
//@scope("singleton") 預設為單例
public securitymanager securitymanager()
第三步: 在shiro配置類中新增shirofilte***ctorybean物件的配置。通過此物件設定資源匿名訪問、認證訪問。關鍵**如下:
shiro安全框架
shiro安全框架是目前為止作為登入註冊最常用的框架,因為它十分的強大簡單,提供了認證 授權 加密和會話管理等功能 shiro能做什麼?認證 驗證使用者的身份 授權 對使用者執行訪問控制 判斷使用者是否被允許做某事 會話管理 在任何環境下使用 session api,即使沒有 web 或ejb 容器...
Shiro安全框架
subject sub securityutils.getsubject usernamepasswordtoken token newusernamepasswordtoken username,password sub.login token requiresguest 驗證是否是乙個guest...
Shiro安全框架
shiro是apache旗下乙個開源安全框架,它將軟體系統的安全認證相關的功能抽取出來,實現使用者身份認證,許可權授權 加密 會話管理等功能,組成了乙個通用的安全認證框架。使用shiro就可以非常快速的完成認證 授權等功能的開發,降低系統成本。shiro安全框架 在概念層面,shiro 架構包含三個...