فهرست منبع

feature: 优化静态文件处理

Walker 1 سال پیش
والد
کامیت
267809ff53
1فایلهای تغییر یافته به همراه19 افزوده شده و 1 حذف شده
  1. 19 1
      src/main/java/com/ywt/gateway/filter/AuthGatewayFilterFactory.java

+ 19 - 1
src/main/java/com/ywt/gateway/filter/AuthGatewayFilterFactory.java

@@ -70,6 +70,24 @@ public class AuthGatewayFilterFactory extends AbstractGatewayFilterFactory<HostL
         super(HostLocationInfo.class);
     }
 
+    private boolean isRequest4StaticFiles(String requestUrl) {
+        String[] staticFilesSuffix = new String[]{
+                ".js",
+                ".css",
+                ".png",
+                ".jpg",
+                ".gif",
+                ".jpeg",
+                ".ico",
+        };
+        if (requestUrl != null && !requestUrl.isEmpty()) {
+            for (String suffix : staticFilesSuffix) {
+                if (requestUrl.toLowerCase().endsWith(suffix)) return true;
+            }
+        }
+        return false;
+    }
+
     @Override
     public GatewayFilter apply(HostLocationInfo config) {
         return (exchange, chain) -> {
@@ -102,7 +120,7 @@ public class AuthGatewayFilterFactory extends AbstractGatewayFilterFactory<HostL
             try {
                 String auth = config.getAuth();
                 String protocol = config.getProtocol();
-                if (auth == null || auth.isEmpty()) {
+                if (auth == null || auth.isEmpty() || isRequest4StaticFiles(requestUrl)) {
                     // 不需要授权
                     return chain.filter(exchange).then(Mono.fromRunnable(() -> {
                         proxyPass(config, null, exchange.getResponse().getHeaders(), exchange.getResponse());