Browse Source

登录信息获取修改

chenhongyan1989 1 năm trước cách đây
mục cha
commit
e5ee105c38

+ 2 - 3
energy-manage-service/src/main/java/com/energy/manage/service/config/LoginVerifyInterceptorConf.java

@@ -4,14 +4,13 @@ import com.energy.manage.service.filter.LoginVerifyInterceptor;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.stereotype.Component;
 import org.springframework.web.servlet.HandlerInterceptor;
 import org.springframework.web.servlet.config.annotation.CorsRegistry;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
-
-@Configuration
-@ConditionalOnProperty(value = "energy.login.enabled", havingValue = "true")
+@Component
 public class LoginVerifyInterceptorConf extends WebMvcConfigurationSupport {
 
     @Bean

+ 6 - 16
energy-manage-service/src/main/java/com/energy/manage/service/controller/base/BaseServiceController.java

@@ -4,14 +4,14 @@ import com.energy.manage.common.base.BaseController;
 import com.energy.manage.common.base.Page;
 import com.energy.manage.common.reponse.ResultResp;
 import com.energy.manage.service.domain.dto.BaseDto;
-import com.energy.manage.service.util.JwtUtil;
+import com.energy.manage.service.filter.LoginUser;
+import com.energy.manage.service.filter.LoginUserContextHolder;
 import com.github.pagehelper.PageInfo;
 import org.springframework.web.context.request.RequestAttributes;
 import org.springframework.web.context.request.RequestContextHolder;
 import org.springframework.web.context.request.ServletRequestAttributes;
 
 import java.util.List;
-import java.util.Map;
 
 /**
  * @author chy
@@ -25,16 +25,6 @@ public class BaseServiceController extends BaseController {
      */
     private final static String TOKE_KEY = "token";
 
-    /**
-     * roleId
-     */
-    private final static String ROLE_ID = "roleId";
-
-    /**
-     * roleId
-     */
-    private final static String USER_ID = "userId";
-
 
     /**
      * 无返回数据成功函数
@@ -68,8 +58,8 @@ public class BaseServiceController extends BaseController {
      * 获取登录用户信息  后来在改造
      * @return
      */
-    public Map<String,String> getLoginUser(){
-        return JwtUtil.getJwtMap(getToken());
+    public LoginUser getLoginUser(){
+        return LoginUserContextHolder.get();
     }
 
     /**
@@ -77,7 +67,7 @@ public class BaseServiceController extends BaseController {
      * @return
      */
     public Integer getRoleId(){
-        return Integer.valueOf(getLoginUser().get(ROLE_ID));
+        return getLoginUser().getCurrentRoleId();
     }
 
     /**
@@ -85,7 +75,7 @@ public class BaseServiceController extends BaseController {
      * @return
      */
     public Integer getUserId(){
-        return Integer.valueOf(getLoginUser().get(USER_ID));
+        return getLoginUser().getUserId();
     }
 
     /**

+ 3 - 5
energy-manage-service/src/main/java/com/energy/manage/service/controller/system/SysUserInfoController.java

@@ -289,13 +289,11 @@ public class SysUserInfoController {
             return ResultResp.ERRORPWD();
         }
 
-
-        String token = JwtUtil.getLoginToken(userPO.getId(), userPO.getLoginName(), userPO.getUserPhone(), userPO.getUserPassword());
-        Map<String, Object> map = new HashMap<>(4);
-
         List<PermissionVo> list = permissionService.getRolePermissionByUserId(userPO.getId());
-        userPO.setUserPassword(null);
         SysRolePO rolePO = sysRoleService.getSysRole(userPO.getId());
+        String token = JwtUtil.getLoginToken(userPO.getId(), userPO.getLoginName(), userPO.getUserPhone(), userPO.getUserPassword(), rolePO.getId());
+        userPO.setUserPassword(null);
+        Map<String, Object> map = new HashMap<>();
         map.put("role", rolePO);
         map.put("permission", list);
         map.put("userInfo", userPO);

+ 1 - 0
energy-manage-service/src/main/java/com/energy/manage/service/controller/windfieldbatch/WindFieldBatchController.java

@@ -31,6 +31,7 @@ public class WindFieldBatchController extends BaseServiceController {
     @ApiOperation(value = "风场批次信息列表")
     @GetMapping("/batchList")
     public ResultResp<Page<WindFieldBatchVo>> batchList(WindFieldBatchDto windFieldBatchDto){
+        windFieldBatchDto.setRoleId(getRoleId());
         return pageResult(windFieldBatchService.queryWindFieldBatch(windFieldBatchDto), windFieldBatchDto);
     }
 

+ 27 - 22
energy-manage-service/src/main/java/com/energy/manage/service/filter/LoginVerifyInterceptor.java

@@ -10,6 +10,8 @@ import com.energy.manage.common.exception.TokenInvalidException;
 import com.energy.manage.common.exception.UserNotLoginException;
 import com.energy.manage.service.config.annotations.PassToken;
 import com.energy.manage.service.filter.threadLocal.ThreadContext;
+import com.energy.manage.service.mappers.system.SysUserRoleMapper;
+import com.energy.manage.service.service.system.SysUserRoleService;
 import com.energy.manage.service.util.JwtUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
@@ -36,6 +38,7 @@ import java.util.UUID;
 @Component
 public class LoginVerifyInterceptor implements HandlerInterceptor {
 
+
     private Logger logger = LoggerFactory.getLogger(LoginVerifyInterceptor.class);
 
     @Autowired
@@ -72,22 +75,22 @@ public class LoginVerifyInterceptor implements HandlerInterceptor {
             }
         }
         // 执行认证
-        if (StringUtils.isEmpty(token)) {
-            //如果dev环境并且 token为空,那么可以请求,否则会进行验证
-            if ("dev".equalsIgnoreCase(env)) {
-                if ("dev".equalsIgnoreCase(env)) {
-                    LoginUser devUser = new LoginUser();
-                    devUser.setUserId(-1);
-                    LoginUserContextHolder.set(devUser);
-                    return true;
-                }
-                request.setAttribute("tokenUserId", 9999999L);
-                return true;
-            }
-
-            logger.info("========token不能为null========");
-            throw new TokenInvalidException();
-        }
+//        if (StringUtils.isEmpty(token)) {
+//            //如果dev环境并且 token为空,那么可以请求,否则会进行验证
+//            if ("dev".equalsIgnoreCase(env)) {
+//                if ("dev".equalsIgnoreCase(env)) {
+//                    LoginUser devUser = new LoginUser();
+//                    devUser.setUserId(-1);
+//                    LoginUserContextHolder.set(devUser);
+//                    return true;
+//                }
+//                request.setAttribute("tokenUserId", 9999999L);
+//                return true;
+//            }
+//
+//            logger.info("========token不能为null========");
+//            throw new TokenInvalidException();
+//        }
         // 获取 token 中的 user 信息
         Map<String, String> userMap = null;
         try {
@@ -96,9 +99,11 @@ public class LoginVerifyInterceptor implements HandlerInterceptor {
             if(ObjectUtils.isEmpty(userMap.get("userName"))){
                 throw new TokenInvalidException();
             }
-            devUser.setUserId(Integer.valueOf(userMap.get("userId")));
+            Integer userId = Integer.valueOf(userMap.get("userId"));
+            devUser.setUserId(userId);
             devUser.setUserPhone(userMap.get("userPhone"));
             devUser.setUserName(userMap.get("userName"));
+            devUser.setCurrentRoleId(Integer.valueOf(userMap.get("userRoleId")));
             LoginUserContextHolder.set(devUser);
         } catch (JWTDecodeException j) {
             logger.error(String.format("token:%s  ========> token异常,访问系统被拦截", token));
@@ -106,11 +111,11 @@ public class LoginVerifyInterceptor implements HandlerInterceptor {
         }
         log.info("userMap >>> " + userMap.size() + " userName " + userMap.get("userName"));
         String rediskey = String.format(ManagerRedisKeyConstant.SYSTEM_USER_LOGIN_INFO, userMap.get("userName"));
-        Optional<Object> userOrgJson = Optional.ofNullable(stringRedisTemplate.opsForValue().get(rediskey));
-        if (!userOrgJson.isPresent()) {
-            logger.warn(String.format("用户:%s token失效,访问系统被拦截", userMap.get("userName")));
-            throw new TokenInvalidException();
-        }
+//        Optional<Object> userOrgJson = Optional.ofNullable(stringRedisTemplate.opsForValue().get(rediskey));
+//        if (!userOrgJson.isPresent()) {
+//            logger.warn(String.format("用户:%s token失效,访问系统被拦截", userMap.get("userName")));
+//            throw new TokenInvalidException();
+//        }
         // 验证 token
         JWTVerifier jwtVerifier = JWT.require(Algorithm.HMAC256(userMap.get("userPassword"))).build();
         try {

+ 2 - 2
energy-manage-service/src/main/java/com/energy/manage/service/mappers/system/SysUserRoleMapper.java

@@ -7,7 +7,7 @@ import org.springframework.stereotype.Repository;
 
 /**
  * 用户角色表
- * 
+ *
  * @author sy
  * @date 2021-10-18 13:32:05
  */
@@ -17,5 +17,5 @@ public interface SysUserRoleMapper extends MyMapper<SysUserRolePO> {
     int updateUserRole(@Param("userId") Integer userId,
                        @Param("roleId") Integer roleId);
 
-    String selectRoleCodeByUserId(Integer adminId);
+    Integer selectRoleIdByUserId(Integer adminId);
 }

+ 4 - 2
energy-manage-service/src/main/java/com/energy/manage/service/util/JwtUtil.java

@@ -15,12 +15,13 @@ public class JwtUtil {
      * @param userId
      * @return
      */
-    public static String getLoginToken(Integer userId, String userName, String phone, String password) {
+    public static String getLoginToken(Integer userId, String userName, String phone, String password,Integer userRoleId) {
         String sign = JWT.create()
                 .withClaim("userId", userId)
                 .withClaim("userName", userName)
                 .withClaim("userPhone", phone)
                 .withClaim("userPassword", password)
+                .withClaim("userRoleId", userRoleId)
                 .sign(Algorithm.HMAC256(password));
         return sign;
     }
@@ -49,11 +50,12 @@ public class JwtUtil {
      * @return
      */
     public static Map<String, String> getJwtMap(String token) throws JWTDecodeException {
-        Map<String, String> map = new HashMap<>(4);
+        Map<String, String> map = new HashMap<>();
         map.put("userId", String.valueOf(JWT.decode(token).getClaim("userId").asLong()));
         map.put("userName", JWT.decode(token).getClaim("userName").asString());
         map.put("userPhone", JWT.decode(token).getClaim("userPhone").asString());
         map.put("userPassword", JWT.decode(token).getClaim("userPassword").asString());
+        map.put("userRoleId", String.valueOf(JWT.decode(token).getClaim("userRoleId").asInt()));
         return map;
     }
 

+ 3 - 3
energy-manage-service/src/main/resources/mybatis/system/UserRoleMapper.xml

@@ -6,11 +6,11 @@
         update sys_user_role set role_id = #{roleId} where user_id = #{userId}
     </update>
 
-    <select id="selectRoleCodeByUserId" parameterType="java.lang.Long" resultType="java.lang.String">
+    <select id="selectRoleIdByUserId" parameterType="java.lang.Long" resultType="java.lang.Integer">
         select
-        r.role_code
+        r.role_id
         from sys_role r
         inner join sys_user_role u on u.role_id = r.id
         where u.user_id = #{adminId}
     </select>
-</mapper>
+</mapper>