diff --git a/src/Ocelot/Middleware/OcelotMiddlewareConfiguration.cs b/src/Ocelot/Middleware/OcelotMiddlewareConfiguration.cs index 43391437..555f8df9 100644 --- a/src/Ocelot/Middleware/OcelotMiddlewareConfiguration.cs +++ b/src/Ocelot/Middleware/OcelotMiddlewareConfiguration.cs @@ -34,5 +34,11 @@ /// This allows the user to completely override the ocelot authorisation middleware /// public Func, Task> AuthorisationMiddleware { get; set; } + + /// + /// This allows the user to implement there own query string manipulation logic + /// + public Func, Task> PreQueryStringBuilderMiddleware { get; set; } + } } \ No newline at end of file diff --git a/src/Ocelot/Middleware/OcelotMiddlewareExtensions.cs b/src/Ocelot/Middleware/OcelotMiddlewareExtensions.cs index dbbe79d3..cc763f3c 100644 --- a/src/Ocelot/Middleware/OcelotMiddlewareExtensions.cs +++ b/src/Ocelot/Middleware/OcelotMiddlewareExtensions.cs @@ -90,6 +90,9 @@ namespace Ocelot.Middleware // Now we can run any header transformation logic builder.UseHttpRequestHeadersBuilderMiddleware(); + // Allow the user to implement their own query string manipulation logic + builder.UseIfNotNull(middlewareConfiguration.PreQueryStringBuilderMiddleware); + // Now we can run any query string transformation logic builder.UseQueryStringBuilderMiddleware();