Shiro安全框架

2021-10-01 04:26:47 字數 2508 閱讀 2101

shiro是apache旗下乙個開源安全框架,它將軟體系統的安全認證相關的功能抽取出來,實現使用者身份認證,許可權授權、加密、會話管理等功能,組成了乙個通用的安全認證框架。使用shiro就可以非常快速的完成認證、授權等功能的開發,降低系統成本。shiro安全框架

在概念層面,shiro 架構包含三個主要的理念

其中:1)subject :主體物件,負責提交使用者認證和授權資訊。

2)securitymanager:安全管理器,負責認證,授權等業務實現。

3)realm:領域物件,負責從資料層獲取業務資料。

shiro框架進行許可權管理時,要涉及到的一些核心物件,主要包括:認證管理物件,授權管理物件,會話管理物件,快取管理物件,加密管理物件以及realm管理物件(領域物件:負責處理認證和授權領域的資料訪問題)等,如圖

其中:1)subject(主體):與軟體互動的乙個特定的實體(使用者、第三方服務等)。

2)securitymanager(安全管理器) :shiro 的核心,用來協調管理元件工作。

3)authenticator(認證管理器):負責執行認證操作。

4)authorizer(授權管理器):負責授權檢測。

5)sessionmanager(會話管理):負責建立並管理使用者 session 生命週期,提供乙個強有力的 session 體驗。

6)sessiondao:代表 sessionmanager 執行 session 持久(crud)動作,它允許任何儲存的資料掛接到 session 管理基礎上。

7)cachemanager(快取管理器):提供建立快取例項和管理快取生命週期的功能。

8)cryptography(加密管理器):提供了加密方式的設計及管理。

9)realms(領域物件):是shiro和你的應用程式安全資料之間的橋梁。

4.1)新增shiro依賴

實用spring整合shiro時,需要在pom.xml中新增如下依賴:

>

>org.apache.shiro>

>shiro-spring>

>1.4.1>

>

4.2)shiro核心物件配置

@configuration

public class springshiroconfig

/*** 通過此物件設定資源匿名訪問、認證訪問等規則

* @param securitymanager

* @return

*/@bean

public shirofilte***ctorybean shirofilte***ctory (securitymanager securitymanager)

}

4.3)服務端controller實現第一步:在controller中新增乙個呈現登入頁面的方法,關鍵**如下:

public string dologinui()

4.4)service介面及實現

@service

public class shirouserrealm extends authorizingrealm

/*** 通過此方法完成認證資料的獲取及封裝,系統底層會將認證資料傳遞認證管理器,由認證管理器完成認證操作。

*/@override

protected authenticationinfo dogetauthenticationinfo(authenticationtoken token) throws authenticationexception

@override

protected authorizationinfo dogetauthorizationinfo(principalcollection principals)

}

4.5)controller 類實現

@controller

public class pagecontoller

public string dostarterui()

@responsebody

public jsonresult dologin(string username,string password)

}

4.6)非同步登陸操作實現

function dologin()

var url="/dologin";

console.log("params",params);

$.post(url,params,function(result)else

return false;//防止重新整理時重複提交

});}

shiro安全框架

shiro安全框架是目前為止作為登入註冊最常用的框架,因為它十分的強大簡單,提供了認證 授權 加密和會話管理等功能 shiro能做什麼?認證 驗證使用者的身份 授權 對使用者執行訪問控制 判斷使用者是否被允許做某事 會話管理 在任何環境下使用 session api,即使沒有 web 或ejb 容器...

Shiro安全框架

subject sub securityutils.getsubject usernamepasswordtoken token newusernamepasswordtoken username,password sub.login token requiresguest 驗證是否是乙個guest...

安全框架 shiro

安全理論 軟體中安全保護的作用和目的是什麼?讓資源被正確的人正常的訪問。安全防護應該從一下幾個方面 訪問控制 比如 shiro 安全儲存 比如 乙個資料需要加密,比如資料需要備份 安全傳輸 ssl,https 許可權建模 一句話,就是給不同的角色分配不同的許可權。通過給使用者賦予角色的方式,來進行訪...