Quellcode durchsuchen

登录接口、包结构优化

WXF vor 3 Jahren
Ursprung
Commit
995af0efe6
20 geänderte Dateien mit 266 neuen und 148 gelöschten Zeilen
  1. 6 0
      api-common/src/main/java/api/common/pojo/constants/DictConstants.java
  2. 17 0
      api-common/src/main/java/api/common/pojo/param/sign/SignRefreshParameter.java
  3. 1 1
      api-common/src/main/java/api/common/pojo/param/sign/SignSingleParameter.java
  4. 1 1
      api-common/src/main/java/api/common/pojo/param/sign/SignUsernameParameter.java
  5. 0 31
      api-common/src/main/java/api/common/pojo/po/UserPO.java
  6. 22 0
      api-common/src/main/java/api/common/pojo/po/log/LogLoginPO.java
  7. 19 0
      api-common/src/main/java/api/common/pojo/po/system/UserPO.java
  8. 1 1
      api-common/src/main/java/api/common/pojo/vo/sign/SimulationTokenVO.java
  9. 19 0
      api-common/src/main/java/api/common/pojo/vo/system/UserVO.java
  10. 5 0
      simulation-oauth-client/src/main/java/com/css/simulation/oauth/client/configuration/oauth/OauthParameter.java
  11. 81 21
      simulation-oauth-client/src/main/java/com/css/simulation/oauth/client/controller/SignController.java
  12. 30 0
      simulation-oauth-client/src/main/java/com/css/simulation/oauth/client/mapper/LogLoginMapper.java
  13. 42 54
      simulation-oauth-client/src/main/java/com/css/simulation/oauth/client/mapper/UserMapper.java
  14. 1 0
      simulation-oauth-server/src/main/java/com/css/simulation/oauth/server/cofiguration/oauth/MyTokenService.java
  15. 2 3
      simulation-oauth-server/src/main/java/com/css/simulation/oauth/server/cofiguration/oauth/MyUserAuthenticationConverter.java
  16. 2 3
      simulation-oauth-server/src/main/java/com/css/simulation/oauth/server/cofiguration/security/MyUserDetails.java
  17. 3 5
      simulation-oauth-server/src/main/java/com/css/simulation/oauth/server/cofiguration/security/MyUserDetailsService.java
  18. 10 22
      simulation-oauth-server/src/main/java/com/css/simulation/oauth/server/mapper/UserMapper.java
  19. 2 3
      simulation-resource-server/src/main/java/com/css/simulation/resource/common/oauth/MyUserAuthenticationConverter.java
  20. 2 3
      simulation-resource-server/src/main/java/com/css/simulation/resource/common/oauth/MyUserDetails.java

+ 6 - 0
api-common/src/main/java/api/common/pojo/constants/DictConstants.java

