コード例 #1
0
 public FileInternalConfigurationCreator(
     IConfigurationValidator configurationValidator,
     IOcelotLoggerFactory loggerFactory,
     IClaimsToThingCreator claimsToThingCreator,
     IAuthenticationOptionsCreator authOptionsCreator,
     IUpstreamTemplatePatternCreator upstreamTemplatePatternCreator,
     IRequestIdKeyCreator requestIdKeyCreator,
     IServiceProviderConfigurationCreator serviceProviderConfigCreator,
     IQoSOptionsCreator qosOptionsCreator,
     IReRouteOptionsCreator fileReRouteOptionsCreator,
     IRateLimitOptionsCreator rateLimitOptionsCreator,
     IRegionCreator regionCreator,
     IHttpHandlerOptionsCreator httpHandlerOptionsCreator,
     IAdministrationPath adminPath,
     IHeaderFindAndReplaceCreator headerFAndRCreator,
     IDownstreamAddressesCreator downstreamAddressesCreator
     )
 {
     _downstreamAddressesCreator = downstreamAddressesCreator;
     _headerFAndRCreator         = headerFAndRCreator;
     _adminPath                      = adminPath;
     _regionCreator                  = regionCreator;
     _rateLimitOptionsCreator        = rateLimitOptionsCreator;
     _requestIdKeyCreator            = requestIdKeyCreator;
     _upstreamTemplatePatternCreator = upstreamTemplatePatternCreator;
     _authOptionsCreator             = authOptionsCreator;
     _configurationValidator         = configurationValidator;
     _logger = loggerFactory.CreateLogger <FileInternalConfigurationCreator>();
     _claimsToThingCreator         = claimsToThingCreator;
     _serviceProviderConfigCreator = serviceProviderConfigCreator;
     _qosOptionsCreator            = qosOptionsCreator;
     _fileReRouteOptionsCreator    = fileReRouteOptionsCreator;
     _httpHandlerOptionsCreator    = httpHandlerOptionsCreator;
 }
コード例 #2
0
 public FileOcelotConfigurationCreator(
     IOptions <FileConfiguration> options,
     IConfigurationValidator configurationValidator,
     IOcelotLoggerFactory loggerFactory,
     IClaimsToThingCreator claimsToThingCreator,
     IAuthenticationOptionsCreator authOptionsCreator,
     IUpstreamTemplatePatternCreator upstreamTemplatePatternCreator,
     IRequestIdKeyCreator requestIdKeyCreator,
     IServiceProviderConfigurationCreator serviceProviderConfigCreator,
     IQoSOptionsCreator qosOptionsCreator,
     IReRouteOptionsCreator fileReRouteOptionsCreator,
     IRateLimitOptionsCreator rateLimitOptionsCreator,
     IRegionCreator regionCreator,
     IHttpHandlerOptionsCreator httpHandlerOptionsCreator,
     IAdministrationPath adminPath
     )
 {
     _adminPath                      = adminPath;
     _regionCreator                  = regionCreator;
     _rateLimitOptionsCreator        = rateLimitOptionsCreator;
     _requestIdKeyCreator            = requestIdKeyCreator;
     _upstreamTemplatePatternCreator = upstreamTemplatePatternCreator;
     _authOptionsCreator             = authOptionsCreator;
     _options = options;
     _configurationValidator = configurationValidator;
     _logger = loggerFactory.CreateLogger <FileOcelotConfigurationCreator>();
     _claimsToThingCreator         = claimsToThingCreator;
     _serviceProviderConfigCreator = serviceProviderConfigCreator;
     _qosOptionsCreator            = qosOptionsCreator;
     _fileReRouteOptionsCreator    = fileReRouteOptionsCreator;
     _httpHandlerOptionsCreator    = httpHandlerOptionsCreator;
 }
コード例 #3
0
 public ConfigurationCreator(
     IServiceProviderConfigurationCreator serviceProviderConfigCreator,
     IQoSOptionsCreator qosOptionsCreator,
     IHttpHandlerOptionsCreator httpHandlerOptionsCreator,
     IServiceProvider serviceProvider,
     ILoadBalancerOptionsCreator loadBalancerOptionsCreator
     )
 {
     _adminPath = serviceProvider.GetService <IAdministrationPath>();
     _loadBalancerOptionsCreator   = loadBalancerOptionsCreator;
     _serviceProviderConfigCreator = serviceProviderConfigCreator;
     _qosOptionsCreator            = qosOptionsCreator;
     _httpHandlerOptionsCreator    = httpHandlerOptionsCreator;
 }
