前提:

  1. 使用SpringSecurity权限管理框架。
  2. 登录过程中控制台提示Empty encoded password。

可能造成的原因:

  1. 框架版本冲突不支持。
  2. 数据库密码子段在注册的时候没进行编码加密就存到数据库。
  3. 实体类使用不正确。

解决方法:

  1. 修改版本。
  2. 在数据库新增用户的时候把前台传值密码进行编码在存到数据库,方法在下面。
  3. 切记,登录类和实现UserDetails的类不能是同一个,不然会造成找不到密码。而且继承UserDetails的类中,username和password记得返回数据库中用户username和password。

注册加密:

 @Overridepublic Res register(LoginBody loginBody) {String msg = "";SysUser sysUserDb = baseMapper.selectOne(Wrappers.<SysUser>lambdaQuery().eq(SysUser::getUserName, loginBody.getUserName()));if (sysUserDb != null) {msg = "保存用户'" + loginBody.getUserName() + "'失败,注册账号已存在";} else {SysUser sysUser = new SysUser();sysUser.setUserName(loginBody.getUserName());sysUser.setNickName(loginBody.getUserName());sysUser.setPassword(encryptPassword(loginBody.getPassword()));int regFlag = baseMapper.insert(sysUser);if (regFlag != 1) {msg = "注册失败,请联系系统管理人员";}return Res.ok("注册成功");}return Res.failed(msg);}/*** 生成BCryptPasswordEncoder密码** @param password 密码* @return 加密字符串*/public static String encryptPassword(String password) {BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();return passwordEncoder.encode(password);}

实体类:
登录实体类:

package com.spring.security.entity;import lombok.Data;/*** 用户登录对象** @author ruoyi*/
@Data
public class LoginBody {/*** 用户名*/private String userName;/*** 用户密码*/private String password;/*** 验证码*/private String code;/*** 唯一标识*/private String uuid;
}

登录返回实体类:
注意getUsername()和getPassword()方法

package com.spring.security.entity;import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;import java.util.Collection;
import java.util.Set;/*** @author lenovo* @date 2022/6/20*/
@Data
public class LoginUser implements UserDetails {/*** 用户账号*/private String userName;/*** 密码* @return*/private String password;/*** 部门ID*/private String deptId;/*** 用户信息*/private SysUser user;/*** 权限列表*/private Set<String> permissions;/*** 用户唯一标识*/private String token;/*** 获取权限* @return*/@Overridepublic Collection<? extends GrantedAuthority> getAuthorities() {return null;}/*** 获取密码* @return*/@Overridepublic String getPassword() {return user.getPassword();}/*** 获取用户账号* @return*/@Overridepublic String getUsername() {return user.getUserName();}/*** 账号是否过期* @return*/@Overridepublic boolean isAccountNonExpired() {return true;}/*** 账号是否锁定* @return*/@Overridepublic boolean isAccountNonLocked() {return true;}/*** 凭证是否过期* @return*/@Overridepublic boolean isCredentialsNonExpired() {return true;}/*** 是否启用* @return*/@Overridepublic boolean isEnabled() {return true;}public LoginUser(String deptId, SysUser user, Set<String> permissions){this.deptId = deptId;this.user = user;this.permissions = permissions;}
}

