기본 GraphQL 쿼리 실행기 구성 옵션

최신 GraphQL Java 업데이트에서 기본 파서 옵션으로 인해 발생한 서비스 거부 GraphQL 쿼리의 오류를 해결하는 방법에 대해 알아봅니다.

설명 description

환경

Adobe Experience Manager

문제/증상

최신 GraphQL-Java 업데이트로 기본 파서 옵션이 생성되었습니다. 이로 인해 GraphQL 복합 쿼리를 실행하는 동안 "서비스 거부" InvalidSyntax ​오류가 발생할 수 있습니다.  이러한 유효성 검사는 서비스 거부 공격을 피하기 위해 GraphQL-Java에 도입되었습니다.

컨텍스트의 경우 이러한 제한 사항은 https://github.com/graphql-java/graphql-java/blob/v20.3/src/main/java/graphql/parser/ParserOptions.java#L35.에 정의되어 있습니다.

해결 방법 resolution

지정된 단계에 따라 사용자 정의 파서 옵션을 전달하여 문제를 해결할 수 있습니다.

  • 다음으로 시작하는 "서비스 거부" InvalidSyntax ​오류를 반환하는 매우 큰 GraphQL 쿼리에 대해 유효합니다.

    • AEM Cloud Service(릴리스 2023.8에 내부 참조 SITES-13906과 함께 도입된 제한 사항 및 릴리스 2024.3에 도입된 해결 방법) 또는
    • AEM 6.5.21(내부 참조 SITES-17355과 함께 도입된 제한 및 해결 방법)
  • 이 문제는 OSGI 구성 Apache Sling 기본 GraphQL 쿼리 Executor 를 구성하고 필요에 따라 최대 쿼리 토큰최대 공백 토큰 값을 조정하여 해결할 수 있습니다.

마지막 수단으로 이 작업을 수행해야 하며 프로젝트의 요구 사항이 충족될 때까지 값을 점진적으로 늘려야 합니다.

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f