コード例 #4
0
 private static bool AdministrationApiInUse(IAdministrationPath adminPath)
 {
     return(adminPath != null);
 }
コード例 #5
0
ファイル: OcelotBuilder.cs プロジェクト: snb83/Ocelot
        private void AddIdentityServer(IIdentityServerConfiguration identityServerConfiguration, IAdministrationPath adminPath)
        {
            _services.TryAddSingleton <IIdentityServerConfiguration>(identityServerConfiguration);
            var identityServerBuilder = _services
                                        .AddIdentityServer(o => {
                o.IssuerUri = "Ocelot";
            })
                                        .AddInMemoryApiResources(Resources(identityServerConfiguration))
                                        .AddInMemoryClients(Client(identityServerConfiguration));

            var urlFinder            = new BaseUrlFinder(_configurationRoot);
            var baseSchemeUrlAndPort = urlFinder.Find();

            JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();

            _services.AddAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme)
            .AddIdentityServerAuthentication(o =>
            {
                o.Authority            = baseSchemeUrlAndPort + adminPath.Path;
                o.ApiName              = identityServerConfiguration.ApiName;
                o.RequireHttpsMetadata = identityServerConfiguration.RequireHttps;
                o.SupportedTokens      = SupportedTokens.Both;
                o.ApiSecret            = identityServerConfiguration.ApiSecret;
            });

            //todo - refactor naming..
            if (string.IsNullOrEmpty(identityServerConfiguration.CredentialsSigningCertificateLocation) || string.IsNullOrEmpty(identityServerConfiguration.CredentialsSigningCertificatePassword))
            {
                identityServerBuilder.AddDeveloperSigningCredential();
            }
            else
            {
                //todo - refactor so calls method?
                var cert = new X509Certificate2(identityServerConfiguration.CredentialsSigningCertificateLocation, identityServerConfiguration.CredentialsSigningCertificatePassword);
                identityServerBuilder.AddSigningCredential(cert);
            }
        }
コード例 #6
0
 private static bool AdministrationApiInUse(IAdministrationPath adminPath)
 {
     return(adminPath.GetType() != typeof(NullAdministrationPath));
 }
コード例 #7
0
        private static void AddIdentityServer(IIdentityServerConfiguration identityServerConfiguration, IAdministrationPath adminPath, IOcelotBuilder builder, IConfiguration configuration)
        {
            builder.Services.TryAddSingleton <IIdentityServerConfiguration>(identityServerConfiguration);
            var identityServerBuilder = builder.Services
                                        .AddIdentityServer(o =>
            {
                o.IssuerUri = "Ocelot";
                o.EmitStaticAudienceClaim = true;
            })
                                        .AddInMemoryApiScopes(ApiScopes(identityServerConfiguration))
                                        .AddInMemoryApiResources(Resources(identityServerConfiguration))
                                        .AddInMemoryClients(Client(identityServerConfiguration));

            var urlFinder            = new BaseUrlFinder(configuration);
            var baseSchemeUrlAndPort = urlFinder.Find();

            JwtSecurityTokenHandler.DefaultInboundClaimTypeMap.Clear();

            builder.Services
            .AddAuthentication(IdentityServerAuthenticationDefaults.AuthenticationScheme)
            .AddJwtBearer("Bearer", options =>
            {
                options.Authority            = baseSchemeUrlAndPort + adminPath.Path;
                options.RequireHttpsMetadata = identityServerConfiguration.RequireHttps;

                options.TokenValidationParameters = new TokenValidationParameters
                {
                    ValidateAudience = false,
                };
            });

            //todo - refactor naming..
            if (string.IsNullOrEmpty(identityServerConfiguration.CredentialsSigningCertificateLocation) || string.IsNullOrEmpty(identityServerConfiguration.CredentialsSigningCertificatePassword))
            {
                identityServerBuilder.AddDeveloperSigningCredential();
            }
            else
            {
                //todo - refactor so calls method?
                var cert = new X509Certificate2(identityServerConfiguration.CredentialsSigningCertificateLocation, identityServerConfiguration.CredentialsSigningCertificatePassword, X509KeyStorageFlags.MachineKeySet | X509KeyStorageFlags.Exportable);
                identityServerBuilder.AddSigningCredential(cert);
            }
        }