使用spring security明文密碼校驗(yàn)時(shí)報(bào)錯(cuò)-BadCredentialsException: Bad credentials的問(wèn)題
問(wèn)題描述-
在學(xué)習(xí)spring security時(shí)使用明文密碼進(jìn)行登錄校驗(yàn)時(shí)報(bào)錯(cuò)"org.springframework.security.authentication.BadCredentialsException: Bad credentials(壞 憑 證)",
1`校驗(yàn)時(shí)數(shù)據(jù)庫(kù)密碼同樣是明文密碼
2`校驗(yàn)時(shí)已經(jīng)將{noop}拼接但還是報(bào)錯(cuò)
問(wèn)題解決-
使用spring security5.0后,配置文件中直接寫普通的密碼如:123456,會(huì)報(bào)錯(cuò):
java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id "null"
這是因?yàn)閟pring security5.0以后默認(rèn)需要選擇密碼加密方式,如果還想用簡(jiǎn)單密碼的話,spring security還是給了兩個(gè)方案,一種是在配置文件中配置:
1`在xml中配置NoOpPasswordEncoder
<bean id="passwordEncoder" class="org.springframework.security.crypto.password.NoOpPasswordEncoder" factory-method="getInstance"/>
2`在你校驗(yàn)時(shí)密碼拼接{noop}
"{noop}"+userInfo.getPassword()問(wèn)題后續(xù)-
在使用方法2時(shí),既xml配置沒(méi)有設(shè)置使用加密密碼編碼(PasswordEncoder)時(shí),校驗(yàn)時(shí)拼接{noop}依舊檢驗(yàn)不成功,原因未知.
后選用在xml中配置不適用加密編碼時(shí),去掉拼接的{noop}校驗(yàn)成功了.
再使用bCryptPasswordEncoder.encode(password)方法生成加密密碼后手動(dòng)存入數(shù)據(jù)庫(kù),再開(kāi)啟xml的配置一切正常.
參考資料
相關(guān)文章
Java之MultipartFile和File類型互轉(zhuǎn)方式
這篇文章主要介紹了Java之MultipartFile和File類型互轉(zhuǎn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09
idea版本控制忽略.idea文件和.iml文件的問(wèn)題
這篇文章主要介紹了idea版本控制忽略.idea文件和.iml文件,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
java中將一個(gè)實(shí)體類復(fù)制到另一個(gè)實(shí)體類的3種方法示例
這篇文章主要給大家介紹了關(guān)于java中將一個(gè)實(shí)體類復(fù)制到另一個(gè)實(shí)體類的3種方法,所謂實(shí)體類就是一個(gè)擁有Set和Get方法的類,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-07-07
java?list和map切割分段的實(shí)現(xiàn)及多線程應(yīng)用案例
這篇文章主要為大家介紹了java?list和map切割分段的實(shí)現(xiàn)及多線程應(yīng)用案例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12
我們來(lái)說(shuō)說(shuō)Java LockSupport 的 park 和 unpa
LockSupport是JDK底層線程阻塞工具,通過(guò)park/unpark實(shí)現(xiàn)線程阻塞與喚醒,避免死鎖,與Object的wait/notify相比,無(wú)需監(jiān)視器,支持先unpark后park,且更精確控制線程狀態(tài),是AQS等同步器的核心基礎(chǔ),本文介紹Java LockSupport 的 park 和 unpark,感興趣的朋友一起看看吧2025-07-07
基于jQuery獲取table數(shù)據(jù)發(fā)送到后端
這篇文章主要介紹了基于jQuery獲取table數(shù)據(jù)發(fā)送到后端,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-02-02

