如何修改谓词spring cloud gateway中的错误响应体?

问题描述

我有一个谓词工厂来获取标头并路由到 application.yaml 中指定的路径

我的谓词工厂如下所示

@Override
public Predicate<ServerWebExchange> apply(Config config ) {
    return (ServerWebExchange t) -> {

        List<String> jwtHeader = t.getRequest().getHeaders().get("abcd");
        if (jwtHeader == null || jwtHeader.isEmpty()) {
            LOGGER.error("header is missing");
            return false;
        }
        return true;
    }
}

我收到 404 HTTP 状态代码作为响应,而不是 402 UNAUTHORISED

curl -X GET http://localhost:8080/

{"timestamp":"2021-02-10T05:47:02.678+00:00","path":"/","status":404,"error":"Not Found","message":null,"requestId":"e666a783-1"}

如何更改spring cloud网关谓词中的HTTP状态码如下

{"timestamp":"2021-02-10T05:47:02.678+00:00","status":402,"error":"UNAUTHORIZED","requestId":"e666a784-1"}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)