超时修改密码

dev2.0
anthonywj 2 years ago
parent 1a30e1b923
commit 5f3aca56b2

@ -295,4 +295,7 @@ public class Constant {
public static final String ORDER_THIRD_STOCK = "stock"; //内部码 public static final String ORDER_THIRD_STOCK = "stock"; //内部码
public static final String SYNC_REMARK = "syncRemark"; public static final String SYNC_REMARK = "syncRemark";
//密码复杂度校验
public static final String passwordReg = "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_.*%@!]+$)(?![a-z0-9]+$)(?![a-z\\W_.;*%@!]+$)(?![0-9\\W_.;*%@!]+$)[a-zA-Z0-9\\W_.;*%@!]{8,20}$";
} }

@ -138,7 +138,11 @@ public class AuthUserController extends BaseController {
//修改用户信息 //修改用户信息
@AuthRuleAnnotation("") @AuthRuleAnnotation("")
@PostMapping("/admin/auth/admin/updateUser") @PostMapping("/admin/auth/admin/updateUser")
public BaseResponse updateUser(@RequestBody UpdateUserRequset updateUserRequset) { public BaseResponse updateUser(@RequestBody @Valid UpdateUserRequset updateUserRequset,BindingResult bindingResult) {
if (bindingResult.hasErrors()) {
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL.getCode(),
bindingResult.getFieldError().getDefaultMessage());
}
AuthAdmin authAdmin = customerService.getUserBean(); AuthAdmin authAdmin = customerService.getUserBean();
System.out.println(updateUserRequset.toString()); System.out.println(updateUserRequset.toString());
if (StringUtils.isBlank(updateUserRequset.getNewPassword())) { if (StringUtils.isBlank(updateUserRequset.getNewPassword())) {

@ -1,5 +1,7 @@
package com.glxp.api.controller.auth; package com.glxp.api.controller.auth;
import cn.hutool.core.date.DateUnit;
import cn.hutool.crypto.SecureUtil;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.annotation.AuthRuleAnnotation;
@ -79,10 +81,14 @@ public class LoginController extends BaseController {
if (authAdmin == null) { if (authAdmin == null) {
throw new JsonException(ResultEnum.DATA_NOT, "用户名或密码错误"); throw new JsonException(ResultEnum.DATA_NOT, "用户名或密码错误");
} }
// && !PasswordUtils.authAdminPwd(loginRequest.getPassword()).equals(authAdmin.getPassWord())
if (!PasswordUtils.authAdminPwd(loginRequest.getPassword()).equals(authAdmin.getPassWord())) { if (!PasswordUtils.authAdminPwd(loginRequest.getPassword()).equals(SecureUtil.sha256(authAdmin.getPassWord()))) {
throw new JsonException(ResultEnum.DATA_NOT, "用户名或密码错误"); throw new JsonException(ResultEnum.DATA_NOT, "用户名或密码错误");
} }
// if (!PasswordUtils.authAdminPwd(loginRequest.getPassword()).equals(authAdmin.getPassWord())) {
// throw new JsonException(ResultEnum.DATA_NOT, "用户名或密码错误");
// }
if (authAdmin.getUserFlag() == 0) { if (authAdmin.getUserFlag() == 0) {
throw new JsonException(ResultEnum.DATA_NOT, "该用户已被禁用!"); throw new JsonException(ResultEnum.DATA_NOT, "该用户已被禁用!");
} }
@ -109,7 +115,7 @@ public class LoginController extends BaseController {
Map<String, Object> claims = new HashMap<>(); Map<String, Object> claims = new HashMap<>();
claims.put("admin_id", authAdmin.getId()); claims.put("admin_id", authAdmin.getId());
String token = JwtUtils.createToken(claims, 86400L); // 一天后过期 String token = JwtUtils.createToken(claims, 1800l); // 一天后过期
Map<String, Object> map = new HashMap<>(); Map<String, Object> map = new HashMap<>();
map.put("id", authAdmin.getId()); map.put("id", authAdmin.getId());
@ -120,7 +126,8 @@ public class LoginController extends BaseController {
loginResponse.setToken(token); loginResponse.setToken(token);
loginResponse.setDept(authAdmin.getLocDeptCode()); loginResponse.setDept(authAdmin.getLocDeptCode());
loginResponse.setDeptName(authAdmin.getDeptName()); loginResponse.setDeptName(authAdmin.getDeptName());
loginResponse.setNeedChangePwd(cn.hutool.core.date.DateUtil.between(authAdmin.getLastUpdatePwdTime() == null ? cn.hutool.core.date.DateUtil.date() : authAdmin.getLastUpdatePwdTime()
, cn.hutool.core.date.DateUtil.date(), DateUnit.DAY) >= 90);
logininforService.recordLogininfor(authAdmin.getEmployeeName(), Constant.LOGIN_SUCCESS, "登录成功!", request); logininforService.recordLogininfor(authAdmin.getEmployeeName(), Constant.LOGIN_SUCCESS, "登录成功!", request);
return ResultVOUtils.success(loginResponse); return ResultVOUtils.success(loginResponse);
@ -370,6 +377,7 @@ public class LoginController extends BaseController {
AuthAdmin authAdminUp = new AuthAdmin(); AuthAdmin authAdminUp = new AuthAdmin();
authAdminUp.setId(authAdmin.getId()); authAdminUp.setId(authAdmin.getId());
authAdminUp.setLastUpdatePwdTime(new Date());
String newPwd = PasswordUtils.authAdminPwd(updatePasswordRequest.getNewPassword()); String newPwd = PasswordUtils.authAdminPwd(updatePasswordRequest.getNewPassword());
authAdminUp.setPassWord(newPwd); authAdminUp.setPassWord(newPwd);
authAdmin.setLastModifyTime(new Date()); authAdmin.setLastModifyTime(new Date());

@ -33,7 +33,11 @@ public class AuthAdmin {
// 状态 // 状态
@TableField("userFlag") @TableField("userFlag")
private Integer userFlag; private Integer userFlag;
/**
*
*/
@TableField("lastUpdatePwdTime")
private Date lastUpdatePwdTime;
@TableField("lastModifyTime") @TableField("lastModifyTime")
private Date lastModifyTime; private Date lastModifyTime;
private String comments; private String comments;

@ -1,9 +1,11 @@
package com.glxp.api.req.auth; package com.glxp.api.req.auth;
import com.glxp.api.constant.Constant;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
/** /**
* *
@ -18,6 +20,8 @@ public class UpdatePasswordRequest {
private String oldPassword; private String oldPassword;
@NotEmpty(message = "请输入新密码") @NotEmpty(message = "请输入新密码")
@Pattern(regexp = Constant.passwordReg
, message = "密码需要包含大写字母、小写字符、数字、特殊字符(含_.*%@!)其中任意三种,长度8-20位")
private String newPassword; private String newPassword;
} }

@ -1,9 +1,12 @@
package com.glxp.api.req.auth; package com.glxp.api.req.auth;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.glxp.api.constant.Constant;
import com.glxp.api.entity.auth.SysRole; import com.glxp.api.entity.auth.SysRole;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Pattern;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -14,6 +17,9 @@ public class UpdateUserRequset {
private String userName; private String userName;
// 登录密码 // 登录密码
private String passWord; private String passWord;
@NotEmpty(message = "请输入新密码")
@Pattern(regexp = Constant.passwordReg
, message = "密码需要包含大写字母、小写字符、数字、特殊字符(含_.*%@!)其中任意三种,长度8-20位")
private String newPassword; private String newPassword;
private String confirmPassword; private String confirmPassword;
// 最后登录ip // 最后登录ip

@ -25,5 +25,7 @@ public class LoginResponse {
*/ */
private List<PdaMainItemEntity> menus; private List<PdaMainItemEntity> menus;
private boolean needChangePwd = false;
} }

@ -89,6 +89,7 @@ public class AuthAdminServiceImpl extends ServiceImpl<AuthAdminDao, AuthAdmin> i
} }
} }
authAdmin.setCreateTime(new Date()); authAdmin.setCreateTime(new Date());
authAdmin.setLastUpdatePwdTime(new Date());
return authAdminDao.insertAuthAdmin(authAdmin); return authAdminDao.insertAuthAdmin(authAdmin);
} }

@ -38,7 +38,6 @@
</if> </if>
</where> </where>
ORDER BY id DESC ORDER BY id DESC
</select> </select>
<select id="findByUserName" parameterType="hashmap" resultType="com.glxp.api.entity.auth.AuthAdmin"> <select id="findByUserName" parameterType="hashmap" resultType="com.glxp.api.entity.auth.AuthAdmin">
@ -70,7 +69,8 @@
<insert id="insertAuthAdmin" keyProperty="id" parameterType="com.glxp.api.entity.auth.AuthAdmin"> <insert id="insertAuthAdmin" keyProperty="id" parameterType="com.glxp.api.entity.auth.AuthAdmin">
INSERT INTO auth_user( id, userName, passWord, lastLoginIp, lastLoginTime, createTime, userFlag INSERT INTO auth_user( id, userName, passWord, lastLoginIp, lastLoginTime, createTime, userFlag
, employeeName, CustomerId, lastModifyTime, locDeptCode, locInvCode, comments) , employeeName, CustomerId, lastModifyTime, locDeptCode, locInvCode, comments
, lastUpdatePwdTime)
values values
(#{id}, #{userName}, (#{id}, #{userName},
<choose> <choose>
@ -105,15 +105,15 @@
#{CustomerId}, #{CustomerId},
#{lastModifyTime}, #{lastModifyTime},
#{locDeptCode}, #{locDeptCode},
#{locInvCode}, #{comments}) #{locInvCode}, #{comments}, #{lastUpdatePwdTime})
</insert> </insert>
<insert id="replaceAuthAdmin" keyProperty="id" parameterType="com.glxp.api.entity.auth.AuthAdmin"> <insert id="replaceAuthAdmin" keyProperty="id" parameterType="com.glxp.api.entity.auth.AuthAdmin">
replace replace
INTO auth_user(id, userName, passWord, lastLoginIp, INTO auth_user(id, userName, passWord, lastLoginIp,
lastLoginTime, createTime, userFlag, lastModifyTime, employeeName,CustomerId,locDeptCode,locInvCode,comments) lastLoginTime, createTime, userFlag, lastModifyTime, employeeName, CustomerId,
values ( locDeptCode, locInvCode, comments, lastUpdatePwdTime)
#{id}, values (#{id},
#{userName}, #{userName},
#{passWord}, #{passWord},
#{lastLoginIp}, #{lastLoginIp},
@ -125,8 +125,7 @@
#{CustomerId}, #{CustomerId},
#{locDeptCode}, #{locDeptCode},
#{locInvCode}, #{locInvCode},
#{comments} #{comments}, #{lastUpdatePwdTime})
)
</insert> </insert>
@ -148,6 +147,9 @@
<if test="lastModifyTime != null"> <if test="lastModifyTime != null">
lastModifyTime=#{lastModifyTime}, lastModifyTime=#{lastModifyTime},
</if> </if>
<if test="lastUpdatePwdTime != null">
lastUpdatePwdTime=#{lastUpdatePwdTime},
</if>
<if test="userFlag != null"> <if test="userFlag != null">
userFlag=#{userFlag}, userFlag=#{userFlag},
</if> </if>
@ -191,14 +193,14 @@
<select id="selectNotSelectUser" resultType="com.glxp.api.entity.auth.AuthAdmin"> <select id="selectNotSelectUser" resultType="com.glxp.api.entity.auth.AuthAdmin">
select * select *
from auth_user left join auth_dept_user on auth_user.id=auth_dept_user.userId from auth_user
left join auth_dept_user on auth_user.id = auth_dept_user.userId
<where> <where>
userFlag != 0 userFlag != 0
<if test="deptId != null and '' != deptId"> <if test="deptId != null and '' != deptId">
AND auth_dept_user.deptId = #{deptId} AND auth_dept_user.deptId = #{deptId}
</if> </if>
<if test="userIds != null and userIds.size() != 0"> <if test="userIds != null and userIds.size() != 0">
and auth_user.id not in and auth_user.id not in
<foreach collection="userIds" item="item" open="(" separator="," close=")"> <foreach collection="userIds" item="item" open="(" separator="," close=")">

@ -896,3 +896,7 @@ CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'checkReview', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'secCheckReview', 'tinyint', 1); CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'secCheckReview', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'thrCheckReview', 'tinyint', 1); CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'thrCheckReview', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'editType', 'tinyint', 1); CALL Pro_Temp_ColumnWork('basic_bussiness_type', 'editType', 'tinyint', 1);
CALL Pro_Temp_ColumnWork('auth_user', 'lastUpdatePwdTime', 'datetime', 1);

Loading…
Cancel
Save