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.