Empty encoded password警告原因相关推荐

  1. Spring Security使用出现 Encoded password does not look like BCrypt异常的解决以及Spring Securit加密方式的学习

    QUESTION:Spring Security使用出现 Encoded password does not look like BCrypt异常的解决以及Spring Securit加密方式的学习? ...

  2. Encoded password does not look like BCrypt最新异常处理

    报错信息: 控制台报错信息 原由:spirng boot 1.5.* 升级到spring boot 2.0.*,当再次访问授权服务器时出现Encoded password does not look ...

  3. iOS之performSelector may cause a leak because its selector is unknown警告原因及其解决办法

    1.问题 项目中使用到了从字符串创建选择器,编译时发现警告:"performSelector may cause a leak because its selector is unknown ...

  4. c盘系统盘满红色警告原因

    1.电脑c盘空间剩几百兆,提示红色警告,剩余空间不多. 2.发现是下面问题,图片中路径文件夹下有一个超大文件,几十个G,原来是windows查找产生的索引文件 3.停止windows search 服 ...

  5. spring security技术分享

    Spring Security技术专题 一.初识认证和授权 1.1 认证 1.2 会话 1.3 授权 1.4 授权的数据模型 1.5 RBAC 1.5.1 角色访问控制 1.5.2 资源访问控制 1. ...

  6. 电影售票系统遇到的问题

    电影售票系统遇到的问题(*暂时名字) 实现分页 <el-pagination@size-change="handleSizeChange"@current-change=&q ...

  7. PasswordEncoder详解

    本文来讲下PasswordEncoder相关的知识与内容 文章目录 概述 BCryptPasswordEncoder源码 BCryptPasswordEncoder测试 本文小结 概述 Passwor ...

  8. 超实用,Spring Security+JWT+Vue实现一个前后端分离无状态认证Demo

    作者: 陕西颜值扛把子 https://zhuanlan.zhihu.com/p/95560389 精彩推荐 一百期Java面试题汇总 SpringBoot内容聚合 IntelliJ IDEA内容聚合 ...

  9. 领域驱动设计战术模式:领域服务

    领域驱动设计战术部分,是一组面向业务的设计模式,是基于技术的一种思维方式,相对开发人员来说更接地气,是提升个人格局比较好的切入点. 该文章为战术模式的第四篇,重心讲解领域服务模式. 在建模时,有时会遇 ...

最新文章

  1. springboot初学
  2. Google仍鸡蛋[DP]
  3. linux如何扩展根分区,linux扩展根分区详细步骤
  4. 函数防抖和函数节流的最简单解释
  5. find_cmd函数分析
  6. hitchhiker部署_《 Hitchhiker的Python机器学习指南》
  7. 线性规划与多目标规划
  8. cad 打开硬件加速卡_老司机手把手带你解决,各种CAD疑难杂症
  9. mongodb连接池 php,node.js,mongodb_nodejs使用mongodb连接池,node.js,mongodb - phpStudy
  10. spring service加上@autowired 空指针_Spring整合activeMQ和JsonP
  11. C#中的DataGridView
  12. 代码审计工具学习之Seay(安装以及初步认识)
  13. 怎么卸载Office2007兼容包?
  14. c花体复制_求类似ℒℴѵℯ 这样的花体英文字母符号,可以直接复制的
  15. python用户画像_研究用户应该从哪几个维度去构建用户画像模型?
  16. 安庆集团-冲刺日志(第五天)
  17. android——java.lang.IllegalStateException: Fatal Exception thrown on Scheduler
  18. udpsender用法
  19. 快速傅立叶变换的C语言实现方法
  20. 英集芯IP5566带TYPE-C口3A充放快充移动电源5w无线充二合一方案SOC

热门文章

  1. 怎么测试唱歌水平的软件,测试一下你的唱功到第几层了?到第五层你已经算是高手了...
  2. php 静态 动态 cdn 加速,CDN动态加速 静态加速区别
  3. 18款发现5电动踏板 路虎发现伸缩脚踏板 豪车必备 科技感爆棚的脚踏板
  4. Spring框架中的核心技术之AOP
  5. 厦门java工资水平2018_8290元!厦门最新平均工资出炉!看完想跳槽......
  6. 视觉工程师的生活是怎样的(二)?
  7. 跑胡子c语言算法,跑胡子胡牌算法
  8. Python——12306图片验证码
  9. 初级选手表示太好玩了 | python turtle绘图集锦(哆啦A梦、捂脸表情)
  10. (十三) 基于cadence 617 OTA五管共模输入范围、共模增益、差模增益、CMRR、电源抑制比PSRR仿真