我们正在使用带有Spring Boot2和reactive webflux模块的Spring Cloud Gateway。有一个身份验证过滤器是为其中一个路由添加的。现在,如果我们抛出一个带有特定状态代码的RuntimeException,它实际上并不正常。早先这个auth检查是Spring中HandlerInterceptor的一部分,现在我们不能使用web模块和webflux(来自Spring cloud gateway的冲突)。例如:
@Override
public GatewayFilter apply(Object config) {
ServerHttpRequest httpRequest = exchange.getRequest();
if(!someUtil.validRequest(httpRequest) {
throw new RuntimeException("Throw 401 Unauthorized with Custom error code and message");
}
}
目前,实际响应总是给出500个内部服务器错误。这是从哪里来的?我们能从这里的过滤器中获得错误吗?
您可以实现一个自定义错误处理程序,下面是Spring Boot文档。
或者您可以简单地抛出ResponseStatusException,默认错误处理程序将呈现特定状态。
//有什么方法可以在我的自定义过滤器类中获得“admin,XY8382,basic” 我的筛选器类
我正在尝试将JHipster从使用Zuul迁移到Spring云网关。JHipster使用Eureka来查找路由,我相信我已经正确配置了Spring Cloud Gateway来查找路由并向它们传播访问令牌。下面是我的配置: 我创建了一个pull请求,以显示集成Spring Cloud Gateway后发生了什么变化。 https://github.com/mraible/jhipster-reac
我试图调试我的应用程序,但调试器没有击中此代码块。这是我的自定义网关过滤器。 下面是这个过滤器的配置 当尝试发送请求时,此endpoint不会启动调试器或将日志打印到控制台。我在这里错过了什么。谢谢你。 如果我在主应用程序中创建AuthorizationHeaderFilter的bean,如下所示 应用程序在启动时引发此错误 我还为云api网关设置了日志级别来调试,下面是日志
我有一个验证令牌的自定义筛选器tokenLoginFilter 我的Spring安全 令牌登录过滤器 在authenticationmanager . authenticate调用中,我从TokenAuthenticationProvider中抛出了BadCredentialsException 令牌身份验证提供程序 Tomcat将此BadCredentialsException解释为错误代码50
我想使用通用的方式来管理5xx错误代码,让我们具体地说,当数据库在我的整个spring应用程序关闭的情况。我想要一个相当错误的json而不是堆栈跟踪。 对于控制器,我有一个类来处理不同的异常,这也可以捕捉db在请求中间停止的情况。但这还不是全部。我还碰巧有一个自定义的扩展了,当我调用时,我会得到并且它不会被管理。我在网上读了几件事,只会让我更加困惑。 所以我有很多问题: 是否需要实现自定义筛选器?