2.5K Star 11.5K Fork 5.5K

GVP人人开源 / renren-security

 / 详情

系统管理-管理员管理-修改密码之后-登录总是报错:用户名密码错误

已完成
创建于  
2018-06-26 18:17

问题描述:
系统管理-管理员管理- 修改密码之后 -登录总是报错:用户名密码错误

原因:
io.renren.modules.sys.service.impl.SysUserServiceImpl#update
方法,修改密码时没有查询出来salt:

	@Override
	@Transactional(rollbackFor = Exception.class)
	public void update(SysUserEntity user) {
		if(StringUtils.isBlank(user.getPassword())){
			user.setPassword(null);
		}else{
			user.setPassword(ShiroUtils.sha256(user.getPassword(), user.getSalt())); // user.getSalt()获得的salt为null
		}
		this.updateById(user);
		
		//保存用户与角色关系
		sysUserRoleService.saveOrUpdate(user.getUserId(), user.getRoleIdList());
	}

修改:

	@Override
	@Transactional(rollbackFor = Exception.class)
	public void update(SysUserEntity user) {
        if(StringUtils.isBlank(user.getPassword())){
			user.setPassword(null);
		}else{
			user.setPassword(ShiroUtils.sha256(user.getPassword(), baseMapper.selectById(user.getUserId()).getSalt())); // 这里去db中查询一下salt。
		}
		this.updateById(user);
		
		//保存用户与角色关系
		sysUserRoleService.saveOrUpdate(user.getUserId(), user.getRoleIdList());
	}

评论 (1)

安小乐 创建了任务
安小乐 更新了任务
安小乐 更新了任务
安小乐 更新了任务

这个salt会从前端传过来,应该是没有问题的

独孤求胜 关闭了任务

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
63154 sunlightcs 1578916030 802123 anxiaole 1578933232
Java
1
https://gitee.com/renrenio/renren-security.git
git@gitee.com:renrenio/renren-security.git
renrenio
renren-security
renren-security

搜索帮助