使用spring security明文密码校验时报错-BadCredentialsException: Bad credentials的问题

 更新时间:2023年10月19日 09:04:20   作者:YFEYI  
小编遇到这样一个问题在学习spring security时使用明文密码进行登录校验时报错"org.springframework.security.authentication.BadCredentialsException: Bad credentials,今天给大家分享问题原因及解决方案,感兴趣的朋友一起看看吧

问题描述-

在学习spring security时使用明文密码进行登录校验时报错"org.springframework.security.authentication.BadCredentialsException: Bad credentials(坏 凭 证)",

1`校验时数据库密码同样是明文密码

2`校验时已经将{noop}拼接但还是报错

问题解决-

使用spring security5.0后,配置文件中直接写普通的密码如:123456,会报错:

java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id "null"

这是因为spring security5.0以后默认需要选择密码加密方式,如果还想用简单密码的话,spring security还是给了两个方案,一种是在配置文件中配置:

1`在xml中配置NoOpPasswordEncoder 

<bean id="passwordEncoder" class="org.springframework.security.crypto.password.NoOpPasswordEncoder" factory-method="getInstance"/>

2`在你校验时密码拼接{noop}

"{noop}"+userInfo.getPassword()

问题后续-

在使用方法2时,既xml配置没有设置使用加密密码编码(PasswordEncoder)时,校验时拼接{noop}依旧检验不成功,原因未知.

后选用在xml中配置不适用加密编码时,去掉拼接的{noop}校验成功了.

再使用bCryptPasswordEncoder.encode(password)方法生成加密密码后手动存入数据库,再开启xml的配置一切正常.

参考资料

https://blog.csdn.net/qq_42197032/article/details/101379132

相关文章

  • Java之MultipartFile和File类型互转方式

    Java之MultipartFile和File类型互转方式

    这篇文章主要介绍了Java之MultipartFile和File类型互转方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • idea版本控制忽略.idea文件和.iml文件的问题

    idea版本控制忽略.idea文件和.iml文件的问题

    这篇文章主要介绍了idea版本控制忽略.idea文件和.iml文件,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • Spring Boot自定义错误视图的方法详解

    Spring Boot自定义错误视图的方法详解

    这篇文章主要介绍了Spring Boot自定义错误视图的方法详解,需要的朋友可以参考下
    2020-08-08
  • springboot中redis正确的使用详解

    springboot中redis正确的使用详解

    本文主要介绍了springboot中redis正确的使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • java中将一个实体类复制到另一个实体类的3种方法示例

    java中将一个实体类复制到另一个实体类的3种方法示例

    这篇文章主要给大家介绍了关于java中将一个实体类复制到另一个实体类的3种方法,所谓实体类就是一个拥有Set和Get方法的类,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • java list和map切割分段的实现及多线程应用案例

    java list和map切割分段的实现及多线程应用案例

    这篇文章主要为大家介绍了java list和map切割分段的实现及多线程应用案例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Java中的@PreAuthorize注解使用详解

    Java中的@PreAuthorize注解使用详解

    这篇文章主要介绍了Java中的@PreAuthorize注解使用详解,@PreAuthorize注解会在方法执行前进行权限验证,支持Spring EL表达式,它是基于方法注解的权限解决方案,需要的朋友可以参考下
    2023-10-10
  • 我们来说说Java LockSupport 的 park 和 unpark

    我们来说说Java LockSupport 的 park 和 unpa

    LockSupport是JDK底层线程阻塞工具,通过park/unpark实现线程阻塞与唤醒,避免死锁,与Object的wait/notify相比,无需监视器,支持先unpark后park,且更精确控制线程状态,是AQS等同步器的核心基础,本文介绍Java LockSupport 的 park 和 unpark,感兴趣的朋友一起看看吧
    2025-07-07
  • SpringBoot集成ECDH密钥交换的方法

    SpringBoot集成ECDH密钥交换的方法

    ECDH密钥交换算法通过椭圆曲线和Diffie-Hellman方法生成共享密钥,用于前端和后端之间的AES加密通信,前端使用elliptic.js生成密钥对,后端使用crypto-js.min.js进行AES加密,本文给大家介绍SpringBoot集成ECDH密钥交换的相关知识,感兴趣的朋友一起看看吧
    2025-01-01
  • 基于jQuery获取table数据发送到后端

    基于jQuery获取table数据发送到后端

    这篇文章主要介绍了基于jQuery获取table数据发送到后端,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02

最新评论