Spring整合Shiro 三 筆記篇

2021-07-25 00:02:08 字數 1584 閱讀 7981

筆記

shiro登陸認證流程

1.通過seucrityutils獲取當前使用者(subject),呼叫securityutils.getsubject()方法

2.判斷使用者是否登陸currentuser.isauthenticated()

3.如果使用者沒有登陸,獲取登入頁面傳過來的值(springmvc@handler)

4.建立令牌usernamepasswordtoken token = new usernamepasswordtoken(#username, #password)

5.通過realm(繼承org.apache

.shiro

.realm

.authenticatingrealm)與資料庫中的使用者密碼比對

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

密碼加密

# 如何把乙個字串加密為 md5?

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

# 使用 md5 鹽值加密:

如何做到:

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 就可以了. 同時實現他的兩個抽象方法.

總結:1.shiro加密原先實現方法都是寫加密工具類,可以通過配置md5鹽值加密,這樣加密都不用自己實現,當然你向資料庫中存資料時當然要手寫加密演算法,一會把之前做多realm測試的加密演算法貼出來

2.url許可權資源可以放到配置檔案或資料庫中,這些就降低了spring配置檔案的壓力,一堆堆的url配置很佔空間.

3.授權時要注意在配置md5鹽值加密時注意介面

4.我在學習時候已經把上面的筆記寫在配置檔案中了

public

static

void

main(string args)

shiro與spring的整合

1.除了spring本身專案的jar包,還要加入四個jar包 1 shiro all 1.2.5.jar 2 slf4j api 1.7.7.jar 3 slf4j log4j12 1.7.7.jar 4 log4j 1.2.17.jar 2.首先進行web.xml的配置 參考官方的文件 需要在we...

Spring整合Hibernate學習筆記

spring整合hibernate,spring配置檔案需要做的修改為 1 配置資料來源 datasource 2 配置sessionfactory,spring的主要類有annotationsessionfactorybean 註解方式 和localsessionfactorybean hbm配置...

Spring 整合Hibernate學習筆記

整合的目的是讓 ioc 容器來管理 hibernate 的 sessionfactory,讓hibernate 使用 spring 來進行事務管理。具體步驟 1.加入所需jar包 2.新增 hibernate 的配置檔案 hibernate.cfg.xml,編寫了持久化類對應的 hbm.xml 檔案...