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

資訊專欄INFORMATION COLUMN

Shiro實戰(一) Shiro核心概念

mdluo / 1789人閱讀

摘要:是什么是功能強大簡單易用的安全框架,核心功能包括認證授權加密以及管理。的主要作用就是用來執行認證和授權的邏輯,它其實就相當于與安全數據用戶賬號密碼角色權限之間進行交互的橋梁。至此,的三個核心概念已經介紹完畢。

1、Shiro是什么

Shiro是功能強大、簡單易用的Java安全框架,核心功能包括:認證、授權、加密以及Session管理。Shiro的應用范圍很廣泛,小型移動端應用、大型Web應用以及企業級應用都能夠勝任。

2、Shiro的核心概念

Subject 主題

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

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

SecurityManager

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

一般來說,一個應用只會存在一個SecurityManager實例,也就是屬于應用層面的Sigleton。那么我們如何獲取到SecurityManager對象呢?下面通過簡單的Java應用來介紹如何獲取SecurityManager

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

#用戶名以及該用戶對應的密碼以及角色
#username = password, role1, role2..., roleN
[users]
rivers = secret, admin
calabash = warrior, guest
#角色以及該角色可以擁有的權限
#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);

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

Realms
Realm的主要作用就是用來執行認證和授權的邏輯,它其實就相當于Shiro與安全數據(用戶賬號密碼角色權限)之間進行交互的橋梁。當配置Shiro時,我們必須配置至少一個Realm來進行認證和授權,當然你也可以配置多個,這也就是為什么我們這個小節的標題是Realms,而不是Realm的原因。

但是在上面的示例代碼中,我們并沒有配置Realm呀!只是在INI配置文件中,配置了部分用戶以及該用戶對應的角色和權限信息,那應用豈不是會存在問題?Debug發現,我們上面代碼拿到的SecurityManager對象其實已經存在Realm對象,內容正好是我們INI配置文件中的內容。

通過上面的圖片我們可以看到,Shiro默認給我們的SecurityManager其實是DefaultSecurityManager,由于我們在INI配置文件中配置了[users]與[roles],Shiro在初始化SecurityManager時自動初始IniRealm對象,并將配置中的[users]與[roles]的值加載進IniRealm對象中。

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67447.html

相關文章

  • Shiro實戰(二)Shiro認證原理

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

    Channe 評論0 收藏0
  • Shiro實戰(三)Shiro授權(上)

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

    sushi 評論0 收藏0
  • Apache Shiro 簡介

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

    econi 評論0 收藏0
  • 不用 Spring Security 可否?試試這個小而美的安全框架

    摘要:寫在前面在一款應用的整個生命周期,我們都會談及該應用的數據安全問題。用戶的合法性與數據的可見性是數據安全中非常重要的一部分。 寫在前面 在一款應用的整個生命周期,我們都會談及該應用的數據安全問題。用戶的合法性與數據的可見性是數據安全中非常重要的一部分。但是,一方面,不同的應用對于數據的合法性和可見性要求的維度與粒度都有所區別;另一方面,以當前微服務、多服務的架構方式,如何共享Sessi...

    toddmark 評論0 收藏0

發表評論

0條評論

mdluo

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<