@@ -26,6 +26,7 @@ public class DictConstants {
     public static final String EVALUATION_LEVEL = "evaluationLevel";//项目评测等级
     public static final String PROJECT_RUN_STATE = "projectRunState";//项目运行状态
     public static final String VALIDATION_STATUS = "validationStatus";//项目运行状态
+    public static final String ROLE_CODE = "roleCode";//用户类型(角色编码)
 
     public static final String ALGORITHM_FILE = "algorithmFile";//算法文件上传type
 
@@ -83,4 +84,9 @@ public class DictConstants {
     public static final String REPORT_LEVEL_M = "M";
     public static final String REPORT_LEVEL_P = "P";
 
+    public static final String ROLE_CODE_SYSADMIN = "0"; //用户类型-超级管理员
+    public static final String ROLE_CODE_ADMIN = "1"; //用户类型-子管理员
+    public static final String ROLE_CODE_UESR = "2"; //用户类型-普通用户
+    public static final String ROLE_CODE_SUBUESR = "3"; //用户类型-子账户
+
 }

+ 17 - 0
api-common/src/main/java/api/common/pojo/param/sign/SignRefreshParameter.java

@@ -0,0 +1,17 @@
+package api.common.pojo.param.sign;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class SignRefreshParameter {
+
+    @NotBlank(message = "refreshToken不能为空!")
+    private String refreshToken;
+
+}

+ 1 - 1
api-common/src/main/java/api/common/pojo/param/SignSingleParameter.java → api-common/src/main/java/api/common/pojo/param/sign/SignSingleParameter.java

@@ -1,4 +1,4 @@
-package api.common.pojo.param;
+package api.common.pojo.param.sign;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 1 - 1
api-common/src/main/java/api/common/pojo/param/SignUsernameParameter.java → api-common/src/main/java/api/common/pojo/param/sign/SignUsernameParameter.java

@@ -1,4 +1,4 @@
-package api.common.pojo.param;
+package api.common.pojo.param.sign;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 0 - 31
api-common/src/main/java/api/common/pojo/po/UserPO.java

@@ -1,31 +0,0 @@
-package api.common.pojo.po;
-
-import api.common.pojo.common.CommonPO;
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.NoArgsConstructor;
-
-import java.io.Serializable;
-
-/**
- * 用户。
- */
-@EqualsAndHashCode(callSuper = true)
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
-public class UserPO extends CommonPO implements Serializable {
-
-    private String id;              // 用户主键(唯一)
-    private String username;        // 登录用户名
-    private String openid;          // 众工业平台的 openid
-    private String nickname;        // 用户昵称,用于显示
-    private String password;        // 密码(加密)
-    private String phone;
-    private String job;
-    private String isSub;
-    private String parentId;
-    private String role;
-
-}

+ 22 - 0
api-common/src/main/java/api/common/pojo/po/log/LogLoginPO.java

@@ -0,0 +1,22 @@
+package api.common.pojo.po.log;
+
+import lombok.Data;
+
+import java.sql.Timestamp;
+
+@Data
+public class LogLoginPO {
+
+    //主键id
+    private String id;
+    //账户id
+    private String userId;
+    //账户名
+    private String username;
+    //登录IP
+    private String ip;
+    //登录结果
+    private int state;
+    //创建时间
+    private Timestamp createTime;
+}

+ 19 - 0
api-common/src/main/java/api/common/pojo/po/system/UserPO.java

@@ -0,0 +1,19 @@
+package api.common.pojo.po.system;
+
+import api.common.pojo.common.CommonPO;
+import lombok.Data;
+
+@Data
+public class UserPO extends CommonPO {
+
+    private String id;              // 用户主键(唯一)
+    private String username;        // 登录用户名
+    private String nickname;        // 用户昵称,用于显示
+    private String password;        // 密码(加密)
+    private String phone;           // 联系电话
+    private String photo;           // 头像
+    private String company;         // 所属公司
+    private String roleCode;       // 账户角色类型
+    private String visible;         // 是否启用
+    private String openid;          // 众工业平台的 openid
+}

+ 1 - 1
api-common/src/main/java/api/common/pojo/vo/SimulationTokenVO.java → api-common/src/main/java/api/common/pojo/vo/sign/SimulationTokenVO.java

@@ -1,4 +1,4 @@
-package api.common.pojo.vo;
+package api.common.pojo.vo.sign;
 
 import lombok.AllArgsConstructor;
 import lombok.Data;

+ 19 - 0
api-common/src/main/java/api/common/pojo/vo/system/UserVO.java

@@ -0,0 +1,19 @@
+package api.common.pojo.vo.system;
+
+import lombok.Data;
+
+@Data
+public class UserVO {
+
+    private String id;              // 用户主键(唯一)
+    private String username;        // 登录用户名
+    private String nickname;        // 用户昵称,用于显示
+    private String password;        // 密码(加密)
+    private String phone;           // 联系电话
+    private String photo;           // 头像
+    private String company;         // 所属公司
+    private String role_code;       // 账户角色类型
+    private String visible;         // 是否启用
+    private String openid;          // 众工业平台的 openid
+
+}

+ 5 - 0
simulation-oauth-client/src/main/java/com/css/simulation/oauth/client/configuration/oauth/OauthParameter.java

@@ -28,4 +28,9 @@ public class OauthParameter {
     private String simulationClientSecret;
     private String simulationTokenUri;
 
+    private int simulationLoginRepeatCount = 5;
+    private int simulationLoginRepeatHours = 24;
+
+    private String simulationZoogooyUserId = "zoogooy";
+
 }

+ 81 - 21
simulation-oauth-client/src/main/java/com/css/simulation/oauth/client/controller/SignController.java

@@ -1,12 +1,17 @@
 package com.css.simulation.oauth.client.controller;
 
 import api.common.pojo.common.ResponseBodyVO;
-import api.common.pojo.param.SignSingleParameter;
-import api.common.pojo.param.SignUsernameParameter;
-import api.common.pojo.po.UserPO;
-import api.common.pojo.vo.SimulationTokenVO;
+import api.common.pojo.constants.DictConstants;
+import api.common.pojo.param.sign.SignRefreshParameter;
+import api.common.pojo.param.sign.SignSingleParameter;
+import api.common.pojo.param.sign.SignUsernameParameter;
+import api.common.pojo.po.system.UserPO;
+import api.common.pojo.po.log.LogLoginPO;
+import api.common.pojo.vo.sign.SimulationTokenVO;
+import api.common.pojo.vo.system.UserVO;
 import api.common.util.*;
 import com.css.simulation.oauth.client.configuration.oauth.OauthParameter;
+import com.css.simulation.oauth.client.mapper.LogLoginMapper;
 import com.css.simulation.oauth.client.mapper.UserMapper;
 import com.css.simulation.oauth.client.util.EncodeUtil;
 import com.fasterxml.jackson.databind.JsonNode;
@@ -25,6 +30,8 @@ import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
 import java.util.Set;
 
 @Controller
@@ -32,10 +39,12 @@ import java.util.Set;
 @Slf4j
 public class SignController {
 
-    static final String USER_ID = "simulation-oauth-client";
-
     @Resource
     UserMapper userMapper;
+
+    @Resource
+    LogLoginMapper logLoginMapper;
+
     @Autowired
     CloseableHttpClient closeableHttpClient;
     @Autowired
@@ -160,7 +169,7 @@ public class SignController {
         }
         log.info("------- /single 众工业平台用户信息为:" + zoogooyUserJson);
 
-        String username = userRoot.path("data").path("loginName").asText();
+        String username = "zoogooy-" + userRoot.path("data").path("loginName").asText();
         String nickname = userRoot.path("data").path("nickname").asText();
         String password = EncryptUtil.getLowerMD5(oauthParameter.getSimulationDefaultPassword());
 
@@ -173,8 +182,11 @@ public class SignController {
             newUser.setNickname(nickname);
             newUser.setOpenid(openid);
             newUser.setPassword(password);
-            newUser.setCreateUserId(USER_ID);
-            newUser.setModifyUserId(USER_ID);
+            newUser.setCompany("国汽");
+            newUser.setRoleCode(DictConstants.ROLE_CODE_SUBUESR);//默认为国汽账户子账户
+            newUser.setVisible("1");//启动页面登录功能
+            newUser.setCreateUserId(oauthParameter.getSimulationZoogooyUserId());
+            newUser.setModifyUserId(oauthParameter.getSimulationZoogooyUserId());
             newUser.setCreateTime(TimeUtil.getNowForMysql());
             newUser.setModifyTime(TimeUtil.getNowForMysql());
             newUser.setIsDeleted("0");
@@ -213,21 +225,39 @@ public class SignController {
     @RequestMapping("/username")
     @SneakyThrows
     @ResponseBody
-    public ResponseBodyVO<SimulationTokenVO> username(@RequestBody @Validated SignUsernameParameter signSingleParameter) {
-
-        //1 使用 username 查询数据库,是否已在仿真平台存在该用户
+    public ResponseBodyVO<SimulationTokenVO> username(@RequestBody @Validated SignUsernameParameter signSingleParameter, HttpServletRequest request) {
+        log.info("登录参数为:" + signSingleParameter);
         String username = signSingleParameter.getUsername();
         String password = signSingleParameter.getPassword();
-        log.info("登录参数为:" + signSingleParameter);
-        UserPO oldUser = userMapper.selectByUsername(username);
-        if (oldUser == null) {   //2-1 仿真平台不存在用户,直接创建新的
-            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "不存在该用户!");
-        } else { //2-2 仿真平台存在用户判断密码
-            if (!oldUser.getPassword().equals(password)) {
-                return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "密码错误!");
+        //密码加密
+        password = EncryptUtil.getLowerMD5(password);
+        UserVO userVO = userMapper.selectByUsername(username);
+        //登录日志
+        LogLoginPO po = new LogLoginPO();
+        po.setId(StringUtil.getRandomUUID());
+        po.setCreateTime(TimeUtil.getNowForMysql());
+        po.setIp(request.getRemoteAddr());
+        //登录逻辑判断
+        if (userVO == null ) {
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "用户名或密码错误!");
+        }else if("0".equals(userVO.getVisible())){
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "账户已停用!");
+        }else if(!userVO.getPassword().equals(password)) {
+            //记录登录错误日志
+            po.setUserId(userVO.getId());
+            po.setUsername(userVO.getUsername());
+            po.setState(0);
+            logLoginMapper.insertLog(po);
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "用户名或密码错误!");
+        }
+        //根据登录日志判断是否锁定账户
+        List<LogLoginPO> log = logLoginMapper.selectLogByUserId(userVO.getId(),oauthParameter.getSimulationLoginRepeatHours(),oauthParameter.getSimulationLoginRepeatCount());
+        if(ObjectUtil.isNotNull(log) && log.size() >= oauthParameter.getSimulationLoginRepeatCount()){
+            int sum = log.stream().mapToInt(m -> m.getState()).sum();
+            if(sum <= 0){
+                return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "登录失败次数过多,账户被锁定,请" + oauthParameter.getSimulationLoginRepeatHours() + "小时后重新登录!");
             }
         }
-
         //3 根据仿真平台用户名密码颁发仿真平台 token,返回给前端
         String simulationTokenUrl = oauthParameter.getSimulationTokenUri() +
                 "?grant_type=password" +
@@ -236,11 +266,41 @@ public class SignController {
                 "&username=" + username +
                 "&password=" + password;
         String simulationToken = HttpUtil.get(closeableHttpClient, requestConfig, simulationTokenUrl);
-        System.out.println("------- 仿真平台令牌信息为:" + simulationToken);
         SimulationTokenVO simulationTokenVO = JsonUtil.jsonToBean(simulationToken, SimulationTokenVO.class);
+        //记录登录成功日志
+        po.setUserId(userVO.getId());
+        po.setUsername(userVO.getUsername());
+        po.setState(1);
+        logLoginMapper.insertLog(po);
         return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, simulationTokenVO);
     }
 
+    /**
+     * 令牌刷新
+     *
+     * @return token 信息
+     */
+    @RequestMapping("/refreshToken")
+    @ResponseBody
+    public ResponseBodyVO<SimulationTokenVO> refreshToken(@RequestBody @Validated SignRefreshParameter signRefreshParameter) {
+        String refreshToken = signRefreshParameter.getRefreshToken();
+        //刷新令牌
+        String simulationTokenUrl = oauthParameter.getSimulationTokenUri() +
+                "?grant_type=refresh_token" +
+                "&client_id=" + oauthParameter.getSimulationClientId() +
+                "&client_secret=" + oauthParameter.getSimulationClientSecret() +
+                "&refresh_token=" + refreshToken;
+        try {
+            String simulationToken = HttpUtil.get(closeableHttpClient, requestConfig, simulationTokenUrl);
+            SimulationTokenVO simulationTokenVO = JsonUtil.jsonToBean(simulationToken, SimulationTokenVO.class);
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.SUCCESS, simulationTokenVO);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return new ResponseBodyVO<>(ResponseBodyVO.Response.CLIENT_FAILURE, "Invalid refresh token");
+        }
+
+    }
+
     /**
      * 服务监控
      */

