Esempio n. 1
0
        public static bool TryGet <T>(this IConfigResolver configResolver, string key, out T value)
        {
            var returnResult = configResolver.TryGet(key, typeof(T).GetTypeInfo(), out var returnValue);

            value = (T)returnValue;
            return(returnResult);
        }
Esempio n. 2
0
        //////////////////////////////////////////////////////////////
        /// <summary>
        ///   This factory method returns the appropriate resolver to
        ///   the consumer.  The definition of "appropriate" is left
        ///   to the implementation of the config resolver.
        /// </summary>
        /// <param name="key">the key to be tested</param>
        /// <param name="supplier">the potential new supplier</param>
        /// <param name="current">the current supplier</param>
        //////////////////////////////////////////////////////////////

        public virtual IConfigResolver GetResolver(string key,
                                                   IConfigSupplier supplier,
                                                   IConfigResolver current)
        {
            IConfigResolver cr = null;

            if (_debug.IsActive)
            {
                _debug.WriteLine("template:  getting resolver for key:  " + key);
                _debug.WriteLine("template:  supplier:  " + supplier);
                _debug.WriteLine("template:  current:  " + current);
            }

            // only do something if the supplier can read the key
            if (supplier.CanRead(key))
            {
                cr = new DefaultConfigResolver(key, supplier);
            }
            else
            {
                return(current);
            }

            // if we get here, the supplier can read the key, so
            // it is just a matter of hooking up the relationships
            if (current != null)
            {
                current.Parent = cr;
                cr             = current;
            }

            return(cr);
        }
Esempio n. 3
0
        private static void InitCacheManager(IWindsorContainer container, IConfigResolver localConfigResolver)
        {
            if (localConfigResolver.CacheManagerConfig().Items.Count == 0)
            {
                return;
            }
            localConfigResolver.CacheManagerConfig().Items.ForEach(m =>
            {
                Action <ConfigurationBuilderCachePart> settings;
                var redisConfigName = $"{m.RedisConfigName}_connection";
                if (!IocManager.Instance.IsRegistered(redisConfigName))
                {
                    return;
                }

                var redisConnectionWrapper = IocManager.Instance.Resolve <IRedisConnectionWrapper>(redisConfigName);
                switch (m.CacheModel)
                {
                case EumCacheModel.Redis:
                    {
                        settings = (o) => o.WithRedisConfiguration("redis", redisConnectionWrapper.Database().Multiplexer).WithMaxRetries(100).WithRetryTimeout(50).WithRedisBackplane("redis").WithRedisCacheHandle("redis", true); break;
                    }

                case EumCacheModel.RuntimeRedis:
                    {
                        settings = (o) => o.WithMemoryCacheHandle("handleName").And.WithRedisConfiguration("redis", redisConnectionWrapper.Database().Multiplexer).WithMaxRetries(100).WithRetryTimeout(50).WithRedisBackplane("redis").WithRedisCacheHandle("redis", true); break;
                    }

                default: return;
                }

                // 注册
                container.Register(Component.For <ICacheManager>().Named(m.Name).ImplementedBy <Cache.CacheManager>().DependsOn(Dependency.OnValue(settings.GetType(), settings)).LifestyleSingleton());
            });
        }
Esempio n. 4
0
        //////////////////////////////////////////////////////////////
        /// <summary>
        ///   This factory method returns the appropriate resolver to
        ///   the consumer.  The definition of "appropriate" is left
        ///   to the implementation of the config resolver.
        /// </summary>
        /// <param name="key">the key to be tested</param>
        /// <param name="supplier">the potential new supplier</param>
        /// <param name="current">the current supplier</param>
        //////////////////////////////////////////////////////////////

        public override IConfigResolver GetResolver(string key,
                                                    IConfigSupplier supplier,
                                                    IConfigResolver current)
        {
            // unfortunately, this is pretty much cut-n-paste code
            // reuse from the base class... :(

            IConfigResolver cr = null;

            // only do something if the supplier can read the key
            if (supplier.CanRead(key))
            {
                cr = new WriteCaptureConfigResolver(key,
                                                    supplier, _write);
            }
            else
            {
                return(current);
            }

            // if we get here, the supplier can read the key, so
            // it is just a matter of hooking up the relationships
            if (current != null)
            {
                current.Parent = cr;
                cr             = current;
            }

            return(cr);
        }
 public Replicator(
     IReplicationWorker replicationWorker,
     IConfigResolver configResolver,
     ILogger logger,
     IUsageHelpProvider usageHelpProvider)
 {
     _replicationWorker = replicationWorker;
     _configResolver    = configResolver;
     _logger            = logger;
     _usageHelpProvider = usageHelpProvider;
 }
