public RoadkillRegistry(ConfigReaderWriter configReader) { ApplicationSettings = configReader.GetApplicationSettings(); Scan(ScanTypes); ConfigureInstances(configReader); }
public ConfigurationTesterController(ApplicationSettings appSettings, IUserContext userContext, ConfigReaderWriter configReaderWriter, IActiveDirectoryProvider activeDirectoryProvider) { _applicationSettings = appSettings; _userContext = userContext; _configReaderWriter = configReaderWriter; _activeDirectoryProvider = activeDirectoryProvider; }
public UpgradeController(ApplicationSettings settings, IRepository repository, UserServiceBase userService, IUserContext context, SettingsService settingsService, ConfigReaderWriter configReaderWriter) : base(settings, userService, context, settingsService) { _repository = repository; _configReaderWriter = configReaderWriter; }
public SettingsController(ApplicationSettings settings, UserServiceBase userManager, SettingsService settingsService, IUserContext context, SiteCache siteCache, ConfigReaderWriter configReaderWriter) : base(settings, userManager, context, settingsService) { _settingsService = settingsService; _siteCache = siteCache; _configReaderWriter = configReaderWriter; }
public ConfigurationTesterController(ApplicationSettings appSettings, IUserContext userContext, ConfigReaderWriter configReaderWriter, IActiveDirectoryProvider activeDirectoryProvider, UserServiceBase userService, IDatabaseTester databaseTester) { _applicationSettings = appSettings; _userContext = userContext; _configReaderWriter = configReaderWriter; _activeDirectoryProvider = activeDirectoryProvider; _userService = userService; _databaseTester = databaseTester; }
public InstallController(ApplicationSettings settings, UserServiceBase userService, PageService pageService, SearchService searchService, IRepository respository, SettingsService settingsService, IUserContext context, ConfigReaderWriter configReaderWriter) : base(settings, userService, context, settingsService) { _pageService = pageService; _searchService = searchService; _repository = respository; _settingsService = settingsService; _configReaderWriter = configReaderWriter; }
private void ConfigureInstances(ConfigReaderWriter configReader) { // Appsettings and reader - these need to go first For <ConfigReaderWriter>().HybridHttpOrThreadLocalScoped().Use(configReader); For <ApplicationSettings>() .HybridHttpOrThreadLocalScoped() .Use(x => x.TryGetInstance <ConfigReaderWriter>().GetApplicationSettings()); // Repositories ConfigureRepositories(); // Work around for controllers that use RenderAction() needing to be unique // See https://github.com/webadvanced/Structuremap.MVC5/issues/3 For <HomeController>().AlwaysUnique(); For <UserController>().AlwaysUnique(); For <ConfigurationTesterController>().AlwaysUnique(); For <WikiController>().AlwaysUnique(); // Plugins For <IPluginFactory>().Singleton().Use <PluginFactory>(); // Screwturn importer For <IWikiImporter>().Use <ScrewTurnImporter>(); // Emails For <SignupEmail>().Use <SignupEmail>(); For <ResetPasswordEmail>().Use <ResetPasswordEmail>(); // Cache For <ObjectCache>().Singleton().Use(new MemoryCache("Roadkill")); For <ListCache>().Singleton(); For <SiteCache>().Singleton(); For <PageViewModelCache>().Singleton(); For <IPluginCache>().Use <SiteCache>(); // Services For <IPageService>().HybridHttpOrThreadLocalScoped().Use <PageService>(); For <IInstallationService>().HybridHttpOrThreadLocalScoped().Use <InstallationService>(); // Security For <IAuthorizationProvider>().Use <AuthorizationProvider>(); For <IUserContext>().HybridHttpOrThreadLocalScoped(); #if !MONO For <IActiveDirectoryProvider>().Use <ActiveDirectoryProvider>(); #endif // User service ConfigureUserService(); // File service ConfigureFileService(); // Setter injected classes ConfigureSetterInjection(); }
public void should_get_application_settings_from_config_reader_instance() { // Arrange IContainer container = CreateContainer(); // Act ConfigReaderWriter configReader = container.GetInstance <ConfigReaderWriter>(); ApplicationSettings settings = container.GetInstance <ApplicationSettings>(); // Assert Assert.That(settings, Is.Not.Null); Assert.That(configReader, Is.TypeOf <ConfigReaderWriterStub>()); }
/// <summary> /// Write a new config file /// </summary> /// <param name="xml">Xml of the new config file</param> /// <returns>Task</returns> public async Task WriteConfigAsync(string xml) { // Ensure valid xml before writing the file XmlDocument doc = new XmlDocument(); using (XmlReader xmlReader = XmlReader.Create(new StringReader(xml), new XmlReaderSettings { CheckCharacters = false })) { doc.Load(xmlReader); } await ConfigReaderWriter.WriteConfigAsync(xml); }
/// <summary> /// /// </summary> /// <param name="applicationSettings">Use solely to detect whether Roadkill is already installed.</param> public InstallController(ApplicationSettings applicationSettings, ConfigReaderWriter configReaderWriter, IInstallationService installationService, IDatabaseTester databaseTester) { _configReaderWriter = configReaderWriter; _installationService = installationService; _databaseTester = databaseTester; ApplicationSettings = applicationSettings; // These aren't needed for the installer Context = null; SettingsService = null; UserService = null; }
internal async Task UpdateConfiguration() { try { ConfigFilePath = (!File.Exists(ConfigFilePath) ? Path.Combine(AppContext.BaseDirectory, IPBanService.ConfigFileName) : ConfigFilePath); string newXml = await ConfigReaderWriter.CheckForConfigChange(); if (!string.IsNullOrWhiteSpace(newXml)) { IPBanConfig oldConfig = Config; IPBanConfig newConfig = IPBanConfig.LoadFromXml(newXml, DnsLookup); ConfigChanged?.Invoke(newConfig); whitelistChanged = (Config is null || Config.Whitelist != newConfig.Whitelist || Config.WhitelistRegex != newConfig.WhitelistRegex); Config = newConfig; LoadFirewall(oldConfig); ParseAndAddUriFirewallRules(newConfig); Logger.Info("Config file changed"); } } catch (Exception ex) { Logger.Error(ex); } if (Config is null) { throw new ApplicationException("Configuration failed to load, make sure to check for XML errors or unblock all the files."); } if (Firewall is null) { throw new ApplicationException("Firewall failed to load, check that your firewall is enabled and setup in configuration properly"); } // set or unset default banned ip address handler based on config if (Config.UseDefaultBannedIPAddressHandler && BannedIPAddressHandler is null) { BannedIPAddressHandler = new DefaultBannedIPAddressHandler(); } else if (!Config.UseDefaultBannedIPAddressHandler && BannedIPAddressHandler != null && BannedIPAddressHandler is DefaultBannedIPAddressHandler) { BannedIPAddressHandler = NullBannedIPAddressHandler.Instance; } // will only execute once UpdateBannedIPAddressesOnStart(); // will only execute once SetupWindowsEventViewer(); }
internal async Task UpdateConfiguration() { try { ConfigFilePath = (!File.Exists(ConfigFilePath) ? Path.Combine(AppContext.BaseDirectory, IPBanConfig.DefaultFileName) : ConfigFilePath); var configChange = await ConfigReaderWriter.CheckForConfigChange(); if (!string.IsNullOrWhiteSpace(configChange.Item1)) { IPBanConfig oldConfig = Config; IPBanConfig newConfig = IPBanConfig.LoadFromXml(configChange.Item1, DnsLookup, DnsList, RequestMaker); ConfigChanged?.Invoke(newConfig); whitelistChanged = (Config is null || Config.Whitelist != newConfig.Whitelist || Config.WhitelistRegex != newConfig.WhitelistRegex); Config = newConfig; LoadFirewall(oldConfig); ParseAndAddUriFirewallRules(newConfig); // if the config change was not a force refresh with no actual config values changed, log it if (!configChange.Item2) { Logger.Info("Config file changed"); } } } catch (Exception ex) { Logger.Error(ex); } if (Config is null) { throw new ApplicationException("Configuration failed to load, make sure to check for XML errors or unblock all the files."); } if (Firewall is null) { throw new ApplicationException("Firewall failed to load, check that your firewall is enabled and setup in configuration properly"); } // set or unset default banned ip address handler based on config if (Config.UseDefaultBannedIPAddressHandler && BannedIPAddressHandler is null) { BannedIPAddressHandler = new DefaultBannedIPAddressHandler(); } else if (!Config.UseDefaultBannedIPAddressHandler && BannedIPAddressHandler != null && BannedIPAddressHandler is DefaultBannedIPAddressHandler) { BannedIPAddressHandler = NullBannedIPAddressHandler.Instance; } }
public void When_WebConfigExists_Constructor_Should_BackupConfigFile() { _fileWrapperMock.Setup(f => f.Exists(It.IsAny <string>())).Returns(true); _configurationFactoryMock.Setup(f => f.GetConfiguration(It.IsAny <string>())).Returns(new Microsoft.Extensions.Configuration.ConfigurationBuilder().Build()); _configManagerSettingsBuilder.Setup(f => f.GetConfigPaths()).Returns(("", WEB_CONFIG_FILE_NAME)); _writer = new ConfigReaderWriterBuilder(_configManagerSettingsBuilder.Object, options => { options.ConfigurationFactory = _configurationFactoryMock.Object; options.FileWrapper = _fileWrapperMock.Object; options.XmlDocumentWrapper = _xmlDocumentWrapperMock.Object; options.Logger = _consoleLoggerMock.Object; options.EnvironmentWrapper = _environmentWrapperMock.Object; options.BuildPath = WEB_CONFIG_FILE_NAME; }).Build(); _fileWrapperMock.Verify(f => f.Copy(It.IsAny <string>(), It.IsAny <string>()), Times.Once); }
private void LoadWebConfigAsXmlDocument() { XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(WEB_CONFIG_FILE_NAME); _fileWrapperMock.Setup(f => f.Exists(It.IsAny <string>())).Returns(true); _xmlDocumentWrapperMock.Setup(f => f.CreateXmlDocFromFile(It.IsAny <string>())).Returns(xmldoc); _configurationFactoryMock.Setup(f => f.GetConfiguration(It.IsAny <string>())).Returns(new Microsoft.Extensions.Configuration.ConfigurationBuilder().Build()); _configManagerSettingsBuilder.Setup(f => f.GetConfigPaths()).Returns(("", WEB_CONFIG_FILE_NAME)); _writer = new ConfigReaderWriterBuilder(_configManagerSettingsBuilder.Object, options => { options.ConfigurationFactory = _configurationFactoryMock.Object; options.EnvironmentWrapper = _environmentWrapperMock.Object; options.FileWrapper = _fileWrapperMock.Object; options.Logger = _consoleLoggerMock.Object; options.XmlDocumentWrapper = _xmlDocumentWrapperMock.Object; options.BuildPath = WEB_CONFIG_FILE_NAME; }).Build(); }
internal async Task ReadAppSettings() { try { ConfigFilePath = (!File.Exists(ConfigFilePath) ? Path.Combine(AppDomain.CurrentDomain.BaseDirectory, IPBanService.ConfigFileName) : ConfigFilePath); string newXml = await ConfigReaderWriter.CheckForConfigChange(); if (!string.IsNullOrWhiteSpace(newXml)) { IPBanConfig oldConfig = Config; IPBanConfig newConfig = IPBanConfig.LoadFromXml(newXml, DnsLookup); UpdateLogFiles(newConfig); whitelistChanged = (Config == null || Config.WhiteList != newConfig.WhiteList || Config.WhiteListRegex != newConfig.WhiteListRegex); Config = newConfig; LoadFirewall(oldConfig); } } catch (Exception ex) { IPBanLog.Error(ex); if (Config == null) { throw new ApplicationException("Configuration failed to load, make sure to check for XML errors or unblock all the files.", ex); } } // set or unset default banned ip address handler based on config if (Config.UseDefaultBannedIPAddressHandler && BannedIPAddressHandler == null) { BannedIPAddressHandler = new DefaultBannedIPAddressHandler(); } else if (!Config.UseDefaultBannedIPAddressHandler && BannedIPAddressHandler != null && BannedIPAddressHandler is DefaultBannedIPAddressHandler) { BannedIPAddressHandler = null; } }
/// <summary> /// Read configuration /// </summary> /// <returns>Configuration xml</returns> public Task <string> ReadConfigAsync() { return(ConfigReaderWriter.ReadConfigAsync()); }
public InstallControllerStub(ApplicationSettings settings, UserServiceBase userService, PageService pageService, SearchService searchService, IRepository respository, SettingsService settingsService, IUserContext context, ConfigReaderWriter configReaderWriter) : base(settings, userService, pageService, searchService, respository, settingsService, context, configReaderWriter) { }
public UpgradeControllerStub(ApplicationSettings settings, UserServiceBase userService, IRepository respository, SettingsService settingsService, IUserContext context, ConfigReaderWriter configReaderWriter) : base(settings, respository, userService, context, settingsService, configReaderWriter) { }
public InstallControllerStub(ApplicationSettings settings, ConfigReaderWriter configReaderWriter, IInstallationService installationService, IDatabaseTester databaseTester) : base(settings, configReaderWriter, installationService, databaseTester) { }