internal IOptions <OAuthServiceOptions> Configure(SsoServiceInfo si, OAuthConnectorOptions configuration) { var ssoOptions = new OAuthServiceOptions(); UpdateOptions(configuration, ssoOptions); UpdateOptions(si, ssoOptions); return(new ConnectorIOptions <OAuthServiceOptions>(ssoOptions)); }
/// <summary> /// Adds OAuthServiceOptions to Service Collection /// </summary> /// <param name="services">Your Service Collection</param> /// <param name="config">Application Configuration</param> /// <returns>IServiceCollection for chaining</returns> public static IServiceCollection AddOAuthServiceOptions(this IServiceCollection services, IConfiguration config) { if (services == null) { throw new ArgumentNullException(nameof(services)); } if (config == null) { throw new ArgumentNullException(nameof(config)); } var oauthConfig = new OAuthConnectorOptions(config); var info = config.GetSingletonServiceInfo <SsoServiceInfo>(); var factory = new OAuthConnectorFactory(info, oauthConfig); services.AddSingleton(typeof(IOptions <OAuthServiceOptions>), factory.Create); return(services); }
internal void UpdateOptions(OAuthConnectorOptions config, OAuthServiceOptions options) { if (config == null) { return; } options.ClientId = config.ClientId; options.ClientSecret = config.ClientSecret; options.AccessTokenUrl = config.OAuthServiceUrl + config.AccessTokenUri; options.UserAuthorizationUrl = config.OAuthServiceUrl + config.UserAuthorizationUri; options.TokenInfoUrl = config.OAuthServiceUrl + config.TokenInfoUri; options.UserInfoUrl = config.OAuthServiceUrl + config.UserInfoUri; options.JwtKeyUrl = config.OAuthServiceUrl + config.JwtKeyUri; options.ValidateCertificates = config.ValidateCertificates; if (config.Scope != null) { foreach (var scope in config.Scope) { options.Scope.Add(scope); } } }
public OAuthConnectorFactory(SsoServiceInfo sinfo, OAuthConnectorOptions config) { _info = sinfo; _config = config; }