Esempio n. 6
0
        private static void InitConfig(IConfigResolver configResolver)
        {
            var config = configResolver.NLogConfig();

            if (config == null || config.AppName == null)
            {
                configResolver.Set(new NLogConfig {
                    AppName = "Default"
                });
                configResolver.Save();
            }
        }
Esempio n. 7
0
        public void GetConfigResolverTest()
        {
            // Arrange.
            IUnityContainer container = UnityFactory.GetContainer();

            // Act.
            IConfigResolver configResolver = container.Resolve <IConfigResolver>();

            configResolver.ResolveConnectionString("TestConnStr");

            // Assert.
            Assert.NotNull(configResolver);
        }
Esempio n. 8
0
        /// <summary>
        /// 扫描所有继承FarseerConfig类的配置文件
        /// </summary>
        public override void PreInitialize()
        {
            IocManager.Container.Install(new ConfigurationInstaller());

            // 取出本地配置解析器
            _configResolver = IocManager.Resolve <IConfigResolver>("LocalConfigResolver");

            // 扫描所有继承FarseerConfig类的配置文件
            ScanAppendFarseerConfig();

            // 加载配置文件
            _configResolver.Load();
        }
Esempio n. 9
0
        /// <inheritdoc />
        private void InitConfig(IConfigResolver configResolver)
        {
            // 全局配置
            var globalConfig = configResolver.Get <GlobalConfig>();

            if (globalConfig == null)
            {
                configResolver.Set(new GlobalConfig {
                    AppName = ""
                });
                configResolver.Save();
            }
        }
Esempio n. 10
0
        private void InitConfig(IConfigResolver configResolver)
        {
            var config = configResolver.DbConfig();

            if (config == null)
            {
                configResolver.Set(config = new DbConfig {
                    Items = new List <DbItemConfig> {
                        new DbItemConfig {
                            Name = "testDb", Server = "127.0.0.1"
                        }
                    }
                });
                configResolver.Save();
            }
        }
Esempio n. 11
0
        private static void InitConfig(IConfigResolver configResolver)
        {
            var config = configResolver.MongoConfig();

            if (config == null || config.Items.Count == 0)
            {
                configResolver.Set(new MongoConfig {
                    Items = new List <MongoItemConfig> {
                        new MongoItemConfig {
                            Name = "Default", Server = "mongodb://127.0.0.1:27017"
                        }
                    }
                });
                configResolver.Save();
            }
        }
Esempio n. 12
0
        private void InitConfig(IConfigResolver configResolver)
        {
            var config = configResolver.KafkaConfig();

            if (config == null || config.Items.Count == 0)
            {
                configResolver.Set(new KafkaConfig {
                    Items = new List <KafkaItemConfig> {
                        new KafkaItemConfig {
                            Name = "test", Server = "IP:Host"
                        }
                    }
                });
                configResolver.Save();
            }
        }
