Explorar o código

增加异常统一返回错误信息过滤器

dengsixing %!s(int64=3) %!d(string=hai) anos
pai
achega
c5d462947a

+ 1 - 0
src/main/java/com/fdkankan/gateway/decorator/ResponseDecorator.java

@@ -12,6 +12,7 @@ import org.springframework.core.io.buffer.DataBufferUtils;
 import org.springframework.core.io.buffer.DefaultDataBufferFactory;
 import org.springframework.http.server.reactive.ServerHttpResponse;
 import org.springframework.http.server.reactive.ServerHttpResponseDecorator;
+import org.springframework.stereotype.Component;
 import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
 

+ 1 - 1
src/main/java/com/fdkankan/gateway/factory/OfficialTokenFilterGatewayFilterFactory.java

@@ -8,7 +8,7 @@ import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFac
 import org.springframework.stereotype.Component;
 
 /**
- * 第三方系统访问过滤器
+ * token校验过滤器
  */
 @Component
 public class OfficialTokenFilterGatewayFilterFactory extends AbstractGatewayFilterFactory<Object> {

+ 25 - 0
src/main/java/com/fdkankan/gateway/factory/ResponseFilterGatewayFilterFactory.java

@@ -0,0 +1,25 @@
+package com.fdkankan.gateway.factory;
+
+import com.fdkankan.gateway.filter.OfficialTokenFilter;
+import com.fdkankan.gateway.filter.ResponseFilter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.gateway.filter.GatewayFilter;
+import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
+import org.springframework.stereotype.Component;
+
+/**
+ * 异常统一返回错误信息过滤器
+ */
+@Component
+public class ResponseFilterGatewayFilterFactory extends AbstractGatewayFilterFactory<Object> {
+
+    @Autowired
+    private ResponseFilter responseFilter;
+
+    @Override
+    public GatewayFilter apply(Object filter) {
+        return responseFilter;
+    }
+}
+
+

+ 0 - 32
src/main/java/com/fdkankan/gateway/filter/RequestGlobalFilter.java

@@ -1,32 +0,0 @@
-//package com.fdkankan.gateway.filter;
-//
-//import com.fdkankan.gateway.decorator.ResponseDecorator;
-//import org.springframework.cloud.gateway.filter.GatewayFilterChain;
-//import org.springframework.cloud.gateway.filter.GlobalFilter;
-//import org.springframework.core.Ordered;
-//import org.springframework.stereotype.Component;
-//import org.springframework.web.server.ServerWebExchange;
-//import reactor.core.publisher.Mono;
-//
-///**
-// * <p>
-// * 此过滤器用于修改响应体,用于系统报错统一返回错误信息
-// * </p>
-// *
-// * @author dengsixing
-// * @since 2022/4/7
-// **/
-//@Component
-//public class RequestGlobalFilter implements GlobalFilter, Ordered {
-//
-//    @Override
-//    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
-//        ResponseDecorator decorator = new ResponseDecorator(exchange.getResponse());
-//        return chain.filter(exchange.mutate().response(decorator).build());
-//    }
-//
-//    @Override
-//    public int getOrder() {
-//        return -99;
-//    }
-//}

+ 37 - 0
src/main/java/com/fdkankan/gateway/filter/ResponseFilter.java

@@ -0,0 +1,37 @@
+package com.fdkankan.gateway.filter;
+
+import com.fdkankan.gateway.decorator.ResponseDecorator;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.cloud.context.config.annotation.RefreshScope;
+import org.springframework.cloud.gateway.filter.GatewayFilter;
+import org.springframework.cloud.gateway.filter.GatewayFilterChain;
+import org.springframework.cloud.gateway.filter.GlobalFilter;
+import org.springframework.core.Ordered;
+import org.springframework.stereotype.Component;
+import org.springframework.web.server.ServerWebExchange;
+import reactor.core.publisher.Mono;
+
+/**
+ * <p>
+ * 此过滤器用于修改响应体,用于系统报错统一返回错误信息
+ * </p>
+ *
+ * @author dengsixing
+ * @since 2022/4/7
+ **/
+@Slf4j
+@Component
+@RefreshScope
+public class ResponseFilter implements GatewayFilter, Ordered {
+
+    @Override
+    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
+        ResponseDecorator decorator = new ResponseDecorator(exchange.getResponse());
+        return chain.filter(exchange.mutate().response(decorator).build());
+    }
+
+    @Override
+    public int getOrder() {
+        return -99;
+    }
+}