shiro學習筆記(自用)

2021-08-28 00:09:00 字數 1352 閱讀 3290

1. 獲取當前的 subject. 呼叫 securityutils.getsubject();

2. 測試當前的使用者是否已經被認證. 即是否已經登入. 呼叫 subject 的 isauthenticated() 

3. 若沒有被認證, 則把使用者名稱和密碼封裝為 usernamepasswordtoken 物件

1). 建立乙個表單頁面

2). 把請求提交到 springmvc 的 handler

3). 獲取使用者名稱和密碼. 

4. 執行登入: 呼叫 subject 的 login(authenticationtoken) 方法. 

5. 自定義 realm 的方法, 從資料庫中獲取對應的記錄, 返回給 shiro.

1). 實際上需要繼承 org.apache.shiro.realm.authenticatingrealm 類

2). 實現 dogetauthenticationinfo(authenticationtoken) 方法. 

6. 由 shiro 完成對密碼的比對. 

密碼的比對:

通過 authenticatingrealm 的 credentialsmatcher 屬性來進行的密碼的比對!

1. 如何把乙個字串加密為 md5 

2. 替換當前 realm 的 credentialsmatcher 屬性. 直接使用 hashedcredentialsmatcher 物件, 並設定加密演算法即可. 

1. 為什麼使用 md5 鹽值加密: 

2. 如何做到:

1). 在 dogetauthenticationinfo 方法返回值建立 ******authenticationinfo 物件的時候, 需要使用

******authenticationinfo(principal, credentials, credentialssalt, realmname) 構造器

2). 使用 bytesource.util.bytes() 來計算鹽值. 

3). 鹽值需要唯一: 一般使用隨機字串或 user id

4). 使用 new ******hash(hashalgorithmname, credentials, salt, ha****erations); 來計算鹽值加密後的密碼的值. 

1. 授權需要繼承 authorizingrealm 類, 並實現其 dogetauthorizationinfo 方法

2. authorizingrealm 類繼承自 authenticatingrealm, 但沒有實現 authenticatingrealm 中的 

dogetauthenticationinfo, 所以認證和授權只需要繼承 authorizingrealm 就可以了. 同時實現他的兩個抽象方法.

Shiro學習筆記

shiro 許可權選單框架.apache shiro是乙個強大而靈活的開源安全框架,它能夠乾淨利落地處理身份認證,授權,企業會話管理和加密。使用者認證 使用者認證,使用者去訪問系統,系統要驗證使用者身份的合法性。最常用的使用者身份驗證的方法 1 使用者名稱密碼方式 2 指紋打卡機 3 基於證書驗證方...

shiro學習筆記

作為乙個要轉後端的人,不了解安全框架怎麼能行呢,最近看了些web專案很多都使用shiro,shiro到底好在 呢?本篇部落格僅作為個人的shiro學習歷程記錄。很多內容參考張開濤先生的 跟我學shiro教程 侵刪。shiro給人的印象是乙個簡單實用的安全框架,相比於spring security,沒...

Shiro學習筆記之Shiro加密

雜湊演算法一般用於生成資料的摘要資訊,是一種不可逆的演算法,一般適合儲存密碼之類的資料,常見的雜湊演算法如 md5 sha 等。一般進行雜湊時最好提供乙個 雜訊,這樣可以使破解密碼的難度變大。以下是md5加密演算法的乙個演示 public class tes 5 此介面提供加密密碼和驗證密碼的功能。...