国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Shiro實(shí)戰(zhàn)(一) Shiro核心概念

mdluo / 1790人閱讀

摘要:是什么是功能強(qiáng)大簡(jiǎn)單易用的安全框架,核心功能包括認(rèn)證授權(quán)加密以及管理。的主要作用就是用來(lái)執(zhí)行認(rèn)證和授權(quán)的邏輯,它其實(shí)就相當(dāng)于與安全數(shù)據(jù)用戶賬號(hào)密碼角色權(quán)限之間進(jìn)行交互的橋梁。至此,的三個(gè)核心概念已經(jīng)介紹完畢。

1、Shiro是什么

Shiro是功能強(qiáng)大、簡(jiǎn)單易用的Java安全框架,核心功能包括:認(rèn)證、授權(quán)、加密以及Session管理。Shiro的應(yīng)用范圍很廣泛,小型移動(dòng)端應(yīng)用、大型Web應(yīng)用以及企業(yè)級(jí)應(yīng)用都能夠勝任。

2、Shiro的核心概念

Subject 主題

剛開始看到這個(gè)詞時(shí)確實(shí)有點(diǎn)摸不著頭腦,但是我們可以將其簡(jiǎn)單理解為‘the current user",當(dāng)前正在執(zhí)行操作的用戶,這樣就好理解多啦!? ?
那怎么樣才能獲取Subject呢?這個(gè)Subject又能夠做什么呢?下面我們通過(guò)一段代碼來(lái)了解下

// 獲取Subject
Subject currentUser = SecurityUtils.getSubject();

SecurityManager

SecurityManager是Shiro架構(gòu)的核心,也是前面我們介紹的Subject的幕后英雄,通過(guò)對(duì)象的名稱我們也能大體猜到SecurtiyManager的作用,那就是管理應(yīng)用中的所有用戶的安全操作。?

一般來(lái)說(shuō),一個(gè)應(yīng)用只會(huì)存在一個(gè)SecurityManager實(shí)例,也就是屬于應(yīng)用層面的Sigleton。那么我們?nèi)绾潍@取到SecurityManager對(duì)象呢?下面通過(guò)簡(jiǎn)單的Java應(yīng)用來(lái)介紹如何獲取SecurityManager

首先,我們創(chuàng)建一個(gè)maven項(xiàng)目quick-start,在resources目錄下新建一個(gè)INI配置文件(為什么是INI配置文件,不是XML或者properties文件呢?Shiro默認(rèn)是基于INI配置文件的,而且Shiro團(tuán)隊(duì)認(rèn)為INI配置文件相比較XML更宜讀,使用起來(lái)更簡(jiǎn)單,需要的依賴也更少),然后創(chuàng)建一個(gè)QuickStart.java
INI配置文件內(nèi)容如下:

#用戶名以及該用戶對(duì)應(yīng)的密碼以及角色
#username = password, role1, role2..., roleN
[users]
rivers = secret, admin
calabash = warrior, guest
#角色以及該角色可以擁有的權(quán)限
#rolename = permission1, permission2..., permissionN
[roles]
admin = UserManagerment:*
guest = UserManagerment:getUserInfo

QuickStart部分代碼如下:

Factory factory = new IniSecurityManagerFactory("classpath:shiro.ini");
SecurityManager manager = factory.getInstance();
SecurityUtils.setSecurityManager(manager);

通過(guò)上面代碼我們看到,首先加載INI配置文件,然后利用工廠模式得到SecurityManager對(duì)象。

Realms
Realm的主要作用就是用來(lái)執(zhí)行認(rèn)證和授權(quán)的邏輯,它其實(shí)就相當(dāng)于Shiro與安全數(shù)據(jù)(用戶賬號(hào)密碼角色權(quán)限)之間進(jìn)行交互的橋梁。當(dāng)配置Shiro時(shí),我們必須配置至少一個(gè)Realm來(lái)進(jìn)行認(rèn)證和授權(quán),當(dāng)然你也可以配置多個(gè),這也就是為什么我們這個(gè)小節(jié)的標(biāo)題是Realms,而不是Realm的原因。

