使用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虚拟机JVM的基本结构及JVM的内存溢出方式

    了解Java虚拟机JVM的基本结构及JVM的内存溢出方式

    这篇文章主要介绍了Java虚拟机JVM的基本结构及JVM的内存溢出方式,涉及到Java内存分配相关方面的知识,需要的朋友可以参考下
    2016-01-01
  • 在Spring-Boot中如何使用@Value注解注入集合类

    在Spring-Boot中如何使用@Value注解注入集合类

    这篇文章主要介绍了在Spring-Boot中如何使用@Value注解注入集合类的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Linux安装JDK两种方式详细教程(附图)

    Linux安装JDK两种方式详细教程(附图)

    这篇文章主要给大家介绍了关于Linux安装JDK两种方式详细教程的相关资料,Linux的使用相信大家都要用到java吧,在使用java前我们得先安装jdk以及配置环境变量等工作,需要的朋友可以参考下
    2023-11-11
  • IDEA解决springboot热部署失效问题(推荐)

    IDEA解决springboot热部署失效问题(推荐)

    热部署,就是在应用正在运行的时候升级软件,却不需要重新启动应用。这篇文章主要介绍了IDEA解决springboot热部署失效问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • Java IO学习之缓冲输入流(BufferedInputStream)

    Java IO学习之缓冲输入流(BufferedInputStream)

    这篇文章主要介绍了Java IO学习之缓冲输入流(BufferedInputStream)的相关资料,需要的朋友可以参考下
    2017-02-02
  • RocketMQ实现消息分发的步骤

    RocketMQ实现消息分发的步骤

    RocketMQ 实现消息分发的核心机制是通过 Topic、Queue 和 Consumer Group 的配合实现的,下面给大家介绍RocketMQ实现消息分发的步骤,感兴趣的朋友一起看看吧
    2024-03-03
  • java实现多线程卖票功能

    java实现多线程卖票功能

    这篇文章主要为大家详细介绍了java实现多线程卖票功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • Gradle 创建Task的多种方法

    Gradle 创建Task的多种方法

    本文主要介绍了Gradle 创建Task的多种方法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Java8之lambda表达式基本语法

    Java8之lambda表达式基本语法

    本文通过示例大家给大家介绍了java8之lambda表达式的基本语法,感兴趣的的朋友一起看看吧
    2017-08-08
  • Java Lombok实现手机号码校验的示例代码

    Java Lombok实现手机号码校验的示例代码

    手机号码校验通常是系统开发中最基础的功能之一,本文主要介绍了Java Lombok实现手机号码校验的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07

最新评论