Shiro Shiro登入驗證失敗問題

2021-08-21 04:25:00 字數 965 閱讀 9934

shiro登入驗證一直失敗:

原因:在使用者註冊時,採用如下加密方法:

/**

* md5加密工具

* @param var

* 要加密的字串

* @param iterations

* 加密次數

* @return

*/public static string encrypt(string var,int iterations)

在shiroconfig中:

@bean

public shirorealm shirorealm()

/** * 加密

* * @return

*/@bean

public hashedcredentialsmatcher hashedcredentialsmatcher()

因為註冊時存入資料庫的是經過兩次md5加密的,但是在shirorealm中卻未指定加密方法,導致userpasswordtoken是以明文存在的,所以需要在shirorealm()中加上:

//設定加密方式

shirorealm.setcredentialsmatcher(hashedcredentialsmatcher());

同時必須保持入庫時的加密方法和shiro登入驗證時的加密方法一致,包括加密次數、鹽值也要一致。

修改hashedcredentialsmatcher()如下:

@bean

public hashedcredentialsmatcher hashedcredentialsmatcher()

(注意:我這裡採用固定鹽值,實際上應該不同使用者不同鹽值,一般為使用者id+固定字串,鹽值略)

總結:在使用shiro進行認證時,加密規則要和資料入庫時保持一致,包括加密規則,加密次數,鹽值,都要一致。

docker login 登入harbor失敗

我在一台192.168.1.102伺服器上採用http安裝了harbor,完全啟動harbor成功,但是在另一台伺服器利用docker登入不上去,報錯 error response from daemon get 原因我採用http部署,自然使用http去訪問 其實問題很簡單,但是我就是找了很久,還...

python驗證 python驗證登入

乙個web2.0時代的 自然少不了使用者註冊,登入,驗證的功能,那麼python可以怎樣實現登入驗證呢 這裡我們使用裝飾器來做登入驗證 構成 假設我們有這樣乙個 是乙個類似與這種多個使用者的 每個使用者都又乙個自己的管理介面,內部也應該有乙個管理員系統 未登入使用者 登入的普通使用者,就是我們 管理...

使用者登入驗證

一 sql資料庫聯合查詢有四種 1 內連線 inner join 2 左連線 left outer join 3 右連線 right outer join 4 外連線 full outer join 舉例 select a.studentname,b.testtime,b.chengji from ...