+ 30 - 0
simulation-oauth-client/src/main/java/com/css/simulation/oauth/client/mapper/LogLoginMapper.java

@@ -0,0 +1,30 @@
+package com.css.simulation.oauth.client.mapper;
+
+import api.common.pojo.po.log.LogLoginPO;
+import org.apache.ibatis.annotations.*;
+
+import java.util.List;
+
+@Mapper
+public interface LogLoginMapper {
+
+    @Select("SELECT" +
+            " state" +
+            " FROM log_login" +
+            " WHERE " +
+            " create_time >= (NOW() - INTERVAL #{hours} HOUR)" +
+            " and user_id = #{userId}" +
+            " ORDER BY create_time DESC" +
+            " LIMIT #{counter}")
+    @ResultType(LogLoginPO.class)
+    List<LogLoginPO> selectLogByUserId(@Param("userId") String userId,@Param("hours") int hours,@Param("counter") int counter);
+
+    @Insert("INSERT INTO log_login(id,user_id,username,ip,state,create_time)" +
+            " VALUES(#{log.id}," +
+            " #{log.userId}," +
+            " #{log.username}," +
+            " #{log.ip}," +
+            " #{log.state}," +
+            " #{log.createTime})")
+    void insertLog(@Param("log") LogLoginPO logLoginPO);
+}