Esempio n. 13
0
        private void InitRedisConfig(IWindsorContainer container, IConfigResolver localConfigResolver)
        {
            if (localConfigResolver.RedisConfig().Items.Count == 0)
            {
                return;
            }

            localConfigResolver.RedisConfig().Items.ForEach(m =>
            {
                // 注册Redis连接
                container.Register(Component.For <IRedisConnectionWrapper>().Named($"{m.Name}_connection").ImplementedBy <RedisConnectionWrapper>().DependsOn(Dependency.OnValue(m.GetType(), m)).LifestyleSingleton());

                // 注册Redis管理
                container.Register(Component.For <IRedisCacheManager>().Named(m.Name).ImplementedBy <RedisCacheManager>().DependsOn(Dependency.OnValue(m.GetType(), m), Dependency.OnValue(typeof(IRedisConnectionWrapper), _iocResolver.Resolve <IRedisConnectionWrapper>($"{m.Name}_connection"))).LifestyleSingleton());
            });
        }
Esempio n. 14
0
        private void InitConfig(IConfigResolver configResolver)
        {
            var config = configResolver.RedisConfig();

            if (config == null || config.Items.Count == 0)
            {
                configResolver.Set(new RedisConfig {
                    Items = new List <RedisItemConfig> {
                        new RedisItemConfig {
                            Name = "testRedis", Server = "10.9.15.32:6388,10.9.15.38:6379,10.9.15.33:6383,10.9.15.36:6389,10.9.15.34:6382,10.9.15.35:6382,syncTimeout=60000"
                        }
                    }
                });
                configResolver.Save();
            }
        }
Esempio n. 15
0
        public void ResolveConnectionStringTest()
        {
            // Arrange.
            IUnityContainer container      = UnityFactory.GetContainer();
            IConfigResolver configResolver = container.Resolve <IConfigResolver>();

            Assert.NotNull(configResolver);
            string connectionStringName = "TestConnStr";
            string expectedResult       = @"SERVER=.\SQLEXPRESS;Trusted_connection=yes;DATABASE=Test;";

            // Act.
            string actualResult = configResolver.ResolveConnectionString(connectionStringName);

            // Assert.
            Assert.Equal(expectedResult, actualResult);
        }
Esempio n. 16
0
        private void InitConfig(IConfigResolver configResolver)
        {
            var config = configResolver.CacheManagerConfig();

            if (config == null || config.Items.Count == 0)
            {
                configResolver.Set(new CacheManagerConfig {
                    Items = new List <CacheManagerItemConfig> {
                        new CacheManagerItemConfig {
                            Name = "test", RedisConfigName = "", CacheModel = EumCacheModel.Runtime
                        }
                    }
                });
                configResolver.Save();
            }
        }
Esempio n. 17
0
        private static void InitConfig(IConfigResolver configResolver)
        {
            var config = configResolver.ElasticSearchConfig();

            if (config == null || config.Items.Count == 0)
            {
                configResolver.Set(new ElasticSearchConfig {
                    Items = new List <ElasticSearchItemConfig> {
                        new ElasticSearchItemConfig {
                            Name = "Default", Server = "http://10.9.15.141:9200"
                        }
                    }
                });
                configResolver.Save();
            }
        }
Esempio n. 18
0
        /// <inheritdoc />
        private void InitConfig(IConfigResolver configResolver)
        {
            var config = configResolver.RocketMQConfig();

            if (config == null || config.Items.Count == 0)
            {
                configResolver.Set(new RocketMQConfig {
                    Items = new List <RocketMQItemConfig> {
                        new RocketMQItemConfig {
                            Name = "test", Server = "", AccessKey = "AccessKey", SecretKey = "SecretKey", ProducerID = "ProducerID", ConsumerID = "ConsumerID", Topic = "Topic", Channel = ONSChannel.CLOUD, ConsumeThreadNums = 16
                        }
                    }
                });
                configResolver.Save();
            }
        }
Esempio n. 19
0
        //////////////////////////////////////////////////////////////
        /// <summary>
        ///   This indexer provides access to a configuration
        ///   setting.  If the setting does not exist, a null is
        ///   returned.
        /// </summary>
        //////////////////////////////////////////////////////////////

        public string this[string key]
        {
            get
            {
                IConfigResolver cr = (IConfigResolver)_hash[key];
                if (cr != null)
                {
                    return(cr[key]);
                }

                return(null);
            }

            set
            {
                IConfigResolver cr = (IConfigResolver)_hash[key];
                if (cr != null)
                {
                    cr[key] = value;
                }
            }
        }
