Ejemplo n.º 1
0
        /// <summary>重新加载</summary>
        private void Reload()
        {
            if (this.restartCount > 0)
            {
                KernelContext.Log.Info(string.Format(I18n.Strings["application_is_reloading"], AuthorityConfiguration.ApplicationName));

                // 重新加载配置信息
                AuthorityConfigurationView.Instance.Reload();
            }
            else
            {
                KernelContext.Log.Info(string.Format(I18n.Strings["application_is_loading"], AuthorityConfiguration.ApplicationName));
            }

            this.configuration = AuthorityConfigurationView.Instance.Configuration;

            // 创建对象构建器(Spring.NET)
            string springObjectFile = AuthorityConfigurationView.Instance.Configuration.Keys["SpringObjectFile"].Value;

            SpringObjectBuilder objectBuilder = SpringObjectBuilder.Create(AuthorityConfiguration.ApplicationName, springObjectFile);

            // 创建数据服务对象
            this.m_AuthorityService = objectBuilder.GetObject <IAuthorityService>(typeof(IAuthorityService));

            KernelContext.Log.Info(string.Format(I18n.Strings["application_is_successfully_loaded"], AuthorityConfiguration.ApplicationName));
        }
        /// <summary>构造函数</summary>
        public AuthorityProvider()
        {
            this.configuration = AuthorityConfigurationView.Instance.Configuration;

            this.ibatisMapping = this.configuration.Keys["IBatisMapping"].Value;

            this.ibatisMapper = ISqlMapHelper.CreateSqlMapper(this.ibatisMapping, true);
        }
Ejemplo n.º 3
0
        public void TestInit()
        {
            AuthorityConfiguration configuration = AuthorityConfigurationView.Instance.Configuration;

            Assert.IsNotNull(configuration);

            Assert.IsNotNull(configuration.Keys["SpringObjectFile"]);
            Assert.IsNotNull(configuration.Keys["IBatisMapping"]);
        }
        /// <summary>构造函数</summary>
        public AuthorityService()
        {
            this.configuration = AuthorityConfigurationView.Instance.Configuration;

            // 创建对象构建器(Spring.NET)
            string springObjectFile = this.configuration.Keys["SpringObjectFile"].Value;

            SpringObjectBuilder objectBuilder = SpringObjectBuilder.Create(AuthorityConfiguration.ApplicationName, springObjectFile);

            this.provider = objectBuilder.GetObject <IAuthorityProvider>(typeof(IAuthorityProvider));
        }
Ejemplo n.º 5
0
        public void TestCreateMapper()
        {
            AuthorityConfiguration configuration = AuthorityConfigurationView.Instance.Configuration;

            ISqlMapper ibatisMapper = null;

            string ibatisMapping = configuration.Keys["IBatisMapping"].Value;

            ibatisMapper = ISqlMapHelper.CreateSqlMapper(ibatisMapping, true);

            Assert.IsNotNull(ibatisMapper);
        }
Ejemplo n.º 6
0
        internal static IServiceCollection AddAuthorityConfiguration(this IServiceCollection services, IConfiguration configuration, out AuthorityConfiguration authorityConfiguration)
        {
            Log.Information("{method}", nameof(AddAuthorityConfiguration));

            authorityConfiguration = configuration.GetSection(nameof(AuthorityConfiguration)).Get <AuthorityConfiguration>();

            return(services.AddSingleton(authorityConfiguration));
        }