+ 42 - 54
simulation-oauth-client/src/main/java/com/css/simulation/oauth/client/mapper/UserMapper.java

@@ -1,70 +1,58 @@
 package com.css.simulation.oauth.client.mapper;
 
 
-import api.common.pojo.po.UserPO;
+import api.common.pojo.po.system.UserPO;
+import api.common.pojo.vo.system.UserVO;
 import org.apache.ibatis.annotations.*;
-import org.apache.ibatis.type.JdbcType;
 
 @Mapper
 public interface UserMapper {
 
-    @Results(id = "user", value = {
-            @Result(property = "id", column = "id", jdbcType = JdbcType.VARCHAR),
-            @Result(property = "username", column = "username", jdbcType = JdbcType.VARCHAR),
-            @Result(property = "password", column = "password", jdbcType = JdbcType.VARCHAR),
-            @Result(property = "isDeleted", column = "is_deleted", jdbcType = JdbcType.VARCHAR)
-    })
-    @Select("select id,\n" +
-            "       username,\n" +
-            "       password,\n" +
-            "       is_deleted\n" +
-            "from system_user\n" +
-            "where openid = #{openid}")
+    @Select("select id," +
+            " username," +
+            " password," +
+            " is_deleted" +
+            " from system_user" +
+            " where openid = #{openid}")
+    @ResultType(UserPO.class)
     UserPO selectByOpenIdIgnoreDelete(@Param("openid") String openid);
 
-
-    @ResultMap("user")
-    @Select("select id,\n" +
-            "       username,\n" +
-            "       password\n" +
-            "from system_user\n" +
-            "where is_deleted = '0'\n" +
-            "   and is_deactivate = '0'" +
-            "   and username = #{username}")
-    UserPO selectByUsername(@Param("username") String username);
-
-    @Update("update system_user\n" +
-            "set is_delete = #{isDeleted}\n" +
-            "   where openid = #{openid}")
+    @Select("SELECT" +
+            " id," +
+            " username," +
+            " password," +
+            " visible" +
+            " FROM system_user " +
+            " WHERE is_deleted = '0' " +
+            " and username = #{username}")
+    @ResultType(UserVO.class)
+    UserVO selectByUsername(@Param("username") String username);
+
+    @Update("update system_user" +
+            " set is_delete = #{isDeleted}" +
+            " where openid = #{openid}")
     void updateIsDeleted(@Param("openid") String openid,@Param("isDeleted") String isDeleted);
 
-
-
-
     //* -------------------------------- insert --------------------------------
-    @Insert("insert into system_user(id,\n" +
-            "                        username,\n" +
-            "                        nickname,\n" +
-            "                        openid,\n" +
-            "                        password,\n" +
-            "                        create_time,\n" +
-            "                        modify_time,\n" +
-            "                        create_user_id,\n" +
-            "                        modify_user_id,\n" +
-            "                        is_deleted)\n" +
-            "values (\n" +
-            "           #{user.id},\n" +
-            "           #{user.username},\n" +
-            "           #{user.nickname},\n" +
-            "           #{user.openid},\n" +
-            "           #{user.password},\n" +
-            "           #{user.createTime},\n" +
-            "           #{user.modifyTime},\n" +
-            "           #{user.createUserId},\n" +
-            "           #{user.modifyUserId},\n" +
-            "           #{user.isDeleted}\n" +
-            "       )")
+    @Insert("insert into system_user(" +
+            " id,username,nickname,openid,password," +
+            " company,role_code,visible," +
+            " create_time,modify_time,create_user_id,modify_user_id,is_deleted)" +
+            " values (" +
+            " #{user.id}," +
+            " #{user.username}," +
+            " #{user.nickname}," +
+            " #{user.openid}," +
+            " #{user.password}," +
+            " #{user.company}," +
+            " #{user.roleCode}," +
+            " #{user.visible}," +
+            " #{user.createTime}," +
+            " #{user.modifyTime}," +
+            " #{user.createUserId}," +
+            " #{user.modifyUserId}," +
+            " #{user.isDeleted}" +
+            " )")
     void insert(@Param("user") UserPO userPO);
 
-
 }

