18339543638 пре 1 година
родитељ
комит
54cc465968

+ 3 - 0
nb-auth/src/main/java/com/nb/auth/bean/AuthInfo.java

@@ -28,4 +28,7 @@ public class AuthInfo {
     private long activityTimeout;
     @ApiModelProperty("权限体系名称")
     private String loginType;
+
+    @ApiModelProperty("是否需要修改密码")
+    private Boolean pswNeedReset;
 }

+ 2 - 0
nb-auth/src/main/java/com/nb/auth/bean/LoginUser.java

@@ -93,4 +93,6 @@ public class LoginUser<T> implements Serializable {
      * 是否为超级管理员
      */
     private boolean isSuperAdmin;
+
+    private Boolean pswNeedReset=false;
 }

+ 2 - 0
nb-auth/src/main/java/com/nb/auth/controller/AuthController.java

@@ -7,6 +7,7 @@ import com.nb.auth.granter.TokenParameter;
 import com.nb.auth.utils.SecurityUtil;
 import com.nb.core.exception.CustomException;
 import com.nb.core.result.R;
+import com.nb.core.utils.PswUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Value;
@@ -59,6 +60,7 @@ public class AuthController {
                 .grantType(req.getGrantType())
                 .loginType(grant.getLoginType())
                 .token(grant.getToken())
+                .pswNeedReset(grant.getPswNeedReset())
                 .build());
     }
 

+ 1 - 1
nb-service/web-service/src/main/java/com/nb/web/service/system/utils/PswUtils.java → nb-core/src/main/java/com/nb/core/utils/PswUtils.java

@@ -1,4 +1,4 @@
-package com.nb.web.service.system.utils;
+package com.nb.core.utils;
 
 
 /**

+ 4 - 3
nb-service/web-service/src/main/java/com/nb/web/service/system/auth/DefaultAccountOperator.java

@@ -1,6 +1,5 @@
 package com.nb.web.service.system.auth;
 
-import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -20,7 +19,7 @@ import com.nb.web.service.system.entity.SysUser;
 import com.nb.web.service.system.service.ISysMenuService;
 import com.nb.web.service.system.service.ISysRoleService;
 import com.nb.web.service.system.service.ISysUserService;
-import com.nb.web.service.system.utils.PswUtils;
+import com.nb.core.utils.PswUtils;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Component;
 import java.util.*;
@@ -138,11 +137,13 @@ public class DefaultAccountOperator implements IAccountOperator {
         if (PswUtils.validatePsw(newPass)) {
             throw new CustomException("密码由8~16位大小写字母、数字及特殊字符等混合、随机组成(至少包括数字、小写字母、大写字母和特殊符号中的三种)");
         }
+        boolean validatePsw = PswUtils.validatePsw(newPass);
         String encryptPassword = SecurityUtil.encryptPassword(newPass);
         return sysUserService
                 .update(new UpdateWrapper<SysUser>()
                         .lambda().eq(SysUser::getId,userId)
-                        .set(SysUser::getPassword,encryptPassword));
+                        .set(SysUser::getPassword,encryptPassword)
+                        .set(SysUser::getPswNeedReset,validatePsw));
     }
 
     private List<RouteItemVO> getChildrenList(SysMenu root, List<SysMenu> list) {

+ 2 - 2
nb-service/web-service/src/main/java/com/nb/web/service/system/auth/WebAuthGranter.java

@@ -2,7 +2,6 @@ package com.nb.web.service.system.auth;
 
 import cn.dev33.satoken.spring.SpringMVCUtil;
 import cn.dev33.satoken.stp.StpLogic;
-import cn.hutool.Hutool;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -24,7 +23,7 @@ import com.nb.web.service.system.service.ISysMenuService;
 import com.nb.web.service.system.service.ISysRoleService;
 import com.nb.web.service.system.service.ISysUserService;
 import com.nb.web.service.system.utils.CaptchaTool;
-import com.nb.web.service.system.utils.PswUtils;
+import com.nb.core.utils.PswUtils;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
@@ -124,6 +123,7 @@ public class WebAuthGranter implements IAuthGranter {
         loginUser.setNickName(sysUser.getNickname());
         loginUser.setId(sysUser.getId());
         loginUser.setLoginType(StpTypeEnum.DEFAULT.getText());
+        loginUser.setPswNeedReset(sysUser.getPswNeedReset());
         fillUserAgentInfo(loginUser);
         // 设置用户信息
         stpLogic.getTokenSession().set(LOGIN_USER_KEY,loginUser);