Ejemplo n.º 7
0
        internal static void AddCustomHealthChecks(this IServiceCollection services, WebApiConfiguration webApiConfiguration, AuthorityConfiguration authorityConfiguration, WebApiScopesConfiguration webApiScopesConfiguration, LDAPServerProfiles ldapServerProfiles)
        {
            Log.Information("{method}", nameof(AddCustomHealthChecks));

            if (!webApiConfiguration.HealthChecksConfiguration.EnableHealthChecks)
            {
                return;
            }

            IHealthChecksBuilder healthChecksBuilder = services.AddHealthChecks();

            if (!webApiScopesConfiguration.BypassApiScopesAuthorization)
            {
                healthChecksBuilder = healthChecksBuilder.AddUrlGroup(new Uri(authorityConfiguration.Authority), name: "OAuth/OpenId Server", tags: new string[] { authorityConfiguration.Authority });
            }

            foreach (var lp in ldapServerProfiles)
            {
                var portLc = lp.GetPort(false);
                var portGc = lp.GetPort(true);

                healthChecksBuilder = healthChecksBuilder.AddTcpHealthCheck(options =>
                {
                    options.AddHost(lp.Server, portLc);
                }, name: $"Connection: {lp.Server}:{portLc}", tags: new string[] { lp.ProfileId, lp.DefaultDomainName, $"SSL:{lp.UseSSL}" });

                healthChecksBuilder = healthChecksBuilder.AddTcpHealthCheck(options =>
                {
                    options.AddHost(lp.Server, portGc);
                }, name: $"Connection: {lp.Server}:{portGc}", tags: new string[] { lp.ProfileId, lp.DefaultDomainName, $"SSL:{lp.UseSSL}" });

                healthChecksBuilder = healthChecksBuilder.AddPingHealthCheck(options => options.AddHost(lp.Server, lp.HealthCheckPingTimeout), $"Ping: {lp.Server}", tags: new string[] { lp.ProfileId, lp.DefaultDomainName, $"SSL:{lp.UseSSL}" });
            }

            services.AddHealthChecksUI(settings =>
            {
                settings
                .SetHeaderText(webApiConfiguration.HealthChecksConfiguration.HealthChecksHeaderText)
                .SetEvaluationTimeInSeconds(webApiConfiguration.HealthChecksConfiguration.EvaluationTime)
                .MaximumHistoryEntriesPerEndpoint(webApiConfiguration.HealthChecksConfiguration.MaximunHistoryEntries)
                .AddHealthCheckEndpoint(webApiConfiguration.HealthChecksConfiguration.HealthChecksGroupName, $"{webApiConfiguration.WebApiBaseUrl}/{webApiConfiguration.HealthChecksConfiguration.ApiEndPointName}");
            })
            .AddInMemoryStorage();
        }
Ejemplo n.º 8
0
        internal static IServiceCollection AddAuthorizationWithApiScopePolicies(this IServiceCollection services, WebApiScopesConfiguration webApiScopesConfiguration, AuthorityConfiguration authorityConfiguration)
        {
            Log.Information("{method}", nameof(AddAuthorizationWithApiScopePolicies));

            if (webApiScopesConfiguration.BypassApiScopesAuthorization)
            {
                services.AddSingleton <IPolicyEvaluator, Controllers.PolicyEvaluators.AuthorizationBypassPolicyEvaluator>();
            }

            services.AddAuthorization(options =>
            {
                options.AddPolicy(WebApiScopesConfiguration.GlobalScopeAuthorizationPolicyName, policy =>
                {
                    policy.Requirements.Add(new ApiScopeRequirement(new string[] { webApiScopesConfiguration.GlobalScopeName }, authorityConfiguration.Authority));
                });
            });

            return(services.AddSingleton <IAuthorizationHandler, ApiScopeRequirementHandler>());
        }
Ejemplo n.º 9
0
        internal static IServiceCollection AddAuthenticationWithIdentityServer(this IServiceCollection services, AuthorityConfiguration authorityConfiguration)
        {
            Log.Information("{method}", nameof(AddAuthenticationWithIdentityServer));

            services.AddAuthentication(co =>
            {
                co.DefaultScheme          = Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerDefaults.AuthenticationScheme;
                co.DefaultChallengeScheme = Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerDefaults.AuthenticationScheme;
            })
            .AddIdentityServerAuthentication(options =>
            {
                options.Authority            = authorityConfiguration.Authority;
                options.ApiName              = authorityConfiguration.ApiResource;
                options.RequireHttpsMetadata = authorityConfiguration.RequireHttpsMetadata;
            });

            return(services);
        }
        public void ConfiguredApplication_ReturnsCommandLineApp()
        {
            var instance = AuthorityConfiguration.Default().ConfiguredApplication();

            Assert.That(instance, Is.TypeOf <CommandLineApplication>());
        }
        public void Default_ReturnsConfigInstance()
        {
            var instance = AuthorityConfiguration.Default();

            Assert.That(instance, Is.Not.Null);
        }