Создание пользовательского исключения среды выполнения в фильтрах Spring Cloud Gateway - PullRequest
0 голосов
/ 23 мая 2018

Мы используем Spring Cloud Gateway с Spring Boot 2 и реактивным модулем webflux.Существует фильтр аутентификации, который добавляется для одного из маршрутов.Теперь, если мы сгенерируем исключение RuntimeException с определенным кодом состояния, оно на самом деле не срабатывает.Ранее эта проверка подлинности была частью HandlerInterceptor в Spring, теперь мы не можем использовать веб-модуль вместе с webflux (конфликт из облачного шлюза Spring).Пример:

@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 внутренних ошибок сервера.откуда это идет?Можем ли мы получить ошибки от Фильтров здесь?

1 Ответ

0 голосов
/ 03 августа 2018

Вы можете реализовать собственный обработчик ошибок, вот документ spring boot .

Или вы можете просто сгенерировать ResponseStatusException, обработчик ошибок по умолчанию будет отображать определенный статус.

...