Updating to new options pattern
This commit is contained in:
parent
92fff3ccf3
commit
d1a0edb87e
|
|
@ -11,9 +11,9 @@ namespace HttpOverridesSample
|
|||
public void Configure(IApplicationBuilder app)
|
||||
{
|
||||
app.UseIISPlatformHandler();
|
||||
app.UseOverrideHeaders(options =>
|
||||
app.UseOverrideHeaders(new OverrideHeaderOptions
|
||||
{
|
||||
options.ForwardedOptions = ForwardedHeaders.All;
|
||||
ForwardedOptions = ForwardedHeaders.All
|
||||
});
|
||||
app.UseHttpMethodOverride();
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@
|
|||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNet.Builder;
|
||||
using Microsoft.AspNet.Http;
|
||||
using Microsoft.AspNet.Http.Features;
|
||||
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
using System;
|
||||
using Microsoft.AspNet.HttpOverrides;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
namespace Microsoft.AspNet.Builder
|
||||
{
|
||||
|
|
@ -19,7 +20,8 @@ namespace Microsoft.AspNet.Builder
|
|||
{
|
||||
throw new ArgumentNullException(nameof(builder));
|
||||
}
|
||||
return builder.Use(next => new HttpMethodOverrideMiddleware(next, new HttpMethodOverrideOptions()).Invoke);
|
||||
|
||||
return builder.UseMiddleware<HttpMethodOverrideMiddleware>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
@ -28,19 +30,18 @@ namespace Microsoft.AspNet.Builder
|
|||
/// <param name="builder"></param>
|
||||
/// <param name="formFieldInput">Denotes the element that contains the name of the resulting method type.</param>
|
||||
/// <returns></returns>
|
||||
public static IApplicationBuilder UseHttpMethodOverride(this IApplicationBuilder builder, Action<HttpMethodOverrideOptions> configureOptions)
|
||||
public static IApplicationBuilder UseHttpMethodOverride(this IApplicationBuilder builder, HttpMethodOverrideOptions options)
|
||||
{
|
||||
if (builder == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(builder));
|
||||
}
|
||||
if (configureOptions == null)
|
||||
if (options == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(configureOptions));
|
||||
throw new ArgumentNullException(nameof(options));
|
||||
}
|
||||
var options = new HttpMethodOverrideOptions();
|
||||
configureOptions(options);
|
||||
return builder.Use(next => new HttpMethodOverrideMiddleware(next, options).Invoke);
|
||||
|
||||
return builder.UseMiddleware<HttpMethodOverrideMiddleware>(Options.Create(options));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,9 @@
|
|||
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNet.Builder;
|
||||
using Microsoft.AspNet.Http;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
namespace Microsoft.AspNet.HttpOverrides
|
||||
{
|
||||
|
|
@ -13,7 +15,7 @@ namespace Microsoft.AspNet.HttpOverrides
|
|||
private readonly RequestDelegate _next;
|
||||
private readonly HttpMethodOverrideOptions _options;
|
||||
|
||||
public HttpMethodOverrideMiddleware(RequestDelegate next, HttpMethodOverrideOptions options)
|
||||
public HttpMethodOverrideMiddleware(RequestDelegate next, IOptions<HttpMethodOverrideOptions> options)
|
||||
{
|
||||
if (next == null)
|
||||
{
|
||||
|
|
@ -24,7 +26,7 @@ namespace Microsoft.AspNet.HttpOverrides
|
|||
throw new ArgumentNullException(nameof(options));
|
||||
}
|
||||
_next = next;
|
||||
_options = options;
|
||||
_options = options.Value;
|
||||
}
|
||||
|
||||
public async Task Invoke(HttpContext context)
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
namespace Microsoft.AspNet.HttpOverrides
|
||||
namespace Microsoft.AspNet.Builder
|
||||
{
|
||||
public class HttpMethodOverrideOptions
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
using System;
|
||||
using Microsoft.AspNet.HttpOverrides;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
namespace Microsoft.AspNet.Builder
|
||||
{
|
||||
|
|
@ -14,19 +15,34 @@ namespace Microsoft.AspNet.Builder
|
|||
/// <param name="builder"></param>
|
||||
/// <param name="options">Enables the different override options.</param>
|
||||
/// <returns></returns>
|
||||
public static IApplicationBuilder UseOverrideHeaders(this IApplicationBuilder builder, Action<OverrideHeaderOptions> configureOptions)
|
||||
public static IApplicationBuilder UseOverrideHeaders(this IApplicationBuilder builder)
|
||||
{
|
||||
if (builder == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(builder));
|
||||
}
|
||||
if (configureOptions == null)
|
||||
|
||||
return builder.UseMiddleware<OverrideHeaderMiddleware>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Forwards proxied headers onto current request
|
||||
/// </summary>
|
||||
/// <param name="builder"></param>
|
||||
/// <param name="options">Enables the different override options.</param>
|
||||
/// <returns></returns>
|
||||
public static IApplicationBuilder UseOverrideHeaders(this IApplicationBuilder builder, OverrideHeaderOptions options)
|
||||
{
|
||||
if (builder == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(configureOptions));
|
||||
throw new ArgumentNullException(nameof(builder));
|
||||
}
|
||||
var options = new OverrideHeaderOptions();
|
||||
configureOptions(options);
|
||||
return builder.Use(next => new OverrideHeaderMiddleware(next, options).Invoke);
|
||||
if (options == null)
|
||||
{
|
||||
throw new ArgumentNullException(nameof(options));
|
||||
}
|
||||
|
||||
return builder.UseMiddleware<OverrideHeaderMiddleware>(Options.Create(options));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,7 +4,9 @@
|
|||
using System;
|
||||
using System.Net;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNet.Builder;
|
||||
using Microsoft.AspNet.Http;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
namespace Microsoft.AspNet.HttpOverrides
|
||||
{
|
||||
|
|
@ -19,7 +21,7 @@ namespace Microsoft.AspNet.HttpOverrides
|
|||
private readonly OverrideHeaderOptions _options;
|
||||
private readonly RequestDelegate _next;
|
||||
|
||||
public OverrideHeaderMiddleware(RequestDelegate next, OverrideHeaderOptions options)
|
||||
public OverrideHeaderMiddleware(RequestDelegate next, IOptions<OverrideHeaderOptions> options)
|
||||
{
|
||||
if (next == null)
|
||||
{
|
||||
|
|
@ -30,7 +32,7 @@ namespace Microsoft.AspNet.HttpOverrides
|
|||
throw new ArgumentNullException(nameof(options));
|
||||
}
|
||||
|
||||
_options = options;
|
||||
_options = options.Value;
|
||||
_next = next;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,9 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
namespace Microsoft.AspNet.HttpOverrides
|
||||
using Microsoft.AspNet.HttpOverrides;
|
||||
|
||||
namespace Microsoft.AspNet.Builder
|
||||
{
|
||||
public class OverrideHeaderOptions
|
||||
{
|
||||
|
|
|
|||
|
|
@ -10,7 +10,8 @@
|
|||
"url": "git://github.com/aspnet/basicmiddleware"
|
||||
},
|
||||
"dependencies": {
|
||||
"Microsoft.AspNet.Http.Extensions": "1.0.0-*"
|
||||
"Microsoft.AspNet.Http.Extensions": "1.0.0-*",
|
||||
"Microsoft.Extensions.Options": "1.0.0-*"
|
||||
},
|
||||
"frameworks": {
|
||||
"net451": { },
|
||||
|
|
|
|||
|
|
@ -20,9 +20,9 @@ namespace Microsoft.AspNet.HttpOverrides
|
|||
var builder = new WebApplicationBuilder()
|
||||
.Configure(app =>
|
||||
{
|
||||
app.UseOverrideHeaders(options =>
|
||||
app.UseOverrideHeaders(new OverrideHeaderOptions
|
||||
{
|
||||
options.ForwardedOptions = ForwardedHeaders.XForwardedFor;
|
||||
ForwardedOptions = ForwardedHeaders.XForwardedFor
|
||||
});
|
||||
app.Run(context =>
|
||||
{
|
||||
|
|
@ -47,9 +47,9 @@ namespace Microsoft.AspNet.HttpOverrides
|
|||
var builder = new WebApplicationBuilder()
|
||||
.Configure(app =>
|
||||
{
|
||||
app.UseOverrideHeaders(options =>
|
||||
app.UseOverrideHeaders(new OverrideHeaderOptions
|
||||
{
|
||||
options.ForwardedOptions = ForwardedHeaders.XForwardedFor;
|
||||
ForwardedOptions = ForwardedHeaders.XForwardedFor
|
||||
});
|
||||
app.Run(context =>
|
||||
{
|
||||
|
|
@ -74,9 +74,9 @@ namespace Microsoft.AspNet.HttpOverrides
|
|||
var builder = new WebApplicationBuilder()
|
||||
.Configure(app =>
|
||||
{
|
||||
app.UseOverrideHeaders(options =>
|
||||
app.UseOverrideHeaders(new OverrideHeaderOptions
|
||||
{
|
||||
options.ForwardedOptions = ForwardedHeaders.XForwardedHost;
|
||||
ForwardedOptions = ForwardedHeaders.XForwardedHost
|
||||
});
|
||||
app.Run(context =>
|
||||
{
|
||||
|
|
@ -101,9 +101,9 @@ namespace Microsoft.AspNet.HttpOverrides
|
|||
var builder = new WebApplicationBuilder()
|
||||
.Configure(app =>
|
||||
{
|
||||
app.UseOverrideHeaders(options =>
|
||||
app.UseOverrideHeaders(new OverrideHeaderOptions
|
||||
{
|
||||
options.ForwardedOptions = ForwardedHeaders.XForwardedProto;
|
||||
ForwardedOptions = ForwardedHeaders.XForwardedProto
|
||||
});
|
||||
app.Run(context =>
|
||||
{
|
||||
|
|
@ -135,9 +135,9 @@ namespace Microsoft.AspNet.HttpOverrides
|
|||
var builder = new WebApplicationBuilder()
|
||||
.Configure(app =>
|
||||
{
|
||||
app.UseOverrideHeaders(options =>
|
||||
app.UseOverrideHeaders(new OverrideHeaderOptions
|
||||
{
|
||||
options.ForwardedOptions = ForwardedHeaders.All;
|
||||
ForwardedOptions = ForwardedHeaders.All
|
||||
});
|
||||
app.Run(context =>
|
||||
{
|
||||
|
|
@ -166,9 +166,9 @@ namespace Microsoft.AspNet.HttpOverrides
|
|||
var builder = new WebApplicationBuilder()
|
||||
.Configure(app =>
|
||||
{
|
||||
app.UseOverrideHeaders(options =>
|
||||
app.UseOverrideHeaders(new OverrideHeaderOptions
|
||||
{
|
||||
options.ForwardedOptions = ForwardedHeaders.None;
|
||||
ForwardedOptions = ForwardedHeaders.None
|
||||
});
|
||||
app.Run(context =>
|
||||
{
|
||||
|
|
@ -197,9 +197,9 @@ namespace Microsoft.AspNet.HttpOverrides
|
|||
var builder = new WebApplicationBuilder()
|
||||
.Configure(app =>
|
||||
{
|
||||
app.UseOverrideHeaders(options =>
|
||||
app.UseOverrideHeaders(new OverrideHeaderOptions
|
||||
{
|
||||
options.ForwardedOptions = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
|
||||
ForwardedOptions = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
|
||||
});
|
||||
app.Run(context =>
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue