Запрещать неаутентифицированные запросы в Spring Cloud Gateway - PullRequest
0 голосов
/ 19 декабря 2018

Я реализовал пользовательский предварительный фильтр в весеннем облачном шлюзе, который позволяет аутентифицированным запросам проходить через нисходящий процесс.То, что я хочу, - это если запрос не прошел проверку подлинности, затем вернитесь с ответом 401 UNAUTHORIZE и остановите последующую обработку.Могу ли я достичь этого весеннего облачного шлюза.

Пожалуйста, помогите.

Мой код фильтра ниже

public class ValidUserFilter implements GatewayFilterFactory {

  @Override
  public GatewayFilter apply(Object config) {
    return (exchange, chain) -> {
      ServerHttpRequest request = exchange.getRequest();

      if (isValidRequest(request)) {
        // Allow processing
      } else {
      // set UNAUTHORIZED 401 response and stop the processing
      }

      return chain.filter(exchange);
    };
  }
}

и конфигурация следующая:

  - id: myroute
            uri: http://localhost:8080/bar
            predicates:
            - Path=/foo/**
            filters:
            - ValidUserFilter

1 Ответ

0 голосов
/ 19 декабря 2018

См. Код в SetStatusGatewayFilterFactory

// set UNAUTHORIZED 401 response and stop the processing
exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
return exchange.getResponse().setComplete();
...