Esempio n. 20
0
 public SymmetricTokenGenerator(IConfigResolver configResolver)
 {
     _configResolver = configResolver;
 }
Esempio n. 21
0
 /// <summary>
 /// 获取配置文件
 /// </summary>
 public static RedisConfig RedisConfig(this IConfigResolver resolver) => resolver.Get <RedisConfig>();
Esempio n. 22
0
 //
 public CodeGenerationContext(IConfigResolver configResolver, ISchemaFetcher schemaFetcher)
 {
     _configResolver = configResolver;
     _schemaFetcher  = schemaFetcher;
 }
        public static IServiceCollection AddSecurity(this IServiceCollection services, IConfigResolver configResolver)
        {
            var resolver = configResolver.Resolve <AuthenticationConfig>();

            services.AddAuthentication(options =>
            {
                options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
                options.DefaultChallengeScheme    = JwtBearerDefaults.AuthenticationScheme;
            }
                                       )
            .AddJwtBearer(options =>
            {
                options.TokenValidationParameters = new TokenValidationParameters
                {
                    RequireExpirationTime = true,
                    ValidateLifetime      = true,
                    ClockSkew             = TimeSpan.Zero,
                    ValidateIssuer        = true,
                    ValidIssuer           = "MyCommerce.Authentication",

                    ValidateAudience = false,

                    RequireSignedTokens = true,
                    IssuerSigningKey    = new SymmetricSecurityKey(Convert.FromBase64String(resolver.Secret))
                };
                options.Events = new JwtBearerEvents
                {
                    OnTokenValidated = ctx =>
                    {
                        return(Task.CompletedTask);
                    },
                    OnChallenge = ctx =>
                    {
                        return(Task.CompletedTask);
                    },

                    OnAuthenticationFailed = ctx =>
                    {
                        if (ctx.Exception.GetType() == typeof(SecurityTokenExpiredException))
                        {
                            ctx.Response.Headers.Add("Token-Expired", true.ToString().ToLower());
                        }
                        ctx.Fail("Not Authorized");
                        return(Task.CompletedTask);
                    }
                };
            });

            return(services);
        }
Esempio n. 24
0
 /// <summary>
 /// 获取配置文件
 /// </summary>
 public static MongoConfig MongoConfig(this IConfigResolver resolver) => resolver.Get <MongoConfig>();
Esempio n. 25
0
 /// <summary>
 /// 获取配置文件
 /// </summary>
 public static DbConfig DbConfig(this IConfigResolver resolver) => resolver.Get <DbConfig>();
Esempio n. 26
0
 public ConfigValueResolver(IConfigResolver configResolver)
 {
     _configResolver = configResolver;
 }
Esempio n. 27
0
 /// <summary>
 /// 获取配置文件
 /// </summary>
 public static NLogConfig NLogConfig(this IConfigResolver resolver) => resolver.Get <NLogConfig>();
Esempio n. 28
0
 /// <summary>
 ///     获取配置文件
 /// </summary>
 public static RocketMQConfig RocketMQConfig(this IConfigResolver resolver) => resolver.Get <RocketMQConfig>() ?? new RocketMQConfig
 {
     Items = new List <RocketMQItemConfig>()
 };
Esempio n. 29
0
 /// <summary>
 /// 获取配置文件
 /// </summary>
 public static KafkaConfig KafkaConfig(this IConfigResolver resolver) => resolver.Get <KafkaConfig>() ?? new KafkaConfig
 {
     Items = new List <KafkaItemConfig>()
 };
Esempio n. 30
0
 public AutoRegisterOptionsBuilder ConfigResolver(IConfigResolver configResolver)
 {
     Options.ConfigResolver = configResolver;
     return(this);
 }