SpringSecurity:There is no PasswordEncoder mapped for the id “null“

文章目录

一、情景说明

在整合SpringSecurity功能的时候

我先是去实现认证功能

也就是,去数据库比对用户名和密码

相关的类:

java 复制代码
UserDetailsServiceImpl implements UserDetailsService	用于SpringSecurity查询数据库
LoginUser implements UserDetails	用于封装SpringSecurity的用户信息及权限信息
SysUser		对应数据库的实体类

表数据

可以看出,密码是123

当我用test,123登陆时,就包这个错误

二、分析

此时,我们没有增加SecurityConfig配置类,所以,没给容器注入PasswordEncoder对应的实现类

所以,SpringSecurity在进行用户认证的时候,密码对应不上。

三、解决

1、直接给SpringBoot容器注入BCryptPasswordEncoder密码加密解析类。

2、在数据的密码设置改成:{noop}123,加个{noop}前缀,则SpringSecurity会知道是明文校验

相关推荐
014-code3 小时前
订单超时取消与库存回滚的完整实现(延迟任务 + 状态机)
java·开发语言
java1234_小锋4 小时前
Java高频面试题:Springboot的自动配置原理?
java·spring boot·面试
末央&5 小时前
【天机论坛】项目环境搭建和数据库设计
java·数据库
xiaoye37085 小时前
Spring 中高级面试题
spring·面试
枫叶落雨2225 小时前
ShardingSphere 介绍
java
花花鱼5 小时前
Spring Security 与 Spring MVC
java·spring·mvc
言慢行善6 小时前
sqlserver模糊查询问题
java·数据库·sqlserver
专吃海绵宝宝菠萝屋的派大星6 小时前
使用Dify对接自己开发的mcp
java·服务器·前端
大数据新鸟6 小时前
操作系统之虚拟内存
java·服务器·网络
Tong Z6 小时前
常见的限流算法和实现原理
java·开发语言