Skip to content

Commit 41f9a5e

Browse files
authored
Restrict UI to only GET requests (#779)
1 parent 9d20fce commit 41f9a5e

8 files changed

+12
-8
lines changed

src/Ui.Altair/Extensions/AltairApplicationBuilderExtensions.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using GraphQL.Server.Ui.Altair;
2+
using Microsoft.AspNetCore.Http;
23

34
namespace Microsoft.AspNetCore.Builder;
45

@@ -22,7 +23,7 @@ public static IApplicationBuilder UseGraphQLAltair(this IApplicationBuilder app,
2223
public static IApplicationBuilder UseGraphQLAltair(this IApplicationBuilder app, AltairOptions options, string path = "/ui/altair")
2324
{
2425
return app.UseWhen(
25-
context => context.Request.Path.StartsWithSegments(path, out var remaining) && string.IsNullOrEmpty(remaining),
26+
context => HttpMethods.IsGet(context.Request.Method) && context.Request.Path.StartsWithSegments(path, out var remaining) && string.IsNullOrEmpty(remaining),
2627
b => b.UseMiddleware<AltairMiddleware>(options ?? new AltairOptions()));
2728
}
2829
}

src/Ui.Altair/Extensions/AltairEndpointRouteBuilderExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public static AltairEndpointConventionBuilder MapGraphQLAltair(this IEndpointRou
3030
throw new ArgumentNullException(nameof(endpoints));
3131

3232
var requestDelegate = endpoints.CreateApplicationBuilder().UseMiddleware<AltairMiddleware>(options ?? new AltairOptions()).Build();
33-
return new AltairEndpointConventionBuilder(endpoints.Map(pattern, requestDelegate).WithDisplayName("GraphQL Altair"));
33+
return new AltairEndpointConventionBuilder(endpoints.MapGet(pattern, requestDelegate).WithDisplayName("GraphQL Altair"));
3434
}
3535
}
3636

src/Ui.GraphiQL/Extensions/GraphiQLApplicationBuilderExtensions.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using GraphQL.Server.Ui.GraphiQL;
2+
using Microsoft.AspNetCore.Http;
23

34
namespace Microsoft.AspNetCore.Builder;
45

@@ -22,7 +23,7 @@ public static IApplicationBuilder UseGraphQLGraphiQL(this IApplicationBuilder ap
2223
public static IApplicationBuilder UseGraphQLGraphiQL(this IApplicationBuilder app, GraphiQLOptions options, string path = "/ui/graphiql")
2324
{
2425
return app.UseWhen(
25-
context => context.Request.Path.StartsWithSegments(path, out var remaining) && string.IsNullOrEmpty(remaining),
26+
context => HttpMethods.IsGet(context.Request.Method) && context.Request.Path.StartsWithSegments(path, out var remaining) && string.IsNullOrEmpty(remaining),
2627
b => b.UseMiddleware<GraphiQLMiddleware>(options ?? new GraphiQLOptions()));
2728
}
2829
}

src/Ui.GraphiQL/Extensions/GraphiQLEndpointRouteBuilderExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public static GraphiQLEndpointConventionBuilder MapGraphQLGraphiQL(this IEndpoin
3030
throw new ArgumentNullException(nameof(endpoints));
3131

3232
var requestDelegate = endpoints.CreateApplicationBuilder().UseMiddleware<GraphiQLMiddleware>(options ?? new GraphiQLOptions()).Build();
33-
return new GraphiQLEndpointConventionBuilder(endpoints.Map(pattern, requestDelegate).WithDisplayName("GraphiQL"));
33+
return new GraphiQLEndpointConventionBuilder(endpoints.MapGet(pattern, requestDelegate).WithDisplayName("GraphiQL"));
3434
}
3535
}
3636

src/Ui.Playground/Extensions/PlaygroundApplicationBuilderExtensions.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using GraphQL.Server.Ui.Playground;
2+
using Microsoft.AspNetCore.Http;
23

34
namespace Microsoft.AspNetCore.Builder;
45

@@ -22,7 +23,7 @@ public static IApplicationBuilder UseGraphQLPlayground(this IApplicationBuilder
2223
public static IApplicationBuilder UseGraphQLPlayground(this IApplicationBuilder app, PlaygroundOptions options, string path = "/ui/playground")
2324
{
2425
return app.UseWhen(
25-
context => context.Request.Path.StartsWithSegments(path, out var remaining) && string.IsNullOrEmpty(remaining),
26+
context => HttpMethods.IsGet(context.Request.Method) && context.Request.Path.StartsWithSegments(path, out var remaining) && string.IsNullOrEmpty(remaining),
2627
b => b.UseMiddleware<PlaygroundMiddleware>(options ?? new PlaygroundOptions()));
2728
}
2829
}

src/Ui.Playground/Extensions/PlaygroundEndpointRouteBuilderExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public static PlaygroundEndpointConventionBuilder MapGraphQLPlayground(this IEnd
3030
throw new ArgumentNullException(nameof(endpoints));
3131

3232
var requestDelegate = endpoints.CreateApplicationBuilder().UseMiddleware<PlaygroundMiddleware>(options ?? new PlaygroundOptions()).Build();
33-
return new PlaygroundEndpointConventionBuilder(endpoints.Map(pattern, requestDelegate).WithDisplayName("GraphQL Playground"));
33+
return new PlaygroundEndpointConventionBuilder(endpoints.MapGet(pattern, requestDelegate).WithDisplayName("GraphQL Playground"));
3434
}
3535
}
3636

src/Ui.Voyager/Extensions/VoyagerApplicationBuilderExtensions.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using GraphQL.Server.Ui.Voyager;
2+
using Microsoft.AspNetCore.Http;
23

34
namespace Microsoft.AspNetCore.Builder;
45

@@ -22,7 +23,7 @@ public static IApplicationBuilder UseGraphQLVoyager(this IApplicationBuilder app
2223
public static IApplicationBuilder UseGraphQLVoyager(this IApplicationBuilder app, VoyagerOptions options, string path = "/ui/voyager")
2324
{
2425
return app.UseWhen(
25-
context => context.Request.Path.StartsWithSegments(path, out var remaining) && string.IsNullOrEmpty(remaining),
26+
context => HttpMethods.IsGet(context.Request.Method) && context.Request.Path.StartsWithSegments(path, out var remaining) && string.IsNullOrEmpty(remaining),
2627
b => b.UseMiddleware<VoyagerMiddleware>(options ?? new VoyagerOptions()));
2728
}
2829
}

src/Ui.Voyager/Extensions/VoyagerEndpointRouteBuilderExtensions.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public static VoyagerEndpointConventionBuilder MapGraphQLVoyager(this IEndpointR
3030
throw new ArgumentNullException(nameof(endpoints));
3131

3232
var requestDelegate = endpoints.CreateApplicationBuilder().UseMiddleware<VoyagerMiddleware>(options ?? new VoyagerOptions()).Build();
33-
return new VoyagerEndpointConventionBuilder(endpoints.Map(pattern, requestDelegate).WithDisplayName("GraphQL Voyager"));
33+
return new VoyagerEndpointConventionBuilder(endpoints.MapGet(pattern, requestDelegate).WithDisplayName("GraphQL Voyager"));
3434
}
3535
}
3636

0 commit comments

Comments
 (0)