Selaa lähdekoodia

使用Gateway CacheRequestBody代替CacheRequestFilter

RuoYi 4 kuukautta sitten
vanhempi
commit
79c885decb

+ 0 - 87
ruoyi-gateway/src/main/java/com/ruoyi/gateway/filter/CacheRequestFilter.java

@@ -1,87 +0,0 @@
-package com.ruoyi.gateway.filter;
-
-import java.util.Collections;
-import java.util.List;
-import org.springframework.cloud.gateway.filter.GatewayFilter;
-import org.springframework.cloud.gateway.filter.GatewayFilterChain;
-import org.springframework.cloud.gateway.filter.OrderedGatewayFilter;
-import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
-import org.springframework.cloud.gateway.support.ServerWebExchangeUtils;
-import org.springframework.http.HttpMethod;
-import org.springframework.stereotype.Component;
-import org.springframework.web.server.ServerWebExchange;
-import reactor.core.publisher.Mono;
-
-/**
- * 获取body请求数据(解决流不能重复读取问题)
- * 
- * @author ruoyi
- */
-@Component
-public class CacheRequestFilter extends AbstractGatewayFilterFactory<CacheRequestFilter.Config>
-{
-    public CacheRequestFilter()
-    {
-        super(Config.class);
-    }
-
-    @Override
-    public String name()
-    {
-        return "CacheRequestFilter";
-    }
-
-    @Override
-    public GatewayFilter apply(Config config)
-    {
-        CacheRequestGatewayFilter cacheRequestGatewayFilter = new CacheRequestGatewayFilter();
-        Integer order = config.getOrder();
-        if (order == null)
-        {
-            return cacheRequestGatewayFilter;
-        }
-        return new OrderedGatewayFilter(cacheRequestGatewayFilter, order);
-    }
-
-    public static class CacheRequestGatewayFilter implements GatewayFilter
-    {
-        @Override
-        public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain)
-        {
-            // GET DELETE 不过滤
-            HttpMethod method = exchange.getRequest().getMethod();
-            if (method == null || method == HttpMethod.GET || method == HttpMethod.DELETE)
-            {
-                return chain.filter(exchange);
-            }
-            return ServerWebExchangeUtils.cacheRequestBodyAndRequest(exchange, (serverHttpRequest) -> {
-                if (serverHttpRequest == exchange.getRequest())
-                {
-                    return chain.filter(exchange);
-                }
-                return chain.filter(exchange.mutate().request(serverHttpRequest).build());
-            });
-        }
-    }
-
-    @Override
-    public List<String> shortcutFieldOrder()
-    {
-        return Collections.singletonList("order");
-    }
-
-    static class Config
-    {
-        private Integer order;
-
-        public Integer getOrder()
-        {
-            return order;
-        }
-
-        public void setOrder(Integer order)
-        {
-            this.order = order;
-        }
-    }
-}

+ 0 - 0
sql/ry_20250417.sql → sql/ry_20250425.sql


Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 1 - 1
sql/ry_config_20250224.sql


Kaikkia tiedostoja ei voida näyttää, sillä liian monta tiedostoa muuttui tässä diffissä