Spring GraphQL игнорирует аутентификацию для запроса самоанализа

У меня есть WebFilter, который выполняет некоторую логику аутентификации, пишет некоторый контекст перед вызовом chain.filter(exchange).

Я использую Spring GraphQL с включенным GraphiQL. Я хотел бы пропустить авторизацию для GraphiQL. Поскольку GraphiQL делает запрос на самоанализ для отображения документации по схеме. Каков правильный способ игнорировать выполнение логики аутентификации для запроса самоанализа?

      public class AuthFilter implements WebFilter {

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
        ... do some auth logic here
        return chain.filter(exchange);
    }
}

1 ответ

С точки зрения Интернета невозможно разрешить только запросы самоанализа — только механизм GraphQL может анализировать и планировать операции, запрашиваемые клиентом.

Любая попытка вручную анализировать или обнаруживать такие запросы может создать проблему безопасности, если веб-фильтр не воспроизводит в точности то же поведение анализа, что и graphql-java. Вместо этого в этом случае я бы предложил вместо этого защитить операции и выборку полей на уровне API и разрешить общее публичное использование веб-конечной точки graphql.

Другие вопросы по тегам