摘要:的統一認證授權是下面的一個簡單,易用的權限框架,對于單體應用來講,完全能夠極好的,快速的滿足權限的需求,所以一般在做項目的時候,都會成為開發者的首選。
Shiro的統一認證授權
Shiro是Apache下面的一個簡單,易用的Java權限框架,對于單體應用來講,Shiro完全能夠極好的,快速的滿足權限的需求,所以一般在做項目的時候,Shiro都會成為開發者的首選。
可是,如果你需要做第二個,第三個,第n個應用,同樣需要相同的認證、授權時,可能就需要對Shiro進行一定的擴展或者是集成其它框架,才能很好的滿足你的需求了。
Shiro是如何進行認證授權
Shiro本身并沒有幫你實現認證、授權,但Shiro很好的定義了權限相關的一些概念,讓你完成具體的實現
認證
在Shiro里,完成認證一般是這樣的subject.login(token),Subject代表一個用戶,Token代表一個用戶請求授權時提交的授權信息,通過AuthenticatingRealm.doGetAuthenticationInfo()獲取到當前Subject的一些信息,比如Principals,Credentials,校驗提交的token,如果登錄成功,保存當前登錄用戶
授權
在Shiro里,權限控制一般是這樣的@RequiresPermissions,當用戶訪問受保護資源的時候,Shiro會通過AuthorizingRealm.doGetAuthorizationInfo(),從當前認證通過Subject的Principals里獲取用戶的權限,判斷用戶是否能訪問該資源
在Shiro里,通過實現Realm來完成上面2件事情,當你時單體應用的時候,非常簡單就能完成應用的認證授權。
但是當你有多個應用,需要復用同一套用戶以及權限信息時該怎么做呢,可以復用Realm,用戶權限在同一個db中,這樣的話是可以實現的,但是耦合太高,不同的應用必須要接入同一個數據源才行;或者可以把用戶權限相關的DAO剝離出來,作為RPC或Rest調用,也可以實現;但是更好的方式是把認證授權整個剝離出來,多帶帶作為認證授權服務
基于Shiro的統一認證授權
為了實現統一認證授權,Shiro有CasFilter,可以集成CAS,但是CAS又是另外一套框架,較為重,有多帶帶的學習成本,所以這里介紹一種更簡單,輕量,易用的,基于Shiro的認證授權服務shiro-uaa
認證授權流程
用戶請求受保護資源Resource Server
Resource Server判斷用戶是否已經登錄
如果沒有登錄,Resource Server引導用戶到UAA Server進行登錄
用戶在UAA Server登錄,如果登錄成功,UAA Server返回code給用戶,并引導用戶到之前訪問的Resource Server
Resource Server用code到UAA Server獲取access-token,token包含用戶授權信息
Resource Server驗證accessToken是否合法,如果合法,在Resource Server保存用戶信息
如下圖:
使用
auth-server
引用maven
實現自己的登錄
resource-server
引用maven
和shiro一樣,使用相關注解進行權限控制
基本上開箱即用,目前auth-server只是作為jar包提供,需要自己實現登錄邏輯,后續會有可部署服務
shiro-uaa具體的相關說明介紹可以查看項目地址
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76660.html
摘要:細粒度權限管理就是數據級別的權限管理。張三只能查看行政部的用戶信息,李四只能查看開發部門的用戶信息。比如通過的攔截器實現授權。 前言 本文主要講解的知識點有以下: 權限管理的基礎知識 模型 粗粒度和細粒度的概念 回顧URL攔截的實現 Shiro的介紹與簡單入門 一、Shiro基礎知識 在學習Shiro這個框架之前,首先我們要先了解Shiro需要的基礎知識:權限管理 1.1什...
摘要:框架具有輕便,開源的優點,所以本譯見構建用戶管理微服務五使用令牌和來實現身份驗證往期譯見系列文章在賬號分享中持續連載,敬請查看在往期譯見系列的文章中,我們已經建立了業務邏輯數據訪問層和前端控制器但是忽略了對身份進行驗證。 重拾后端之Spring Boot(四):使用JWT和Spring Security保護REST API 重拾后端之Spring Boot(一):REST API的搭建...
摘要:表示對用戶資源進行操作,相當于,對所有用戶資源實例進行操作。與整合,實際上的操作都是通過過濾器來干的。將安全管理器交由工廠來進行管理。在過濾器鏈中設置靜態資源不攔截。 前言 本文主要講解的知識點有以下: Shiro授權的方式簡單介紹 與Spring整合 初始Shiro過濾器 一、Shiro授權 上一篇我們已經講解了Shiro的認證相關的知識了,現在我們來弄Shiro的授權 Shir...
摘要:為了達到很好的效果,我們使用來對的緩存進行管理配置會話管理器,對會話時間進行控制手動清空緩存由于驗證用戶名和密碼之前,一般需要驗證驗證碼的。 前言 本文主要講解的知識點有以下: Shiro授權過濾器使用 Shiro緩存 與Ehcache整合 Shiro應用->實現驗證碼功能 記住我功能 一、授權過濾器測試 我們的授權過濾器使用的是permissionsAuthorization...
摘要:寫在前面在一款應用的整個生命周期,我們都會談及該應用的數據安全問題。用戶的合法性與數據的可見性是數據安全中非常重要的一部分。 寫在前面 在一款應用的整個生命周期,我們都會談及該應用的數據安全問題。用戶的合法性與數據的可見性是數據安全中非常重要的一部分。但是,一方面,不同的應用對于數據的合法性和可見性要求的維度與粒度都有所區別;另一方面,以當前微服務、多服務的架構方式,如何共享Sessi...
閱讀 2774·2021-11-22 15:11
閱讀 3537·2021-09-28 09:43
閱讀 2889·2019-08-30 13:05
閱讀 3431·2019-08-30 11:18
閱讀 1447·2019-08-29 16:34
閱讀 1300·2019-08-29 13:53
閱讀 2908·2019-08-29 11:03
閱讀 1658·2019-08-29 10:57