使用spring security明文密碼校驗(yàn)時(shí)報(bào)錯(cuò)-BadCredentialsException: Bad credentials的問題
問題描述-
在學(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ù)庫密碼同樣是明文密碼
2`校驗(yàn)時(shí)已經(jīng)將{noop}拼接但還是報(bào)錯(cuò)
問題解決-
使用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)需要選擇密碼加密方式,如果還想用簡單密碼的話,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()
問題后續(xù)-
在使用方法2時(shí),既xml配置沒有設(shè)置使用加密密碼編碼(PasswordEncoder)時(shí),校驗(yàn)時(shí)拼接{noop}依舊檢驗(yàn)不成功,原因未知.
后選用在xml中配置不適用加密編碼時(shí),去掉拼接的{noop}校驗(yàn)成功了.
再使用bCryptPasswordEncoder.encode(password)方法生成加密密碼后手動(dòng)存入數(shù)據(jù)庫,再開啟xml的配置一切正常.
參考資料
相關(guān)文章
Java?數(shù)據(jù)結(jié)構(gòu)與算法系列精講之?dāng)?shù)組
數(shù)組是有序的元素序列,若將有限個(gè)類型相同的變量的集合命名,那么這個(gè)名稱為數(shù)組名。組成數(shù)組的各個(gè)變量稱為數(shù)組的分量,也稱為數(shù)組的元素,有時(shí)也稱為下標(biāo)變量。數(shù)組是在程序設(shè)計(jì)中,為了處理方便, 把具有相同類型的若干元素按有序的形式組織起來的一種形式2022-02-02IntelliJ IDEA 2020.2 配置大全詳細(xì)圖文教程(更新中)
這篇文章主要介紹了IntelliJ IDEA 2020.2 配置大全(更新中),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08Java try()語句實(shí)現(xiàn)try-with-resources異常管理機(jī)制操作
這篇文章主要介紹了Java try()語句實(shí)現(xiàn)try-with-resources異常管理機(jī)制操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09解決@DateTimeFormat格式化時(shí)間出錯(cuò)問題
這篇文章主要介紹了解決@DateTimeFormat格式化時(shí)間出錯(cuò)問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12springboot 2.3之后消失的hibernate-validator解決方法
這篇文章主要介紹了springboot 2.3之后消失的hibernate-validator解決方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08java SpringBoot自定義注解,及自定義解析器實(shí)現(xiàn)對象自動(dòng)注入操作
這篇文章主要介紹了java SpringBoot自定義注解,及自定義解析器實(shí)現(xiàn)對象自動(dòng)注入操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-08-08