Pu Zhibing
2025-04-22 fd7b8fb7c89832c28a838b0449bbb8a392433ee2
ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/AuthFilter.java
@@ -1,5 +1,6 @@
package com.ruoyi.gateway.filter;
import com.ruoyi.common.core.exception.auth.NotPermissionException;
import com.ruoyi.gateway.config.properties.AntiShakeProperties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -24,6 +25,7 @@
import io.jsonwebtoken.Claims;
import reactor.core.publisher.Mono;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;
@@ -131,7 +133,7 @@
   /**
    * 防抖处理
    */
   public void antiShake(ServerHttpRequest request) throws Exception{
   public void antiShake(ServerHttpRequest request) {
      HttpMethod method = request.getMethod();
      if(HttpMethod.OPTIONS == method || !antiShakeProperties.getEnable()){
         return;
@@ -174,20 +176,25 @@
   /**
    * 验证token
    * @param request
    * @throws Exception
    */
   public void verifyToken(ServerHttpRequest request) throws Exception{
   public void verifyToken(ServerHttpRequest request) {
      String token = getToken(request);
      if (StringUtils.isEmpty(token)) {
         throw new RuntimeException("令牌不能为空");
         throw new NotPermissionException("令牌不能为空");
      }
      Claims claims = JwtUtils.parseToken(token);
      if (claims == null) {
         throw new RuntimeException("令牌已过期或验证不正确!");
         throw new NotPermissionException("令牌已过期或验证不正确!");
      }else{
         Object o = claims.get(SecurityConstants.EXPIRATION_TIME);
         Long time = Long.valueOf(o.toString());
         if(null == time || time <= System.currentTimeMillis()){
            throw new NotPermissionException("令牌已过期!");
         }
      }
      String userid = JwtUtils.getUserId(claims);
      if (StringUtils.isEmpty(userid)) {
         throw new RuntimeException("令牌验证失败");
         throw new NotPermissionException("令牌验证失败");
      }
   }