Options de configuration par défaut du Query Executor de GraphQL

Découvrez comment corriger les erreurs déni de service dans les requêtes GraphQL provoquées par les options d’analyseur par défaut dans la dernière mise à jour Java de GraphQL.

Description description

Environnement

Adobe Experience Manager

Problème/Symptômes

La dernière mise à jour GraphQL-Java crée des options d’analyseur par défaut qui peuvent entraîner ’erreur « Denial of Service » InvalidSyntax error lors de l’exécution de requêtes complexes GraphQL.  Ces validations ont été introduites dans GraphQL-Java pour éviter les attaques par déni de service.

Pour plus de contexte, ces limites sont définies dans https://github.com/graphql-java/graphql-java/blob/v20.3/src/main/java/graphql/parser/ParserOptions.java#L35.

Résolution resolution

Vous pouvez résoudre le problème en transmettant des options d’analyseur personnalisé en suivant les étapes données :

  • Cela est valide pour les requêtes GraphQL très volumineuses qui renvoient une erreur « Denial of Service » InvalidSyntax error, commençant par :

    • AEM Cloud Service (limitation introduite avec la référence interne SITES-13906 dans la version 2023.8 et solution de contournement introduite dans la version 2024.3) ou
    • AEM 6.5.21 (limitation et solution introduites avec la référence interne SITES-17355)
  • Ce problème peut être résolu en configurant la configuration OSGI exécuteur de requête GraphQL par défaut Apache Sling et en ajustant les valeurs Jetons de requête max et Jetons d’espaces blancs max en fonction des besoins.

Ceci devrait être fait en dernier recours et les valeurs devraient être augmentées progressivement jusqu’à ce que les besoins du projet soient satisfaits.

recommendation-more-help
experience-cloud-kcs-help-kbarticles