五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Apache Shiro-Java安全框架

2021-02-07 17:37 作者:光耀三十洲  | 我要投稿

主要內(nèi)容

  1. Shiro簡介

  2. Shiro架構(gòu)原理

  3. INI文件介紹

  4. Shiro環(huán)境搭建及認(rèn)證過程

  5. 第一個Shiro演示

  6. 授權(quán)

  7. 加密及憑證匹配器

  8. 自定義Realm

  9. 憑證匹配器

  10. Spring Boot整合Shiro實現(xiàn)登錄認(rèn)證


一、Shiro 簡介

1、概述

權(quán)限體系在現(xiàn)代軟件應(yīng)用中有著非常重要的地位。一個應(yīng)用如果沒有權(quán)限體系都會顯著這個系統(tǒng)“特別不安全”,無論是傳統(tǒng)的MIS系統(tǒng)還是互聯(lián)網(wǎng)項目出于對業(yè)務(wù)數(shù)據(jù)和應(yīng)用自身的安全,都會設(shè)置自己的安全策略。

目前市場上專門的Java權(quán)限框架有Apache Shiro 和 Spring Security。相較于Spring Security 來說 Shiro更加老牌,所以就先講解Shiro,在后面的階段中講解Spring Security。學(xué)習(xí)好Shiro對于以后市場上在出現(xiàn)新型權(quán)限框架的學(xué)習(xí)能帶來很大便利。因為權(quán)限的概念是不變的,變得是框架的實現(xiàn)方式。當(dāng)然了,對于第一次學(xué)習(xí)權(quán)限框架的人來說,相較于權(quán)限框架的應(yīng)用,更難的就是權(quán)限方面的概念。

2、Shiro官方解釋

中文:Apache Shiro是一個強大的并且簡單使用的java權(quán)限框架.主要應(yīng)用認(rèn)證(Authentication),授權(quán)(Authorization),cryptography(加密),和Session Manager.Shiro具有簡單易懂的API,使用Shiro可以快速并且簡單的應(yīng)用到任何應(yīng)用中,無論是從最小的移動app到最大的企業(yè)級web應(yīng)用都可以使用。

3、核心功能

在Shiro官網(wǎng)首頁上占用了很大的篇幅說明了Shiro的核心功能。

Authentication?認(rèn)證。如用戶的登錄。

Authorization?授權(quán)。用戶是否有權(quán)限訪問指定URL等。

Cryptography?密碼學(xué)。如密碼的加密。

Session Management?Session 管理。

Web Integration?Web集成。Shiro不依賴于容器。

二、Shiro 架構(gòu)原理

(必須會。Shiro學(xué)習(xí)的重中之重。)

1、第一行

第一行中示例出了一些語言。無論是什么語言都需要包含Subject

2、Subject

主體。每個用戶登錄成功后都會對應(yīng)一個Subject對象,所有用戶信息都存放在Subject中??梢岳斫猓篠ubject就是Shiro提供的用戶實體類。

3、Security Manager

Shiro最大的容器,此容器中包含了Shiro的絕大多數(shù)功能。在非Spring Boot項目中,獲取Security Manager 是編寫代碼的第一步。而在Spring Boot中已經(jīng)幫助我們自動化配置了。

4、Authenticator

認(rèn)證器。執(zhí)行認(rèn)證過程調(diào)用的組件。里面包含了認(rèn)證策略。

5、Authorizer

授權(quán)器。執(zhí)行授權(quán)時調(diào)用的組件。

6、Session Manager

Shiro被Web集成后,HttpSession對象會由Shiro的Session Manager進(jìn)行管理。

7、Cache Manager

緩存管理。Shiro執(zhí)行很多第三方緩存技術(shù)。例如:EHCache等。

8、Session DAO

操作Session內(nèi)容的組件。

9、Realms

Shiro框架實現(xiàn)權(quán)限控制不依賴于數(shù)據(jù)庫,通過內(nèi)置數(shù)據(jù)也可以實現(xiàn)權(quán)限控制。但是目前絕大多數(shù)應(yīng)用的數(shù)據(jù)都存儲在數(shù)據(jù)庫中,所以Shiro提供了Realms組件,此組件的作用就是訪問數(shù)據(jù)庫。Shiro內(nèi)置的訪問數(shù)據(jù)庫的代碼,通過簡單配置就可以訪問數(shù)據(jù)庫,也可以自定義Realms實現(xiàn)訪問數(shù)據(jù)庫邏輯(絕大多數(shù)都這么做)

三、INI文件介紹

INI英文名稱(InitializationFile)

INI文件是Window系統(tǒng)配置文件的擴展名.

Shiro的全局配置文件就是.ini文件,ini中數(shù)據(jù)都是固定數(shù)據(jù),后面會用數(shù)據(jù)庫中數(shù)據(jù)替代下面users和roles(固定數(shù)據(jù)部分)

.ini文件內(nèi)容的語法和.properties類似都是key=value,value格式.

INI文件中包含了四個部分:

1、[main] 主體部分.

這部分配置類對象,或設(shè)置屬性等操作.

內(nèi)置了根對象:securityManager,注意對象名大小寫。

4、[urls]

定義哪個控制器被哪個過濾器過濾.Shiro內(nèi)置很多過濾器。此部分主要在WEB應(yīng)用中使用。

下圖是官網(wǎng)上提供的Shiro內(nèi)置Filter及名稱。

anon:不認(rèn)證也可以訪問。例如:/admin/**=anon /login=anon

authc:必須認(rèn)證。 /**=authc ---所有的資源都認(rèn)證

authcBasic:沒有參數(shù)時表示httpBasic認(rèn)證(客戶端認(rèn)證方式)。

logout:退出。

noSessionCreation:新增Filter,表示沒有Session創(chuàng)建。

perms:判斷是有具有指定權(quán)限。例如:/admin/user/**=perms[“per1”,”per2”]。必須同時具有給定權(quán)限才可以訪問。如果只有一個權(quán)限可以省略雙引號。

port:限制端口。例如:/admin/**=port[8081]。只要請求不是8081端口就重新發(fā)送URL到8081端口。

rest:請求方式和權(quán)限的簡便寫法。例如:/admin/**=rest[user],相當(dāng)于/admin/** = perms[user:方式],方式是http請求的方式:post、get等。

roles:判斷是否具有指定角色。/admin/**=roles[role1]

ssl:表示是安全的請求。協(xié)議為https

user:表示必須存在用戶。


作為IT人,我們也在不斷地要求自己,為學(xué)員做出更多更好的視頻課程;這次的課程我們集合了2020年所有新型的前端技術(shù),整理出了適合廣大學(xué)員學(xué)習(xí)的web前端課程,與以往相比,內(nèi)容更加豐富,極力保證學(xué)員所學(xué)技術(shù)緊跟時代步伐!



Apache Shiro-Java安全框架的評論 (共 條)

分享到微博請遵守國家法律
宁都县| 马鞍山市| 丁青县| 肃宁县| 喀喇| 称多县| 平塘县| 双峰县| 怀来县| 邢台市| 揭东县| 通化市| 延庆县| 延安市| 柞水县| 镇远县| 清镇市| 广元市| 汤阴县| 石狮市| 通城县| 绥中县| 南华县| 平度市| 伊川县| 塘沽区| 南部县| 克东县| 清水河县| 当雄县| 光山县| 文化| 资兴市| 方山县| 勐海县| 礼泉县| 庆安县| 襄垣县| 威海市| 甘孜县| 通州区|