“mitao”
2026-03-13 fdcc1e9b827738a18cddaee9119ee6efa21e5386
xp-robotaxi-gateway-boot/src/main/java/com/xiaopeng/gateway/filter/AuthFilter.java
@@ -66,18 +66,37 @@
      }catch (Exception e){
         return unauthorizedResponse(exchange, e.getMessage());
      }
      String token = getToken(request);
      Claims claims = JwtUtils.parseToken(token);
      String userkey = JwtUtils.getUserKey(claims);
      String userid = JwtUtils.getUserId(claims);
      String username = JwtUtils.getUserName(claims);
      String userType = JwtUtils.getUserType(claims);
      String operationUserKey = JwtUtils.getOperationUserKey(claims);
      String redisKey = "";
      if ("system".equals(userType)) {
         redisKey = StringUtils.isNotBlank(userkey) ? getTokenKey(userkey) : "";
      }
      if ("operation".equals(userType)) {
         redisKey = StringUtils.isNotBlank(operationUserKey) ? getTokenKey(operationUserKey) : "";
      }
      if (StringUtils.isBlank(redisKey)) {
         return unauthorizedResponse(exchange, "登录状态已过期");
      }
      boolean islogin = redisService.hasKey(redisKey);
      if (!islogin)
      {
         return unauthorizedResponse(exchange, "登录状态已过期");
      }
      // 设置用户信息到请求
      addHeader(mutate, SecurityConstants.USER_KEY, userkey);
      addHeader(mutate, SecurityConstants.DETAILS_USER_ID, userid);
      addHeader(mutate, SecurityConstants.DETAILS_USERNAME, username);
      addHeader(mutate, SecurityConstants.USER_TYPE, userType);
      addHeader(mutate, SecurityConstants.OPERATION_USER_KEY, operationUserKey);
      // 内部请求来源参数清除
      removeHeader(mutate, SecurityConstants.FROM_SOURCE);
      return chain.filter(exchange.mutate().request(mutate.build()).build());