Как установить значение ответа в Springcloud Gateway с GlobalFilter - PullRequest
0 голосов
/ 27 июня 2018

как установить значение ответа в шлюзе Springcloud с помощью GlobalFilter? Я не знаю, какой метод использовать в ServerHttpResponse.

public class AuthGlobalFilterFilter1 implements GlobalFilter, Ordered {

@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
    Object key =  exchange.getRequest().getQueryParams().get("key");
    if(key==null){
        ServerHttpResponse serverHttpResponse =  exchange.getResponse();
        serverHttpResponse.setStatusCode(HttpStatus.UNAUTHORIZED);
        //in here,I want set the value of response body.such as json string "{"status":401}"
        return exchange.getResponse().setComplete();
    }
    return chain.filter(exchange);
}

1 Ответ

0 голосов
/ 03 июля 2018

Я решил это.

        ServerHttpResponse serverHttpResponse = exchange.getResponse();
    serverHttpResponse.setStatusCode(HttpStatus.OK);
    byte[] response =  "{\"status\":\"erroe\",\"message\":\"error happen\"}".getBytes(StandardCharsets.UTF_8);;
    DataBuffer buffer = exchange.getResponse().bufferFactory().wrap(response);
    return exchange.getResponse().writeWith(Flux.just(buffer));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...