Merge pull request #14198 from strapi/hotfix/graphql-should-exist

Loading a plugin should always verify its presence
This commit is contained in:
Alexandre BODIN 2022-08-24 15:52:59 +02:00 committed by GitHub
commit 33d0b0c606
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 9 deletions

View File

@ -27,12 +27,15 @@ function getFiles(ctx) {
module.exports = (config, { strapi }) => {
const bodyConfig = defaultsDeep(defaults, config);
const { config: gqlConfig } = strapi.plugin('graphql');
const gqlEndpoint = gqlConfig('endpoint');
let gqlEndpoint;
if (strapi.plugin('graphql')) {
const { config: gqlConfig } = strapi.plugin('graphql');
gqlEndpoint = gqlConfig('endpoint');
}
return async (ctx, next) => {
// TODO: find a better way later
if (ctx.url === gqlEndpoint) {
if (gqlEndpoint && ctx.url === gqlEndpoint) {
await next();
} else {
try {

View File

@ -35,13 +35,14 @@ module.exports =
(config, { strapi }) =>
(ctx, next) => {
let helmetConfig = defaultsDeep(defaults, config);
const { config: gqlConfig } = strapi.plugin('graphql');
const gqlEndpoint = gqlConfig('endpoint');
const specialPaths = ['/documentation'];
if (
ctx.method === 'GET' &&
[gqlEndpoint, '/documentation'].some((str) => ctx.path.startsWith(str))
) {
if (strapi.plugin('graphql')) {
const { config: gqlConfig } = strapi.plugin('graphql');
specialPaths.push(gqlConfig('endpoint'));
}
if (ctx.method === 'GET' && specialPaths.some((str) => ctx.path.startsWith(str))) {
helmetConfig = merge(helmetConfig, {
contentSecurityPolicy: {
directives: {