但是在上面的示例代碼中,我們并沒(méi)有配置Realm呀!只是在INI配置文件中,配置了部分用戶以及該用戶對(duì)應(yīng)的角色和權(quán)限信息,那應(yīng)用豈不是會(huì)存在問(wèn)題?Debug發(fā)現(xiàn),我們上面代碼拿到的SecurityManager對(duì)象其實(shí)已經(jīng)存在Realm對(duì)象,內(nèi)容正好是我們INI配置文件中的內(nèi)容。

通過(guò)上面的圖片我們可以看到,Shiro默認(rèn)給我們的SecurityManager其實(shí)是DefaultSecurityManager,由于我們?cè)贗NI配置文件中配置了[users]與[roles],Shiro在初始化SecurityManager時(shí)自動(dòng)初始IniRealm對(duì)象,并將配置中的[users]與[roles]的值加載進(jìn)IniRealm對(duì)象中。

至此,Shiro的三個(gè)核心概念已經(jīng)介紹完畢。代碼示例下載地址shiro-study

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/67447.html

相關(guān)文章

  • Shiro實(shí)戰(zhàn)(二)Shiro認(rèn)證原理

    摘要:認(rèn)證原理與認(rèn)證就是進(jìn)行身份確認(rèn)的過(guò)程,也就是用戶對(duì)應(yīng)中的需要提供證明來(lái)證實(shí)自己的身份。是的頂級(jí)抽象實(shí)現(xiàn)類,主要用于處理認(rèn)證操作,至于授權(quán)等操作則交由該類的子類去處理。至此,認(rèn)證的整體過(guò)程與底層邏輯已經(jīng)全部介紹完畢。 在上篇Shiro核心概念中,我們介紹了Shiro的三大核心概念:Subject、SecurityManager、Realms,并通過(guò)示例代碼QuickStart展示常用的認(rèn)...

    Channe 評(píng)論0 收藏0
  • Shiro實(shí)戰(zhàn)(三)Shiro授權(quán)(上)

    摘要:授權(quán)三大要素是安全框架中最原子性的元素,它用來(lái)描述能夠做什么或者說(shuō)能夠執(zhí)行什么樣的操作,比如刪除用戶查看用戶詳情查看商品詳情等。用戶就是我們之前提到的三大核心概念之一的。 在上篇Shiro認(rèn)證原理的最后,我們介紹了IniRealm是如何進(jìn)行認(rèn)證,本篇我們將介紹Shiro授權(quán)過(guò)程中的幾個(gè)概念以及Shiro編程式的授權(quán)操作,并通過(guò)常用的用戶、角色、權(quán)限授權(quán)模式來(lái)加深理解授權(quán)的過(guò)程。 1 授...

    sushi 評(píng)論0 收藏0
  • Apache Shiro 簡(jiǎn)介

    摘要:的很容易反映出常見的工作流程。權(quán)限檢查是執(zhí)行授權(quán)的另一種方式。在安全框架領(lǐng)域提供了一些獨(dú)特的東西一致的會(huì)話,可用于任何應(yīng)用程序和任何架構(gòu)層。 Apache Shiro?是一個(gè)功能強(qiáng)大且易于使用的Java安全框架,可執(zhí)行身份驗(yàn)證,授權(quán),加密和會(huì)話管理。借助Shiro易于理解的API,可以快速輕松地保護(hù)任何應(yīng)用程序 - 從最小的移動(dòng)應(yīng)用程序到最大的Web和企業(yè)應(yīng)用程序。 1. Apache S...

    econi 評(píng)論0 收藏0
  • 不用 Spring Security 可否?試試這個(gè)小而美的安全框架

    摘要:寫在前面在一款應(yīng)用的整個(gè)生命周期,我們都會(huì)談及該應(yīng)用的數(shù)據(jù)安全問(wèn)題。用戶的合法性與數(shù)據(jù)的可見性是數(shù)據(jù)安全中非常重要的一部分。 寫在前面 在一款應(yīng)用的整個(gè)生命周期,我們都會(huì)談及該應(yīng)用的數(shù)據(jù)安全問(wèn)題。用戶的合法性與數(shù)據(jù)的可見性是數(shù)據(jù)安全中非常重要的一部分。但是,一方面,不同的應(yīng)用對(duì)于數(shù)據(jù)的合法性和可見性要求的維度與粒度都有所區(qū)別;另一方面,以當(dāng)前微服務(wù)、多服務(wù)的架構(gòu)方式,如何共享Sessi...

    toddmark 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<