springcloudgateway-cache globalfilter中的请求和响应主体,供以后使用

kuarbcqp  于 2021-06-29  发布在  Java
关注(0)|答案(0)|浏览(293)

我将维护一个springcloudgateway项目,而且是一个全新的项目。我要加一个特别的 org.springframework.cloud.gateway.filter.GlobalFilter 它分析请求和响应数据以实现一些附加功能。
然而,我从界面得到的是 org.springframework.http.server.reactive.ServerHttpRequest 以及相应的响应对象,该对象没有 getInputStream 方法类似于servlet的对应方法。
我想要达到的目标大致如下:

public class CustomGlobalFilter implements GlobalFilter {

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        ServerHttpRequest request = exchange.getRequest();
        ServerHttpResponse response = exchange.getResponse();
        //TODO: modify the two objects or wrap them in wrapper class...
        Mono<Void> result = chain.filter(exchange);
        byte[] requestData = getRequestData(request);//TODO: get request data from request object
        byte[] responseData = getResponseData(response);//TODO: get response data from response object
        //TODO: custom logic
        return result;
    }
}

也许将内容缓存在内存中会破坏这个框架的目的,但是使用servlet api对我来说不是一个选择。
有谁能给我一些关于如何达到这个目的的建议吗?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题