Opzioni di configurazione predefinite di GraphQL Query Executor

Scopri come risolvere il problema Rifiuto del servizio errori nelle query GraphQL causati dalle opzioni del parser predefinite nell’ultimo aggiornamento Java di GraphQL.

Descrizione description

Ambiente

Adobe Experience Manager

Problema/Sintomi

L’ultimo aggiornamento GraphQL-Java crea opzioni parser predefinite che potrebbero causare "Denial of Service" InvalidSyntax errore durante l’esecuzione di query complesse di GraphQL.  Queste convalide sono state introdotte in GraphQL-Java per evitare attacchi Denial of Service.

Per il contesto, tali limitazioni sono definite in https://github.com/graphql-java/graphql-java/blob/v20.3/src/main/java/graphql/parser/ParserOptions.java#L35.

Risoluzione resolution

Per risolvere il problema, segui questi passaggi passando le opzioni del parser personalizzato:

  • Questo è valido per le query GraphQL di dimensioni molto grandi che restituirebbero un "Denial of Service" InvalidSyntax errore, a partire da:

    • AEM Cloud Service (limitazione introdotta con il riferimento interno SITES-13906 nella versione 2023.8 e soluzione alternativa introdotta nella versione 2024.3) o;
    • AEM 6.5.21 (limitazione e soluzione alternativa introdotte con il riferimento interno SITES-17355)
  • Questo problema può essere risolto configurando la configurazione OSGI  Apache Sling Default GraphQL Query Executor  e regola i valori  Token query max  e  Numero massimo token spazi vuoti  a seconda delle esigenze.

Ciò dovrebbe essere fatto come ultima risorsa e i valori dovrebbero essere aumentati gradualmente fino a quando non saranno soddisfatte le esigenze del progetto.

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