Empty encoded password警告原因
前提:
- 使用SpringSecurity权限管理框架。
- 登录过程中控制台提示Empty encoded password。
可能造成的原因:
- 框架版本冲突不支持。
- 数据库密码子段在注册的时候没进行编码加密就存到数据库。
- 实体类使用不正确。
解决方法:
- 修改版本。
- 在数据库新增用户的时候把前台传值密码进行编码在存到数据库,方法在下面。
- 切记,登录类和实现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警告原因相关推荐
- Spring Security使用出现 Encoded password does not look like BCrypt异常的解决以及Spring Securit加密方式的学习
QUESTION:Spring Security使用出现 Encoded password does not look like BCrypt异常的解决以及Spring Securit加密方式的学习? ...
- Encoded password does not look like BCrypt最新异常处理
报错信息: 控制台报错信息 原由:spirng boot 1.5.* 升级到spring boot 2.0.*,当再次访问授权服务器时出现Encoded password does not look ...
- iOS之performSelector may cause a leak because its selector is unknown警告原因及其解决办法
1.问题 项目中使用到了从字符串创建选择器,编译时发现警告:"performSelector may cause a leak because its selector is unknown ...
- c盘系统盘满红色警告原因
1.电脑c盘空间剩几百兆,提示红色警告,剩余空间不多. 2.发现是下面问题,图片中路径文件夹下有一个超大文件,几十个G,原来是windows查找产生的索引文件 3.停止windows search 服 ...
- spring security技术分享
Spring Security技术专题 一.初识认证和授权 1.1 认证 1.2 会话 1.3 授权 1.4 授权的数据模型 1.5 RBAC 1.5.1 角色访问控制 1.5.2 资源访问控制 1. ...
- 电影售票系统遇到的问题
电影售票系统遇到的问题(*暂时名字) 实现分页 <el-pagination@size-change="handleSizeChange"@current-change=&q ...
- PasswordEncoder详解
本文来讲下PasswordEncoder相关的知识与内容 文章目录 概述 BCryptPasswordEncoder源码 BCryptPasswordEncoder测试 本文小结 概述 Passwor ...
- 超实用,Spring Security+JWT+Vue实现一个前后端分离无状态认证Demo
作者: 陕西颜值扛把子 https://zhuanlan.zhihu.com/p/95560389 精彩推荐 一百期Java面试题汇总 SpringBoot内容聚合 IntelliJ IDEA内容聚合 ...
- 领域驱动设计战术模式:领域服务
领域驱动设计战术部分,是一组面向业务的设计模式,是基于技术的一种思维方式,相对开发人员来说更接地气,是提升个人格局比较好的切入点. 该文章为战术模式的第四篇,重心讲解领域服务模式. 在建模时,有时会遇 ...
最新文章
- springboot初学
- Google仍鸡蛋[DP]
- linux如何扩展根分区,linux扩展根分区详细步骤
- 函数防抖和函数节流的最简单解释
- find_cmd函数分析
- hitchhiker部署_《 Hitchhiker的Python机器学习指南》
- 线性规划与多目标规划
- cad 打开硬件加速卡_老司机手把手带你解决,各种CAD疑难杂症
- mongodb连接池 php,node.js,mongodb_nodejs使用mongodb连接池,node.js,mongodb - phpStudy
- spring service加上@autowired 空指针_Spring整合activeMQ和JsonP
- C#中的DataGridView
- 代码审计工具学习之Seay(安装以及初步认识)
- 怎么卸载Office2007兼容包?
- c花体复制_求类似ℒℴѵℯ 这样的花体英文字母符号,可以直接复制的
- python用户画像_研究用户应该从哪几个维度去构建用户画像模型?
- 安庆集团-冲刺日志(第五天)
- android——java.lang.IllegalStateException: Fatal Exception thrown on Scheduler
- udpsender用法
- 快速傅立叶变换的C语言实现方法
- 英集芯IP5566带TYPE-C口3A充放快充移动电源5w无线充二合一方案SOC
热门文章
- 怎么测试唱歌水平的软件,测试一下你的唱功到第几层了?到第五层你已经算是高手了...
- php 静态 动态 cdn 加速,CDN动态加速 静态加速区别
- 18款发现5电动踏板 路虎发现伸缩脚踏板 豪车必备 科技感爆棚的脚踏板
- Spring框架中的核心技术之AOP
- 厦门java工资水平2018_8290元!厦门最新平均工资出炉!看完想跳槽......
- 视觉工程师的生活是怎样的(二)?
- 跑胡子c语言算法,跑胡子胡牌算法
- Python——12306图片验证码
- 初级选手表示太好玩了 | python turtle绘图集锦(哆啦A梦、捂脸表情)
- (十三) 基于cadence 617 OTA五管共模输入范围、共模增益、差模增益、CMRR、电源抑制比PSRR仿真