SHIRO工作流程及原理及在Spring中整合
1.最近接觸了Shiro這一安全的框架:
這可以幫我們完成:認證、授權、加密、會話管理、與Web整合、快取等。
Shiro可以基本功能分為如下:
Authentication:身份認證/登入,驗證使用者是不是擁有相應的身份;
Authorization:授權,即許可權驗證,驗證某個已認證的使用者是否擁有某個許可權;即判斷使用者是否能做事情,常見的如:驗證某個使用者是否擁有某個角色。或者細粒度的驗證某個使用者對某個資源是否具有某個許可權;
Session Manager:會話管理,即使用者登入後就是一次會話,在沒有退出之前,它的所有資訊都在會話中;會話可以是普通JavaSE環境的,也可以是如Web環境的;
Cryptography:
**Web Support:**Web支援,可以非常容易的整合到Web環境;
Caching:快取,比如使用者登入後,其使用者資訊、擁有的角色/許可權不必每次去查,這樣可以提高效率;
**Concurrency:**shiro支援多執行緒應用的併發驗證,即如在一個執行緒中開啟另一個執行緒,能把許可權自動傳播過去;
Testing:提供測試支援;
Run As:允許一個使用者假裝為另一個使用者(如果他們允許)的身份進行訪問;
Remember Me:記住我,這個是非常常見的功能,即一次登入後,下次再來的話不用登入了。授權,即許可權驗證,驗證某個已認證的使用者是否擁有某個許可權;即判斷使用者是否能做事情,常見的如:驗證某個使用者是否擁有某個角色。或者細粒度的驗證某個使用者對某個資源是否具有某個許可權;
Session Manager:
Cryptography:加密,保護資料的安全性
**Web Support:**Web支援,可以非常容易的整合到Web環境;
Shiro的工作流程(應用程式角度):
Subject:當前應用互動的任何東西,都是Subject,代表“當前使用者”。
SecutiryManager :(安全管理器)所有與安全有關的操作都會和SecurityManager互動;它管理著所有Subject;是Shiro的核心,它負責與後邊介紹的其他元件進行互動 。可以將它當成前端控制器。
Realm :(安全資料來源) SecurityManager要驗證使用者身份時,那麼它需要從Realm獲取相應的使用者進行比較以確定使用者身份是否合法;也需要從Realm得到使用者相應的角色/許可權進行驗證使用者是否能進行操作。
總結:
1、應用程式碼通過Subject來進行認證和授權,而Subject又委託給SecurityManager;
2、我們需要給Shiro的SecurityManager注入Realm,從而讓SecurityManager能得到合法的使用者及其許可權進行判斷。
在Spring中的主要配置:
1.在web.xml中配置過濾器
2.在spring的配置檔案applicationContext中配置:securityManager,圖為自定義的Realm校驗。
3.在applicationContext中配置 shiroFilter(注意:id一定與web.xml中filter的name一致)
相關推薦
SHIRO工作流程及原理及在Spring中整合
1.最近接觸了Shiro這一安全的框架: 這可以幫我們完成:認證、授權、加密、會話管理、與Web整合、快取等。 Shiro可以基本功能分為如下: Authentication:身份認證/登入,驗證使用者是不是擁有相應的身份; Authorizatio
Spring IOC/BeanFactory/ApplicationContext的工作流程/實現原理/初始化/依賴注入原始碼詳解
Spring的工作流程/實現原理之基石IOC/BeanFactory/ApplicationContext 更新1:2017/11/23更新2:2018/1/30(截圖)一、什麼是IOC容器?IOC(Inversion of Control)、控制反轉亦稱依賴注入.IOC容器
Druid連線池及監控在spring中的配置
Druid連線池及監控在Spring配置如下: <beanid="dataSource"class="com.alibaba.druid.pool.DruidDataSource"init
Android View 的工作流程和原理
生成 它的 isl canvas mask lis mat cep 少見 參考資料 << Android 開發藝術探索 >> 前言 在日常開發中,我們每天都在和各種 View 打交道,比如TextView,Button等,我們直接拿過來就可以使用
struts2核心工作流程與原理
1. Struts2架構圖 這是Struts2官方站點提供的Struts 2 的整體結構。2. Struts2部分類介紹 這部分從Struts2參考文件中翻譯就可以了。 ActionMapper ActionMapper其實是HttpServletRequ
3.Shiro工作流程
*不涉及原始碼,只是執行流程繼續第2部分,此時效果,可以正常訪問login.jsp頁面,其餘頁面或不存在的頁面無法訪問,並會重定向回login.jsp頁面在web.xml中配置的ShiroFilter是程式的入口,因為可以攔截所有資源(*/)工作流程:1.因為在web.xml
SSM工作流程與原理詳解
自學ssm->springboot->springcloud,所以很多東西會用但理解較淺,所以現在從最開始的ssm開始進行對原理以及執行過程的整理知識歸納,若有錯誤感謝指正。 Spring Spring執行原理 1. Data Access/Integration(資料訪
Spring中整合Cage,實現驗證碼功能
ger 類型 body match exce sub pom esp rec 1.pom.xml中添加Cage依賴。 <dependency> <groupId>com.github.cage</groupId
Spring 中整合log4j日誌框架
構建專案,加入log4j日誌框架 在pom.xml加入以下依賴: <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId>
Spring中整合Mybatis分頁外掛PageHelper
1. 使用Maven方式引入分頁外掛 在pom.xml中新增如下依賴: <dependency> <groupId>com.github.pagehelper</groupId> <artif
Spring框架(JavaEE開發進階Ⅲ)—在Spring中整合Hibernate
一、主要內容1、Hibernate概覽2、宣告Hibernate的Session工廠3、構建不依賴於Spring的Hibernate程式碼二、前言1、應用程式越複雜,對持久化需求隨之要求更高1)延遲載入(lazy loading)2)預先抓取(Eager fetching)3
Spring中整合Hibernate連線MySQL資料庫配置
Spring配置檔案applicationContext.xml中加入資料庫連線配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DT
HTTP協議報文、工作原理及Java中的HTTP通信技術詳解
tor 報文 buffered mod protoc 禁止 ans 請求報文 客戶端 博客園 首頁 新隨筆 聯系 管理 訂閱
node.js基本工作原理及流程
實例 I/O 同步問題 code 本地 https 事情 sans ready 概述 Node.js是什麽 Node 是一個服務器端 JavaScript 解釋器,用於方便地搭建響應速度快、易於擴展的網絡應用。Node.js 使用事件驅動, 非阻塞I/O 模型而得以輕量
【Ceph系列01】Ceph的工作原理及流程
-o 尋址 ofo color proc 分享圖片 tac ges sha 首先我們了解一下Ceph系統中的尋址流程,如下圖所示: 本文部分參考來自 http://www.csdn.net/article/2014-04-08/2819192-ceph-swift-on
JSP工作流程及執行原理
JSP起源 在很多動態網頁中,絕大部分內容都是固定不變的,只有區域性內容需要動態產生和改變。 如果使用Servlet程式來輸出只有區域性內容需要動態改變的網頁,其中所有的靜態內容也需要程式設計師用Java程式程式碼產生,整個Servlet程式的程式碼將非常臃腫,編寫和維護都將非常困難。 對大
HTTP協議報文、工作原理及Java中的HTTP通訊技術詳解
一、web及網路基礎 1、HTTP的歷史 1.1、HTTP的概念: &nb
Java框架Mybatis的工作流程及原理
Mybatis簡介: MyBatis 是一款優秀的持久層框架,它支援定製化 SQL、儲存過程以及高階對映。MyBatis 避免了幾乎所有的 JDBC 程式碼和手動設定引數以及獲取結果集。MyBatis 可以使用簡單的 XML 或註解來配置
Node Js 基本工作原理及流程詳解
1,專案前期準備: 以express 框架為例 npm i express-generator -g //全域性安裝express框架 express -e //生成express應用骨架 npm i //安裝依賴 npm start //在3000埠監聽 拓展
CD4017 十進位制計數器工作原理及應用大全(不斷更新中......)
CD4017 十進位制計數器工作原理及應用大全 CD4017是一種十進位制計數器/脈衝分配器。具有10個譯碼輸出端,CP、CR、INH輸入端。計數輸入端CP的斯密特觸發器具有脈衝整形功能,對輸入時鐘脈衝