Gateway:全局过滤器基本使用

发布于 2022-04-22  889 次阅读


重写Ordered和GlobalFilter

class AuthFilter implements GlobalFilter, Ordered {}

getOrderf返回数值越小,优先级越高

    @Override
    public int getOrder() {
        return NettyWriteResponseFilter.WRITE_RESPONSE_FILTER_ORDER - 1;
    }

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {}

Getaway返回响应体

public class ResponeUtils {
    public DataBuffer getResponeBuffer( ServerHttpResponse response){

	
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status",-1);
		//把json对象转换成字节数组
        byte[] bits = jsonObject.toJSONString().getBytes(StandardCharsets.UTF_8);
		//把字节数据转换成一个DataBuffer
        DataBuffer buffer = response.bufferFactory().wrap(bits);

        return buffer ;
    }

使用

DataBuffer buffer = responeUtils.getResponeBuffer(response);

return response.writeWith(Mono.just(buffer));

 


欢迎欢迎~热烈欢迎~