shiro密码正确也会匹配错误_Shiro安全框架
Shiro簡介:
Apache Shiro 是強大易用Java的安全框架,提供了認證、授權(quán)、加密和會話管理等功能。
Shiro的應(yīng)用場景:對于任何一個應(yīng)用程序,Shiro都能提供全面的安全管理服務(wù),不僅可以用在javaSE環(huán)境還可以用在javaEE環(huán)境。
Shiro的架構(gòu)圖:
從外部來看Shiro,即從應(yīng)用程序角度來觀察使用Shiro完成工作。
從外部看Shiro分為四部分:ApplicationCode-->編寫的代碼、Subject-->主體、
Shiro SecurityManager-->安全管理器、Realm-->領(lǐng)域;
圖1(Shiro內(nèi)部架構(gòu)圖)從Shiro內(nèi)部看Shiro的架構(gòu):
圖2(Shiro顳部架構(gòu)圖)Shiro涉及常見的名詞
Shiro中常見的英文詞匯:
Subject --主體(當前用戶)
Security --安全
Realm --領(lǐng)域(操作數(shù)據(jù)源)
Authenticator --認證器
Authentication --認證
Authorizer -->授權(quán)器
Authorization -->授權(quán)
Matcher --匹配器
Principal --身份(用戶名)
最常見的principals(身份)和credentials(憑證)組合就是用戶名/密碼。
圖3(Shiro涉及常見名詞)Shiro配置文件--->Shiro.ini
Shiro.ini 一般放在路徑-->src下(ClassPath)
Shiro.ini 文件配置的數(shù)據(jù)格式為--> key-value鍵值對形式
Shiro.ini 的應(yīng)用場景:
ini配置文件適用于于用戶少且不需要再運行時動態(tài)創(chuàng)建的情形下使用。
環(huán)境搭建實現(xiàn)簡單認證-->
1)導(dǎo)入所依賴的架包
圖42)配置Shiro.ini文件
3)編寫實現(xiàn)簡單驗證的測試類
package4)測試類打印結(jié)果:
Shiro內(nèi)置的JDBCRealm
1)Shiro默認使用自帶的IniRealm,IniRealm從ini配置文件中讀取用戶的信息。
2)大部分情況下需要從系統(tǒng)的數(shù)據(jù)庫中讀取用戶信息,所以需要使用JDBCRealm或自定義Realm。
A--使用JDBCRealm提供數(shù)據(jù)源,從而實現(xiàn)認證
導(dǎo)入架包
ini文件配置
測試類同上
密碼加密實現(xiàn)方案
幾種常見加密算法
1)對稱加密算法(加密與解密密鑰相同)
2)非對稱算法(加密密鑰和解密密鑰不同)
3)散列算法
加鹽-->所謂加Salt(鹽)方法,就是加點“佐料”。
密碼加密實現(xiàn)方案-->其基本想法是這樣的:當用戶首次提供密碼時(通常是注冊時), 由系統(tǒng)自動往這個密碼里撒一些“佐料”,然后再散列。而當用戶登錄時, 系統(tǒng)為用戶提供的代碼撒上同樣的“佐料”,然后散列,再比較散列值,來確定密碼是否正確。
迭代-->就是值加密的次數(shù)
憑證匹配器-->在Realm接口的實現(xiàn)類AuthenticatingRealm中有credentialsMatcher屬性。
意為憑證匹配器。常用來設(shè)置加密算法及迭代次數(shù)等。
授權(quán)-->授權(quán)又稱作訪問控制,是對資源訪問管理的過程。
Shiro中常見的授權(quán)的方式--->
Shiro支持的三種授權(quán)的方式:代碼觸發(fā)、 注解觸發(fā)、 標簽觸發(fā)、
總結(jié)
以上是生活随笔為你收集整理的shiro密码正确也会匹配错误_Shiro安全框架的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring boot 邮件端口_1 分
- 下一篇: python集合排序_排序算法集合