摘要:我認為無論是也好,還是其他安全框架也好,其功能主要就分為三部分認證授權(quán)加密。的認證授權(quán)管理,都需要由負責(zé)。構(gòu)建環(huán)境主體提交認證請求認證創(chuàng)建環(huán)境,我們這里使用的是。最后我們使用進行認證。認證我們先說這么多,下節(jié)我們來說說的簡單授權(quán)。
時隔這么久終于有時間更新了,今天和大家分享一下Shiro的原理。我認為無論是Shiro也好,還是其他安全框架也好,其功能主要就分為三部分:認證、授權(quán)、加密。下面我們來詳細說明Shiro具體是如何實現(xiàn)的。Shiro結(jié)構(gòu)圖
講原理當然離不開結(jié)構(gòu)圖,我們先來看一下Shiro的整體結(jié)構(gòu)。
由Shiro的結(jié)構(gòu)圖我們可以看出Shiro的核心就是Security Manager。Shiro的認證、授權(quán)、Session管理,都需要由Security Manager負責(zé)。
Shiro認證下面我們用一個小例子來了解一下Shiro 的簡單用法。
public class HelloShiro { SimpleAccountRealm realm = new SimpleAccountRealm(); @Before public void addUser() { realm.addAccount("Mark", "123456"); } @Test public void testSimlpeRealm() { // 1.構(gòu)建securityManager環(huán)境 DefaultSecurityManager securityManager = new DefaultSecurityManager(); securityManager.setRealm(realm); // 2.主體提交認證請求 SecurityUtils.setSecurityManager(securityManager); Subject subject = SecurityUtils.getSubject(); AuthenticationToken token = new UsernamePasswordToken("Mark", "123456"); // 3. 認證 subject.login(token); System.out.println(subject.isAuthenticated()); } }
創(chuàng)建securityManager環(huán)境,我們這里使用的是DefaultSecurityManager。
設(shè)置Realm,Realm主要主要負責(zé)Subject的認證和授權(quán)。其中最重要的兩個方法是doGetAuthenticationInfo和doGetAuthorizationInfo,這也是我們整個權(quán)限管理的最重要的一部分,由于這里我們只是一個入門程序,我們就使用Shiro定義好的SimpleAccountRealm作為演示,后面我們還會說到JdbcRealm和自定義Realm。
通過SecurityUtils設(shè)置securityManager和獲取subject;
創(chuàng)建需要認證的token信息,這是我們自己創(chuàng)建一個UsernamePasswordToken來模擬獲取用戶從前臺登陸的賬號密碼。
最后我們使用subject.login(token);進行認證。若tonken中的賬號密碼和我們addUser()添加的相同則測試通過,否則則會拋出異常。
Shiro認證我們先說這么多,下節(jié)我們來說說Shiro的簡單授權(quán)。如果大家有好的意見和建議請在評論區(qū)留言,謝謝大家。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/69170.html
摘要:為了達到很好的效果,我們使用來對的緩存進行管理配置會話管理器,對會話時間進行控制手動清空緩存由于驗證用戶名和密碼之前,一般需要驗證驗證碼的。 前言 本文主要講解的知識點有以下: Shiro授權(quán)過濾器使用 Shiro緩存 與Ehcache整合 Shiro應(yīng)用->實現(xiàn)驗證碼功能 記住我功能 一、授權(quán)過濾器測試 我們的授權(quán)過濾器使用的是permissionsAuthorization...
摘要:細粒度權(quán)限管理就是數(shù)據(jù)級別的權(quán)限管理。張三只能查看行政部的用戶信息,李四只能查看開發(fā)部門的用戶信息。比如通過的攔截器實現(xiàn)授權(quán)。 前言 本文主要講解的知識點有以下: 權(quán)限管理的基礎(chǔ)知識 模型 粗粒度和細粒度的概念 回顧URL攔截的實現(xiàn) Shiro的介紹與簡單入門 一、Shiro基礎(chǔ)知識 在學(xué)習(xí)Shiro這個框架之前,首先我們要先了解Shiro需要的基礎(chǔ)知識:權(quán)限管理 1.1什...
摘要:表示對用戶資源進行操作,相當于,對所有用戶資源實例進行操作。與整合,實際上的操作都是通過過濾器來干的。將安全管理器交由工廠來進行管理。在過濾器鏈中設(shè)置靜態(tài)資源不攔截。 前言 本文主要講解的知識點有以下: Shiro授權(quán)的方式簡單介紹 與Spring整合 初始Shiro過濾器 一、Shiro授權(quán) 上一篇我們已經(jīng)講解了Shiro的認證相關(guān)的知識了,現(xiàn)在我們來弄Shiro的授權(quán) Shir...
摘要:框架具有輕便,開源的優(yōu)點,所以本譯見構(gòu)建用戶管理微服務(wù)五使用令牌和來實現(xiàn)身份驗證往期譯見系列文章在賬號分享中持續(xù)連載,敬請查看在往期譯見系列的文章中,我們已經(jīng)建立了業(yè)務(wù)邏輯數(shù)據(jù)訪問層和前端控制器但是忽略了對身份進行驗證。 重拾后端之Spring Boot(四):使用JWT和Spring Security保護REST API 重拾后端之Spring Boot(一):REST API的搭建...
摘要:框架提供的接口,是的核心,代表安全管理器對象??梢蚤_發(fā)人員編寫,框架也提供一些。在中作為應(yīng)用程序和安全數(shù)據(jù)之間的橋梁或連接器。例如要求中必須同時含有和的權(quán)限才能執(zhí)行方法?!pache shiro框架簡介 Apache Shiro是一個強大而靈活的開源安全框架,它能夠干凈利落地處理身份認證,授權(quán),企業(yè)會話管理和加密?,F(xiàn)在,使用Apache Shiro的人越來越多,因為它相當簡單,相比比Sp...
閱讀 1644·2023-04-26 01:54
閱讀 1659·2021-09-30 09:55
閱讀 2682·2021-09-22 16:05
閱讀 1898·2021-07-25 21:37
閱讀 2655·2019-08-29 18:45
閱讀 1920·2019-08-29 16:44
閱讀 1911·2019-08-29 12:34
閱讀 1383·2019-08-23 14:02