IInitializeOptions => IPostConfigureOptions
This commit is contained in:
parent
4034158c61
commit
db9ae62632
|
|
@ -10,21 +10,21 @@ namespace Microsoft.AspNetCore.Authentication.Cookies
|
|||
/// <summary>
|
||||
/// Used to setup defaults for all <see cref="CookieAuthenticationOptions"/>.
|
||||
/// </summary>
|
||||
public class CookieAuthenticationInitializer : IInitializeOptions<CookieAuthenticationOptions>
|
||||
public class PostConfigureCookieAuthenticationOptions : IPostConfigureOptions<CookieAuthenticationOptions>
|
||||
{
|
||||
private readonly IDataProtectionProvider _dp;
|
||||
|
||||
public CookieAuthenticationInitializer(IDataProtectionProvider dataProtection)
|
||||
public PostConfigureCookieAuthenticationOptions(IDataProtectionProvider dataProtection)
|
||||
{
|
||||
_dp = dataProtection;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Invoked to initialize a TOptions instance.
|
||||
/// Invoked to post configure a TOptions instance.
|
||||
/// </summary>
|
||||
/// <param name="name">The name of the options instance being initialized.</param>
|
||||
/// <param name="options">The options instance to initialize.</param>
|
||||
public void Initialize(string name, CookieAuthenticationOptions options)
|
||||
/// <param name="name">The name of the options instance being configured.</param>
|
||||
/// <param name="options">The options instance to configure.</param>
|
||||
public void PostConfigure(string name, CookieAuthenticationOptions options)
|
||||
{
|
||||
options.DataProtectionProvider = options.DataProtectionProvider ?? _dp;
|
||||
|
||||
|
|
@ -21,7 +21,7 @@ namespace Microsoft.Extensions.DependencyInjection
|
|||
|
||||
public static IServiceCollection AddCookieAuthentication(this IServiceCollection services, string authenticationScheme, Action<CookieAuthenticationOptions> configureOptions)
|
||||
{
|
||||
services.TryAddEnumerable(ServiceDescriptor.Singleton<IInitializeOptions<CookieAuthenticationOptions>, CookieAuthenticationInitializer>());
|
||||
services.TryAddEnumerable(ServiceDescriptor.Singleton<IPostConfigureOptions<CookieAuthenticationOptions>, PostConfigureCookieAuthenticationOptions>());
|
||||
return services.AddScheme<CookieAuthenticationOptions, CookieAuthenticationHandler>(authenticationScheme, configureOptions);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
using System;
|
||||
using Microsoft.AspNetCore.Authentication.Facebook;
|
||||
using Microsoft.AspNetCore.Authentication.Facebook.Internal;
|
||||
using Microsoft.Extensions.Options.Infrastructure;
|
||||
|
||||
namespace Microsoft.Extensions.DependencyInjection
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@
|
|||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.Options.Infrastructure;
|
||||
|
||||
namespace Microsoft.AspNetCore.Authentication.Facebook
|
||||
namespace Microsoft.AspNetCore.Authentication.Facebook.Internal
|
||||
{
|
||||
internal class FacebookConfigureOptions : ConfigureDefaultOptions<FacebookOptions>
|
||||
public class FacebookConfigureOptions : ConfigureDefaultOptions<FacebookOptions>
|
||||
{
|
||||
public FacebookConfigureOptions(IConfiguration config) :
|
||||
base(FacebookDefaults.AuthenticationScheme,
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
using System;
|
||||
using Microsoft.AspNetCore.Authentication.Google;
|
||||
using Microsoft.AspNetCore.Authentication.Google.Internal;
|
||||
using Microsoft.Extensions.Options.Infrastructure;
|
||||
|
||||
namespace Microsoft.Extensions.DependencyInjection
|
||||
|
|
|
|||
|
|
@ -4,9 +4,9 @@
|
|||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.Options.Infrastructure;
|
||||
|
||||
namespace Microsoft.AspNetCore.Authentication.Google
|
||||
namespace Microsoft.AspNetCore.Authentication.Google.Internal
|
||||
{
|
||||
internal class GoogleConfigureOptions : ConfigureDefaultOptions<GoogleOptions>
|
||||
public class GoogleConfigureOptions : ConfigureDefaultOptions<GoogleOptions>
|
||||
{
|
||||
public GoogleConfigureOptions(IConfiguration config) :
|
||||
base(GoogleDefaults.AuthenticationScheme,
|
||||
|
|
@ -4,9 +4,9 @@
|
|||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.Options.Infrastructure;
|
||||
|
||||
namespace Microsoft.AspNetCore.Authentication.JwtBearer
|
||||
namespace Microsoft.AspNetCore.Authentication.JwtBearer.Internal
|
||||
{
|
||||
internal class JwtBearerConfigureOptions : ConfigureDefaultOptions<JwtBearerOptions>
|
||||
public class JwtBearerConfigureOptions : ConfigureDefaultOptions<JwtBearerOptions>
|
||||
{
|
||||
// Bind to "Bearer" section by default
|
||||
public JwtBearerConfigureOptions(IConfiguration config) :
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
using System;
|
||||
using Microsoft.AspNetCore.Authentication.JwtBearer;
|
||||
using Microsoft.AspNetCore.Authentication.JwtBearer.Internal;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Microsoft.Extensions.Options.Infrastructure;
|
||||
|
|
@ -19,7 +20,7 @@ namespace Microsoft.Extensions.DependencyInjection
|
|||
|
||||
public static IServiceCollection AddJwtBearerAuthentication(this IServiceCollection services, string authenticationScheme, Action<JwtBearerOptions> configureOptions)
|
||||
{
|
||||
services.TryAddEnumerable(ServiceDescriptor.Singleton<IInitializeOptions<JwtBearerOptions>, JwtBearerInitializer>());
|
||||
services.TryAddEnumerable(ServiceDescriptor.Singleton<IPostConfigureOptions<JwtBearerOptions>, JwtBearerPostConfigureOptions>());
|
||||
services.AddSingleton<ConfigureDefaultOptions<JwtBearerOptions>, JwtBearerConfigureOptions>();
|
||||
return services.AddScheme<JwtBearerOptions, JwtBearerHandler>(authenticationScheme, configureOptions);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,14 +12,14 @@ namespace Microsoft.AspNetCore.Authentication.JwtBearer
|
|||
/// <summary>
|
||||
/// Used to setup defaults for all <see cref="JwtBearerOptions"/>.
|
||||
/// </summary>
|
||||
public class JwtBearerInitializer : IInitializeOptions<JwtBearerOptions>
|
||||
public class JwtBearerPostConfigureOptions : IPostConfigureOptions<JwtBearerOptions>
|
||||
{
|
||||
/// <summary>
|
||||
/// Invoked to initialize a JwtBearerOptions instance.
|
||||
/// Invoked to post configure a JwtBearerOptions instance.
|
||||
/// </summary>
|
||||
/// <param name="name">The name of the options instance being initialized.</param>
|
||||
/// <param name="options">The options instance to initialize.</param>
|
||||
public void Initialize(string name, JwtBearerOptions options)
|
||||
/// <param name="name">The name of the options instance being configured.</param>
|
||||
/// <param name="options">The options instance to configure.</param>
|
||||
public void PostConfigure(string name, JwtBearerOptions options)
|
||||
{
|
||||
if (string.IsNullOrEmpty(options.TokenValidationParameters.ValidAudience) && !string.IsNullOrEmpty(options.Audience))
|
||||
{
|
||||
|
|
@ -4,9 +4,9 @@
|
|||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.Options.Infrastructure;
|
||||
|
||||
namespace Microsoft.AspNetCore.Authentication.MicrosoftAccount
|
||||
namespace Microsoft.AspNetCore.Authentication.MicrosoftAccount.Internal
|
||||
{
|
||||
internal class MicrosoftAccountConfigureOptions : ConfigureDefaultOptions<MicrosoftAccountOptions>
|
||||
public class MicrosoftAccountConfigureOptions : ConfigureDefaultOptions<MicrosoftAccountOptions>
|
||||
{
|
||||
// Bind to "Microsoft" section by default
|
||||
public MicrosoftAccountConfigureOptions(IConfiguration config) :
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
using System;
|
||||
using Microsoft.AspNetCore.Authentication.MicrosoftAccount;
|
||||
using Microsoft.AspNetCore.Authentication.MicrosoftAccount.Internal;
|
||||
using Microsoft.Extensions.Options.Infrastructure;
|
||||
|
||||
namespace Microsoft.Extensions.DependencyInjection
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ namespace Microsoft.Extensions.DependencyInjection
|
|||
where TOptions : OAuthOptions, new()
|
||||
where THandler : OAuthHandler<TOptions>
|
||||
{
|
||||
services.TryAddEnumerable(ServiceDescriptor.Singleton<IInitializeOptions<TOptions>, OAuthInitializer<TOptions, THandler>>());
|
||||
services.TryAddEnumerable(ServiceDescriptor.Singleton<IPostConfigureOptions<TOptions>, OAuthPostConfigureOptions<TOptions, THandler>>());
|
||||
return services.AddRemoteScheme<TOptions, THandler>(authenticationScheme, authenticationScheme, configureOptions);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,18 +12,18 @@ namespace Microsoft.Extensions.DependencyInjection
|
|||
/// <summary>
|
||||
/// Used to setup defaults for the OAuthOptions.
|
||||
/// </summary>
|
||||
public class OAuthInitializer<TOptions, THandler> : IInitializeOptions<TOptions>
|
||||
public class OAuthPostConfigureOptions<TOptions, THandler> : IPostConfigureOptions<TOptions>
|
||||
where TOptions : OAuthOptions, new()
|
||||
where THandler : OAuthHandler<TOptions>
|
||||
{
|
||||
private readonly IDataProtectionProvider _dp;
|
||||
|
||||
public OAuthInitializer(IDataProtectionProvider dataProtection)
|
||||
public OAuthPostConfigureOptions(IDataProtectionProvider dataProtection)
|
||||
{
|
||||
_dp = dataProtection;
|
||||
}
|
||||
|
||||
public void Initialize(string name, TOptions options)
|
||||
public void PostConfigure(string name, TOptions options)
|
||||
{
|
||||
options.DataProtectionProvider = options.DataProtectionProvider ?? _dp;
|
||||
if (options.Backchannel == null)
|
||||
|
|
@ -4,7 +4,7 @@
|
|||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.Options.Infrastructure;
|
||||
|
||||
namespace Microsoft.AspNetCore.Authentication.OpenIdConnect
|
||||
namespace Microsoft.AspNetCore.Authentication.OpenIdConnect.Internal
|
||||
{
|
||||
internal class OpenIdConnectConfigureOptions : ConfigureDefaultOptions<OpenIdConnectOptions>
|
||||
{
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
using System;
|
||||
using Microsoft.AspNetCore.Authentication.OpenIdConnect;
|
||||
using Microsoft.AspNetCore.Authentication.OpenIdConnect.Internal;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Microsoft.Extensions.Options.Infrastructure;
|
||||
|
|
@ -19,7 +20,7 @@ namespace Microsoft.Extensions.DependencyInjection
|
|||
|
||||
public static IServiceCollection AddOpenIdConnectAuthentication(this IServiceCollection services, string authenticationScheme, Action<OpenIdConnectOptions> configureOptions)
|
||||
{
|
||||
services.TryAddEnumerable(ServiceDescriptor.Singleton<IInitializeOptions<OpenIdConnectOptions>, OpenIdConnectInitializer>());
|
||||
services.TryAddEnumerable(ServiceDescriptor.Singleton<IPostConfigureOptions<OpenIdConnectOptions>, OpenIdConnectPostConfigureOptions>());
|
||||
services.AddSingleton<ConfigureDefaultOptions<OpenIdConnectOptions>, OpenIdConnectConfigureOptions>();
|
||||
return services.AddRemoteScheme<OpenIdConnectOptions, OpenIdConnectHandler>(authenticationScheme, authenticationScheme, configureOptions);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,21 +14,21 @@ namespace Microsoft.AspNetCore.Authentication.OpenIdConnect
|
|||
/// <summary>
|
||||
/// Used to setup defaults for all <see cref="OpenIdConnectOptions"/>.
|
||||
/// </summary>
|
||||
public class OpenIdConnectInitializer : IInitializeOptions<OpenIdConnectOptions>
|
||||
public class OpenIdConnectPostConfigureOptions : IPostConfigureOptions<OpenIdConnectOptions>
|
||||
{
|
||||
private readonly IDataProtectionProvider _dp;
|
||||
|
||||
public OpenIdConnectInitializer(IDataProtectionProvider dataProtection)
|
||||
public OpenIdConnectPostConfigureOptions(IDataProtectionProvider dataProtection)
|
||||
{
|
||||
_dp = dataProtection;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Invoked to initialize a TOptions instance.
|
||||
/// Invoked to post configure a TOptions instance.
|
||||
/// </summary>
|
||||
/// <param name="name">The name of the options instance being initialized.</param>
|
||||
/// <param name="options">The options instance to initialize.</param>
|
||||
public void Initialize(string name, OpenIdConnectOptions options)
|
||||
/// <param name="name">The name of the options instance being configured.</param>
|
||||
/// <param name="options">The options instance to configure.</param>
|
||||
public void PostConfigure(string name, OpenIdConnectOptions options)
|
||||
{
|
||||
options.DataProtectionProvider = options.DataProtectionProvider ?? _dp;
|
||||
|
||||
|
|
@ -4,9 +4,9 @@
|
|||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.Options.Infrastructure;
|
||||
|
||||
namespace Microsoft.AspNetCore.Authentication.Twitter
|
||||
namespace Microsoft.AspNetCore.Authentication.Twitter.Internal
|
||||
{
|
||||
internal class TwitterConfigureOptions : ConfigureDefaultOptions<TwitterOptions>
|
||||
public class TwitterConfigureOptions : ConfigureDefaultOptions<TwitterOptions>
|
||||
{
|
||||
// Bind to "Twitter" section by default
|
||||
public TwitterConfigureOptions(IConfiguration config) :
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
using System;
|
||||
using Microsoft.AspNetCore.Authentication.Twitter;
|
||||
using Microsoft.AspNetCore.Authentication.Twitter.Internal;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Microsoft.Extensions.Options.Infrastructure;
|
||||
|
|
@ -19,7 +20,7 @@ namespace Microsoft.Extensions.DependencyInjection
|
|||
|
||||
public static IServiceCollection AddTwitterAuthentication(this IServiceCollection services, string authenticationScheme, Action<TwitterOptions> configureOptions)
|
||||
{
|
||||
services.TryAddEnumerable(ServiceDescriptor.Singleton<IInitializeOptions<TwitterOptions>, TwitterInitializer>());
|
||||
services.TryAddEnumerable(ServiceDescriptor.Singleton<IPostConfigureOptions<TwitterOptions>, TwitterPostConfigureOptions>());
|
||||
services.AddSingleton<ConfigureDefaultOptions<TwitterOptions>, TwitterConfigureOptions>();
|
||||
return services.AddRemoteScheme<TwitterOptions, TwitterHandler>(authenticationScheme, authenticationScheme, configureOptions);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,21 +10,21 @@ namespace Microsoft.AspNetCore.Authentication.Twitter
|
|||
/// <summary>
|
||||
/// Used to setup defaults for all <see cref="TwitterOptions"/>.
|
||||
/// </summary>
|
||||
public class TwitterInitializer : IInitializeOptions<TwitterOptions>
|
||||
public class TwitterPostConfigureOptions : IPostConfigureOptions<TwitterOptions>
|
||||
{
|
||||
private readonly IDataProtectionProvider _dp;
|
||||
|
||||
public TwitterInitializer(IDataProtectionProvider dataProtection)
|
||||
public TwitterPostConfigureOptions(IDataProtectionProvider dataProtection)
|
||||
{
|
||||
_dp = dataProtection;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Invoked to initialize a TOptions instance.
|
||||
/// Invoked to post configure a TOptions instance.
|
||||
/// </summary>
|
||||
/// <param name="name">The name of the options instance being initialized.</param>
|
||||
/// <param name="options">The options instance to initialize.</param>
|
||||
public void Initialize(string name, TwitterOptions options)
|
||||
/// <param name="name">The name of the options instance being configured.</param>
|
||||
/// <param name="options">The options instance to configure.</param>
|
||||
public void PostConfigure(string name, TwitterOptions options)
|
||||
{
|
||||
options.DataProtectionProvider = options.DataProtectionProvider ?? _dp;
|
||||
|
||||
|
|
@ -2,18 +2,9 @@
|
|||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
namespace Microsoft.AspNetCore.Authentication
|
||||
{
|
||||
public class InitializeAuthenticationSchemeOptions<TOptions> : InitializeOptions<TOptions>
|
||||
where TOptions : AuthenticationSchemeOptions
|
||||
{
|
||||
public InitializeAuthenticationSchemeOptions(string name)
|
||||
: base(name, options => options.ClaimsIssuer = options.ClaimsIssuer ?? name)
|
||||
{ }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Contains the options used by the <see cref="AuthenticationHandler{T}"/>.
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -2,9 +2,7 @@
|
|||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.AspNetCore.Authentication;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
|
|
@ -79,12 +77,12 @@ namespace Microsoft.Extensions.DependencyInjection
|
|||
where TOptions : RemoteAuthenticationOptions, new()
|
||||
where THandler : RemoteAuthenticationHandler<TOptions>
|
||||
{
|
||||
services.TryAddEnumerable(ServiceDescriptor.Singleton<IInitializeOptions<TOptions>, EnsureSignInScheme<TOptions>>());
|
||||
services.TryAddEnumerable(ServiceDescriptor.Singleton<IPostConfigureOptions<TOptions>, EnsureSignInScheme<TOptions>>());
|
||||
return services.AddScheme<TOptions, THandler>(authenticationScheme, displayName, configureScheme: null, configureOptions: configureOptions);
|
||||
}
|
||||
|
||||
// Used to ensure that there's always a default data protection provider
|
||||
private class EnsureSignInScheme<TOptions> : IInitializeOptions<TOptions> where TOptions : RemoteAuthenticationOptions
|
||||
private class EnsureSignInScheme<TOptions> : IPostConfigureOptions<TOptions> where TOptions : RemoteAuthenticationOptions
|
||||
{
|
||||
private readonly AuthenticationOptions _authOptions;
|
||||
|
||||
|
|
@ -93,7 +91,7 @@ namespace Microsoft.Extensions.DependencyInjection
|
|||
_authOptions = authOptions.Value;
|
||||
}
|
||||
|
||||
public void Initialize(string name, TOptions options)
|
||||
public void PostConfigure(string name, TOptions options)
|
||||
{
|
||||
options.SignInScheme = options.SignInScheme ?? _authOptions.DefaultSignInScheme;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue