### 架構
http://assets.processon.com/chart_image/5e02f3e6e4b0c1ff210a638b.png
### API
1. `Subject`
這是主體,代表當前的“用戶”,與當前應用交互的任何東西都是`subject`,與`subject`的所有交互都會委托給`SecurityManager`
2. `SecurityManager`
安全管理器。管理著所有的`subject`,它是`shiro`的核心;
3. `Realm`
域。shiro從realm獲取安全數據(用戶、角色、權限),realm相當于安全的數據源,shiro不維護用戶和權限,由開發人員通過`realm`自己注入。
## 基本概念
### 簡介
> Apache Shiro是Java的一個安全框架。它相當簡單,對比Spring Security,可能沒有Spring Security做的功能強大,但是在實際工作時可能并不需要那么復雜的東西,所以使用小而簡單的Shiro就足夠了。
>
> 主要功能包括認證、授權、加密、會話管理、與Web集成、緩存等。
### 基本功能
- `Authentication`:身份認證/登錄,驗證用戶是不是擁有相應的身份;
- `Authorization`:授權,即權限驗證,驗證某個已認證的用戶是否擁有某個權限;即判斷用戶是否能做事情,常見的如:驗證某個用戶是否擁有某個角色。或者細粒度的驗證某個用戶對某個資源是否具有某個權限;
- `Session Manager`:會話管理,即用戶登錄后就是一次會話,在沒有退出之前,它的所有信息都在會話中;會話可以是普通JavaSE環境的,也可以是如Web環境的;
- `Cryptography`:加密,保護數據的安全性,如密碼加密存儲到數據庫,而不是明文存儲;
- `Web Support`:Web支持,可以非常容易的集成到Web環境;
- `Caching`:緩存,比如用戶登錄后,其用戶信息、擁有的角色/權限不必每次去查,這樣可以提高效率;
- `Concurrency`:shiro支持多線程應用的并發驗證,即如在一個線程中開啟另一個線程,能把權限自動傳播過去;
- `Testing`:提供測試支持;
- `Run As`:允許一個用戶假裝為另一個用戶(如果他們允許)的身份進行訪問;
- `Remember Me`:記住我,這個是非常常見的功能,即一次登錄后,下次再來的話不用登錄了。
- 前端
- C1-Javascript
- H5圖片分塊和斷點續傳
- JavascriptPatterns[Stoyanstefanov]
- macotask和microtask
- 前端代碼生成器
- 跨域
- 頁面回到頂部滾動按鈕實現
- C2-CSS
- 瀏覽器的一些單位
- 盒模型
- 移動端判斷橫豎屏
- C3-框架
- ReactNative
- 開發環境搭建(安卓篇)
- Vue
- vue+pdfjs使用
- vue+typescript使用實踐
- vue+webpack3.x集成typescript
- Vue源碼3
- vue源碼分析1
- vue源碼分析2
- vue筆記
- C4-工具
- git
- Gitlab-CICD
- mock規則
- vscode-settings
- webpack自定義命令,切換代理地址
- 正則表達式
- 深入淺出webpack
- C5-Node
- express
- express源碼閱讀
- nightmare使用指南
- 爬蟲1.0
- C6-微信
- 微信
- C7-Canvas
- 基礎API
- 前端隨筆筆記
- 后端
- C1-Java
- shiro
- C2-Linux
- ffmpeg
- ITerm
- Linux
- MongoDB安裝
- MySql安裝
- Ngnix反向代理
- 常見錯誤
- 備忘
- mac
- 備忘-Work
- 備忘Link
- 服務器資源
- 教程
- Hexo個人博客搭建筆錄
- 文檔
- CSS編碼規范
- 前端編碼規范
- 隨筆
- 整理
- 正則
- 鏈接收藏
- 面試
- CodeWars題庫
- CodeWars題庫(二)
- Java社招面試題
- Java面試
- Web面試
- 前端筆試題
- 筆試題