修改密码剔除登录状态

master
baize 2024-04-12 15:43:20 +08:00
parent e1a82e881c
commit 9cb3404b26
3 changed files with 31 additions and 9 deletions

View File

@ -58,7 +58,7 @@ public class SysPasswordService {
retryCount = retryCount + 1;
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, String.format("密码输入错误%s次", retryCount));
redisService.setCacheObject(getCacheKey(username), retryCount, lockTime, TimeUnit.MINUTES);
throw new ServiceException("用户不存在/密码错误");
throw new ServiceException("用户/邮箱不存在/密码错误");
} else {
clearLoginRecordCache(username);
}

View File

@ -14,6 +14,7 @@ import com.muyu.common.system.domain.SysDept;
import com.muyu.common.system.domain.SysRole;
import com.muyu.common.system.domain.SysUser;
import com.muyu.common.system.domain.LoginUser;
import com.muyu.system.domain.SysUserOnline;
import com.muyu.system.domain.resp.AuthRoleResp;
import com.muyu.system.domain.resp.UserDetailInfoResp;
import com.muyu.system.domain.resp.UserInfoResp;
@ -55,6 +56,8 @@ public class SysUserController extends BaseController {
@Autowired
private SysConfigService configService;
@Autowired
private SysUserOnlineController sysUserOnlineController;
/**
*
@ -232,15 +235,25 @@ public class SysUserController extends BaseController {
/**
*
*/
@RequiresPermissions("system:user:edit")
@RequiresPermissions("`system:user:edit")
@Log(title = "用户管理", businessType = BusinessType.UPDATE)
@PutMapping("/resetPwd")
public Result resetPwd (@RequestBody SysUser user) {
userService.checkUserAllowed(user);
userService.checkUserDataScope(user.getUserId());
user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
SysUser sysUser = userService.selectUserById(user.getUserId());
userService.checkUserAllowed(sysUser);
userService.checkUserDataScope(sysUser.getUserId());
user.setPassword(SecurityUtils.encryptPassword(sysUser.getPassword()));
user.setUpdateBy(SecurityUtils.getUsername());
return toAjax(userService.resetPwd(user));
Result<TableDataInfo<SysUserOnline>> list = sysUserOnlineController.list(user.getLoginIp(), user.getUserName());
System.out.println(list);
TableDataInfo<SysUserOnline> data = list.getData();
List<SysUserOnline> rows = data.getRows();
for (SysUserOnline row : rows) {
if (row.getUserName().equals(sysUser.getUserName())){
sysUserOnlineController.forceLogout(row.getTokenId());
}
}
return toAjax(userService.resetPwd(sysUser));
}
/**

View File

@ -3,10 +3,13 @@ package com.muyu.system.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.constant.UserConstants;
import com.muyu.common.core.exception.ServiceException;
import com.muyu.common.core.utils.JwtUtils;
import com.muyu.common.core.utils.SpringUtils;
import com.muyu.common.core.utils.StringUtils;
import com.muyu.common.core.utils.bean.BeanValidators;
import com.muyu.common.datascope.annotation.DataScope;
import com.muyu.common.redis.service.RedisService;
import com.muyu.common.security.auth.AuthUtil;
import com.muyu.common.security.utils.SecurityUtils;
import com.muyu.common.system.domain.SysRole;
import com.muyu.common.system.domain.SysUser;
@ -19,10 +22,12 @@ import com.muyu.system.service.SysConfigService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Validator;
import java.util.ArrayList;
import java.util.List;
@ -336,9 +341,15 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
*
* @return
*/
@Autowired
private RedisService redisService;
@Autowired
private StringRedisTemplate redisTemplate;
@Override
public int resetPwd (SysUser user) {
return userMapper.updateUser(user);
int i = userMapper.updateUser(user);
return i;
}
/**
@ -500,6 +511,4 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
return successMsg.toString();
}
}