Browse Source

产品拦截列表放到数据库,并且加载到缓存

gaodm 5 năm trước cách đây
mục cha
commit
56b6d13938

+ 18 - 19
gateway-service/src/main/java/com/diagbot/filter/GlobalGatewayFilter.java

@@ -72,25 +72,26 @@ public class GlobalGatewayFilter implements GlobalFilter {
     @SuppressWarnings("unchecked")
     public Mono<Void> filter(ServerWebExchange serverWebExchange, GatewayFilterChain gatewayFilterChain) {
         log.info("check token and url permission....");
-        LinkedHashSet requiredAttribute
-                = serverWebExchange.getRequiredAttribute(ServerWebExchangeUtils.GATEWAY_ORIGINAL_REQUEST_URL_ATTR);
-        ServerHttpRequest request = serverWebExchange.getRequest();
-        String requestUri = request.getPath().pathWithinApplication().value();
-        String serviceName = "";
-        if (requiredAttribute != null) {
-            Iterator<URI> iterator = requiredAttribute.iterator();
-            while (iterator.hasNext()) {
-                URI next = iterator.next();
-                if (next.getPath().startsWith(GATE_WAY_PREFIX)) {
-                    requestUri = next.getPath().substring(GATE_WAY_PREFIX.length());
-                    serviceName = requestUri.substring(requestUri.indexOf('/') + 1,
-                            requestUri.indexOf('/', 2));
-                }
-            }
-        }
 
         //网关验证产品线接口权限
         if (gatewayValid) {
+            LinkedHashSet requiredAttribute
+                    = serverWebExchange.getRequiredAttribute(ServerWebExchangeUtils.GATEWAY_ORIGINAL_REQUEST_URL_ATTR);
+            ServerHttpRequest request = serverWebExchange.getRequest();
+            String requestUri = request.getPath().pathWithinApplication().value();
+            String serviceName = "";
+            if (requiredAttribute != null) {
+                Iterator<URI> iterator = requiredAttribute.iterator();
+                while (iterator.hasNext()) {
+                    URI next = iterator.next();
+                    if (next.getPath().startsWith(GATE_WAY_PREFIX)) {
+                        requestUri = next.getPath().substring(GATE_WAY_PREFIX.length());
+                        serviceName = requestUri.substring(requestUri.indexOf('/') + 1,
+                                requestUri.indexOf('/', 2));
+                    }
+                }
+            }
+
             ServiceFilterDTO serviceFilterDTO = new ServiceFilterDTO();
             try {
                 serviceFilterDTO = serviceFilterFacade.getServiceFilter();
@@ -102,7 +103,7 @@ public class GlobalGatewayFilter implements GlobalFilter {
             }
             if (serviceFilterDTO.getApiMap().contains(serviceName)) {
                 String productIdStr = request.getHeaders().getFirst("productId");
-                if (StringUtil.isNotBlank(productIdStr)) {
+                if (StringUtil.isBlank(productIdStr)) {
                     RespDTO respDTO = new RespDTO();
                     respDTO.code = CommonErrorCode.PARAM_IS_NULL.getCode();
                     respDTO.msg = "请传入产品ID";
@@ -166,8 +167,6 @@ public class GlobalGatewayFilter implements GlobalFilter {
         }
 
         ServerHttpRequest.Builder builder = serverWebExchange.getRequest().mutate();
-        //        builder.header("Authorization", "Authorization Bearer token");
-        //        gatewayFilterChain.filter(serverWebExchange.mutate().request(builder.build()).build());
         return gatewayFilterChain.filter(serverWebExchange.mutate().request(builder.build()).build());
     }