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 ...