+ 1 - 0
simulation-oauth-server/src/main/java/com/css/simulation/oauth/server/cofiguration/oauth/MyTokenService.java

@@ -31,6 +31,7 @@ public class MyTokenService {
         DefaultTokenServices services = new DefaultTokenServices();
         services.setClientDetailsService(clientDetailsService);     // 客户端详情服务,获取 ClientDetailsServiceConfigurer 中配置的客户端
         services.setSupportRefreshToken(true);      // 允许令牌自动刷新
+        services.setReuseRefreshToken(false);       //禁止refreshToken重复使用
         services.setTokenStore(tokenStore);         // 令牌存储策略
 //        services.setTokenEnhancer(jwtAccessTokenConverter);         // 使用 jwt 令牌
         services.setAccessTokenValiditySeconds(accessTokenValiditySeconds);   // 令牌默认有效期 2 小时

+ 2 - 3
simulation-oauth-server/src/main/java/com/css/simulation/oauth/server/cofiguration/oauth/MyUserAuthenticationConverter.java

@@ -19,9 +19,8 @@ public class MyUserAuthenticationConverter extends DefaultUserAuthenticationConv
         //1 用户基本信息
         response.put("id", myUserDetails.getId());
         response.put("username", authentication.getName());
-        response.put("phone", myUserDetails.getPhone());
-        response.put("isSub", myUserDetails.getIsSub());
-        response.put("parentId", myUserDetails.getParentId());
+        response.put("roleCode", myUserDetails.getRoleCode());
+        response.put("createUserId", myUserDetails.getCreateUserId());
         //2 用户权限信息
         if (authentication.getAuthorities() != null && !authentication.getAuthorities().isEmpty()) {
             response.put(AUTHORITIES, AuthorityUtils.authorityListToSet(authentication.getAuthorities()));

+ 2 - 3
simulation-oauth-server/src/main/java/com/css/simulation/oauth/server/cofiguration/security/MyUserDetails.java

@@ -19,9 +19,8 @@ public class MyUserDetails implements UserDetails, Serializable {
     private String id;
     private String username;
     private String password;
-    private String phone;
-    private String isSub;
-    private String parentId;
+    private String roleCode;
+    private String createUserId;
     private Set<GrantedAuthority> authorities;
 
 

+ 3 - 5
simulation-oauth-server/src/main/java/com/css/simulation/oauth/server/cofiguration/security/MyUserDetailsService.java

@@ -1,7 +1,7 @@
 package com.css.simulation.oauth.server.cofiguration.security;
 
 
-import api.common.pojo.po.UserPO;
+import api.common.pojo.po.system.UserPO;
 import api.common.util.CollectionUtil;
 import com.css.simulation.oauth.server.mapper.UserMapper;
 import org.springframework.security.core.authority.SimpleGrantedAuthority;
@@ -21,14 +21,12 @@ public class MyUserDetailsService implements UserDetailsService {
     @Override
     public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
         UserPO userPO = userMapper.selectByUsername(username);
-
         return new MyUserDetails(
                 userPO.getId(),
                 userPO.getUsername(),
                 userPO.getPassword(),
-                userPO.getPhone(),
-                userPO.getIsSub(),
-                userPO.getParentId(),
+                userPO.getRoleCode(),
+                userPO.getCreateUserId(),
                 CollectionUtil.createHashSet(new SimpleGrantedAuthority("default11111111111"))
         );
     }

+ 10 - 22
simulation-oauth-server/src/main/java/com/css/simulation/oauth/server/mapper/UserMapper.java

@@ -1,35 +1,23 @@
 package com.css.simulation.oauth.server.mapper;
 
 
-import api.common.pojo.po.UserPO;
+import api.common.pojo.po.system.UserPO;
 import org.apache.ibatis.annotations.*;
-import org.apache.ibatis.type.JdbcType;
 
 /**
- * 将查询接口放到第一个,用于写 @Results注解
+ * 查询用户
  */
 @Mapper
 public interface UserMapper {
 
-    //* -------------------------------- select --------------------------------
-
-    @Results(id = "user", value = {
-            @Result(property = "id", column = "id", jdbcType = JdbcType.VARCHAR),
-            @Result(property = "username", column = "username", jdbcType = JdbcType.VARCHAR),
-            @Result(property = "password", column = "password", jdbcType = JdbcType.VARCHAR),
-            @Result(property = "phone", column = "phone", jdbcType = JdbcType.VARCHAR),
-            @Result(property = "isSub", column = "is_sub", jdbcType = JdbcType.VARCHAR),
-            @Result(property = "parentId", column = "parent_id", jdbcType = JdbcType.VARCHAR)
-    })
-    @Select("select id,\n" +
-            "       username,\n" +
-            "       password,\n" +
-            "       phone,\n" +
-            "       is_sub,\n" +
-            "       parent_id\n" +
-            "from system_user\n" +
-            "where is_deleted = '0'" +
-            "   and username = #{username}")
+    @Select("select id," +
+            " username," +
+            " password," +
+            " role_code," +
+            " create_user_id" +
+            " from system_user" +
+            " where is_deleted = '0'" +
+            " and username = #{username}")
     UserPO selectByUsername(@Param("username") String username);
 
 

+ 2 - 3
simulation-resource-server/src/main/java/com/css/simulation/resource/common/oauth/MyUserAuthenticationConverter.java

@@ -31,9 +31,8 @@ public class MyUserAuthenticationConverter extends DefaultUserAuthenticationConv
         MyUserDetails userDetails = new MyUserDetails();
         userDetails.setId((String) map.get("id"));
         userDetails.setUsername((String) map.get("username"));
-        userDetails.setPhone((String) map.get("phone"));
-        userDetails.setIsSub((String) map.get("isSub"));
-        userDetails.setParentId((String) map.get("parentId"));
+        userDetails.setRoleCode((String) map.get("roleCode"));
+        userDetails.setCreateUserId((String) map.get("createUserId"));
         return new UsernamePasswordAuthenticationToken(userDetails, "N/A", list);
     }
 

+ 2 - 3
simulation-resource-server/src/main/java/com/css/simulation/resource/common/oauth/MyUserDetails.java

@@ -19,9 +19,8 @@ public class MyUserDetails implements UserDetails, Serializable {
     private String id;
     private String username;
     private String password;
-    private String phone;
-    private String isSub;
-    private String parentId;
+    private String roleCode;
+    private String createUserId;
     private Set<GrantedAuthority> authorities;