小编tin*_*e2k的帖子

我应该升级到CGLIB 3.0吗?

我想知道是否/为什么要将CGLib 2.2.2升级到3.0版.我正在使用CGLib与最新版本的Hibernate/Spring/Mockito和Java 7.

我无法在网络上的任何地方找到此版本的发行说明或升级说明.

java cglib

8
推荐指数
1
解决办法
2692
查看次数

使用 Spring Cloud Gateway 进行全局异常处理

我将 Spring Cloud Gateway Greenwich.SR1 与 Spring Boot 2.1.5 结合使用。我正在尝试为我的下游服务创建一个网关。网关的部分工作是为下游请求提供全局错误页面。当下游服务返回 HTTP 403 响应时,我希望网关提供合适的错误页面。

我目前正在使用这样的自定义过滤器

public class ForbiddenFilterFactory extends AbstractGatewayFilterFactory<Object> {

    @Override
    public String name() {
        return "Forbidden";
    }

    @Override
    public GatewayFilter apply(Object o) {
        return (exchange, chain) -> chain.filter(exchange).then(
                Mono.defer(() -> {
                    if (!exchange.getResponse().isCommitted() &&
                            HttpStatus.FORBIDDEN.equals(exchange.getResponse().getStatusCode())) {
                        return Mono.error(new ResponseStatusException(HttpStatus.FORBIDDEN));
                    }
                    return Mono.empty();
                }));
    }
}
Run Code Online (Sandbox Code Playgroud)

我还设置了一个403.html文件src/main/resources/templates/error/

问题在于网关返回的 403 响应的正文为空,而不是 html 文件的内容。在调试过程中,我可以看到DefaultErrorWebExceptionHandler以 a 的形式创建了正确的主体Mono<ServerResponse>,但它从未写入实际响应。

有没有其他方法可以让它发挥作用?

spring spring-webflux spring-cloud-gateway

5
推荐指数
1
解决办法
1万
查看次数