Ejemplo n.º 1
0
        /// <summary>
        /// Reloads the configuration if it has changed since the last time we fetched it.
        /// </summary>
        private void RefreshConfiguration()
        {
            if (_SharedConfiguration == null)
            {
                _SharedConfiguration = Factory.ResolveSingleton <ISharedConfiguration>();
            }

            var configurationChangedUtc = _SharedConfiguration.GetConfigurationChangedUtc();

            if (_ConfigurationLastParsed < configurationChangedUtc)
            {
                _ConfigurationLastParsed = configurationChangedUtc;

                var configuration = _SharedConfiguration.Get();
                var allowDomains  = (configuration.GoogleMapSettings.AllowCorsDomains ?? "").Trim();

                _CorsEnabled     = configuration.GoogleMapSettings.EnableCorsSupport;
                _AllowAllDomains = allowDomains == "*";
                _AllowedDomains  = _AllowAllDomains ? new string[0] :
                                   allowDomains
                                   .Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries)
                                   .Select(r => r.Trim().ToLowerInvariant())
                                   .Distinct()
                                   .ToArray();
            }
        }
 /// <summary>
 /// See interface docs.
 /// </summary>
 /// <param name="sharedConfiguration"></param>
 public void SharedConfigurationChanged(ISharedConfiguration sharedConfiguration)
 {
     _Wrapped.Enabled = sharedConfiguration
                        .Get()
                        .GoogleMapSettings
                        .EnableCompression;
 }
Ejemplo n.º 3
0
        /// <summary>
        /// See interface docs.
        /// </summary>
        /// <param name="settings"></param>
        public void Connect(XPlaneSettings settings)
        {
            if (_SharedConfig == null)
            {
                _SharedConfig = Factory.ResolveSingleton <ISharedConfiguration>();
            }

            if (_XplaneUdp != null)
            {
                Disconnect();
            }

            var xplaneUdp = Factory.Resolve <IXPlaneUdp>();

            xplaneUdp.Initialise(
                settings.Host,
                settings.XPlanePort,
                settings.ReplyPort
                );

            xplaneUdp.SendRPOS(1);
            xplaneUdp.StartListener();

            _XplaneUdp = xplaneUdp;
            _XplaneUdp.RposReplyReceived += XPlaneUdp_RposReplyReceived;
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Initialises the object.
        /// </summary>
        private void Initialise()
        {
            if (!_Initialised)
            {
                lock (_QueueLock) {
                    if (!_Initialised)
                    {
                        _Initialised = true;
                        QueueRepository.AddQueue(this);
                        _SharedConfiguration = Factory.Singleton.Resolve <ISharedConfiguration>().Singleton;
                        _Clock = Factory.Singleton.Resolve <IClock>();
                        _IsRunningUnderTestEnvironment = Factory.Singleton.Resolve <IRuntimeEnvironment>().Singleton.IsTest;

                        // Give plugins two ways to set the provider - either they can fetch the singleton for this
                        // object and set the provider to their own implementation or they can register their provider
                        // as the default implementation for IAircraftOnlineLookupProvider.
                        if (Provider == null)
                        {
                            Provider = Factory.Singleton.Resolve <IAircraftOnlineLookupProvider>();
                            CheckProviderSanity();
                        }
                        _SecondsToNextLookup = Provider.MinSecondsBetweenRequests;

                        var heartbeatService = Factory.Singleton.Resolve <IHeartbeatService>().Singleton;
                        heartbeatService.FastTick += Heartbeat_FastTick;
                    }
                }
            }
        }
        public static IServiceCollection AddSharedConfiguration(this IServiceCollection services, SharedConfiguration sharedConfiguration)
        {
            IServiceProvider serviceProvider = services.AddSingleton <ISharedConfiguration>(sharedConfiguration).BuildServiceProvider();

            SharedConfiguration = serviceProvider.GetRequiredService <ISharedConfiguration>();

            return(services);
        }
Ejemplo n.º 6
0
 /// <summary>
 /// Creates a new object.
 /// </summary>
 public ImageServer()
 {
     _ImageServerConfiguration = Factory.ResolveSingleton <IImageServerConfiguration>();
     _SharedConfiguration      = Factory.ResolveSingleton <ISharedConfiguration>();
     _Graphics = Factory.ResolveSingleton <IWebSiteGraphics>();
     _AircraftPictureManager       = Factory.ResolveSingleton <IAircraftPictureManager>();
     _AutoConfigPictureFolderCache = Factory.ResolveSingleton <IAutoConfigPictureFolderCache>();
 }
Ejemplo n.º 7
0
 /// <summary>
 /// Returns true if minification is enabled.
 /// </summary>
 private bool IsEnabled()
 {
     if (_SharedConfiguration == null)
     {
         _SharedConfiguration = Factory.Singleton.ResolveSingleton <ISharedConfiguration>();
     }
     return(_SharedConfiguration.Get().GoogleMapSettings.EnableMinifying);
 }
        /// <summary>
        /// Creates a new object.
        /// </summary>
        public AutoConfigCompressionManipulator()
        {
            _SharedConfiguration = Factory.ResolveSingleton <ISharedConfiguration>();

            _Wrapped = Factory.Resolve <ICompressResponseManipulator>();
            SharedConfigurationChanged(_SharedConfiguration);

            _SharedConfiguration.AddWeakSubscription(this);
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Creates a new object.
        /// </summary>
        public BasicAuthenticationFilter()
        {
            _SharedConfiguration         = Factory.Singleton.ResolveSingleton <ISharedConfiguration>();
            _AuthenticationConfiguration = Factory.Singleton.ResolveSingleton <IAuthenticationConfiguration>();
            _UserManager = Factory.Singleton.ResolveSingleton <IUserManager>();

            _UserCache = Factory.Singleton.Resolve <IUserCache>();
            _UserCache.LoadAllUsers = false;
            _UserCache.TagAction    = (cachedUser) => cachedUser.Tag = new CachedUserTag();
            _UserCache.Refresh();
        }
Ejemplo n.º 10
0
        /// <summary>
        /// See interface docs.
        /// </summary>
        public void Initialise(IWebSiteProvider provider)
        {
            if (provider == null)
            {
                throw new ArgumentNullException("provider");
            }
            Provider = provider;

            _SharedConfiguration = Factory.Singleton.Resolve <ISharedConfiguration>().Singleton;
            _FeedManager         = Factory.Singleton.Resolve <IFeedManager>().Singleton;
            _EmptyAircraftList   = Factory.Singleton.Resolve <ISimpleAircraftList>();
        }
Ejemplo n.º 11
0
        /// <summary>
        /// See interface docs.
        /// </summary>
        private void Initialise()
        {
            if (!_Initialised)
            {
                _Initialised = true;

                _SharedConfiguration = Factory.ResolveSingleton <ISharedConfiguration>();
                _FeedManager         = Factory.ResolveSingleton <IFeedManager>();
                _EmptyAircraftList   = Factory.Resolve <ISimpleAircraftList>();
                _FileSystemProvider  = Factory.Resolve <IFileSystemProvider>();
                _Clock = Factory.Resolve <IClock>();
            }
        }
Ejemplo n.º 12
0
        private static void AddUrlPrefixes(ISharedConfiguration configuration, ref UrlPrefixCollection urlPrefixesColl)
        {
            string urlPrefixesValue = configuration.GetValue("Hosting:urlPrefixes");

            if (urlPrefixesValue != null)
            {
                string[] prefixsValues = urlPrefixesValue.Split(" ");

                foreach (string prefix in prefixsValues)
                {
                    urlPrefixesColl.Add(prefix);
                }
            }
        }
Ejemplo n.º 13
0
        public static async Task Main(string[] args)
        {
            ISharedConfiguration SharedConfiguration = HostBuilderExtensions.CreateConfigurationBuilder().Configuration();

            IHostBuilder builder = CreateHostBuilder(args)
                                   .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseConfiguration(SharedConfiguration)
                .UseStartup <Startup>()
                .CompleteHostConfiguration(SharedConfiguration);
            });

            await builder.Build().RunAsync();
        }
Ejemplo n.º 14
0
        /// <summary>
        /// See interface docs.
        /// </summary>
        /// <param name="environment"></param>
        /// <param name="textContent"></param>
        public void ManipulateTextResponse(IDictionary <string, object> environment, TextContent textContent)
        {
            var configuration = _SharedConfiguration;

            if (configuration == null)
            {
                configuration        = Factory.ResolveSingleton <ISharedConfiguration>();
                _SharedConfiguration = configuration;
            }

            if (configuration.Get().GoogleMapSettings.EnableBundling)
            {
                var context      = PipelineContext.GetOrCreate(environment);
                var htmlDocument = new HtmlDocument();
                htmlDocument.LoadHtml(textContent.Content);
                var parserErrors = new List <string>();

                if (ReplaceScriptLinksWithLinkToBundle(context, htmlDocument, parserErrors))
                {
                    if (parserErrors.Count != 0)
                    {
                        htmlDocument.LoadHtml(textContent.Content);

                        var node = htmlDocument.DocumentNode.AppendChild(htmlDocument.CreateComment("\r\n<!-- BUNDLE PARSER ERROR -->\r\n"));
                        foreach (var parserError in parserErrors)
                        {
                            node = htmlDocument.DocumentNode.InsertAfter(htmlDocument.CreateComment($"<!-- {parserError} -->\r\n"), node);
                        }
                    }

                    var buffer = new StringBuilder();
                    using (var writer = new StringWriter(buffer)) {
                        htmlDocument.Save(writer);
                    }
                    textContent.Content = buffer.ToString();
                }
            }
        }
Ejemplo n.º 15
0
        /// <summary>
        /// See interface docs.
        /// </summary>
        public void Start()
        {
            if (!_Started)
            {
                _Started   = true;
                _Clock     = Factory.Singleton.Resolve <IClock>();
                Downloader = Factory.Singleton.Resolve <IAirPressureDownloader>();
                Lookup     = Factory.Singleton.Resolve <IAirPressureLookup>();

                _SharedConfiguration = Factory.Singleton.ResolveSingleton <ISharedConfiguration>();
                Enabled = _SharedConfiguration.Get().BaseStationSettings.DownloadGlobalAirPressureReadings;
                _SharedConfiguration.ConfigurationChanged += SharedConfiguration_ConfigurationChanged;

                if (_BackgroundWorker == null)
                {
                    _BackgroundWorker         = Factory.Singleton.Resolve <IBackgroundWorker>();
                    _BackgroundWorker.DoWork += BackgroundWorker_DoWork;
                }

                _HeartbeatService           = Factory.Singleton.ResolveSingleton <IHeartbeatService>();
                _HeartbeatService.SlowTick += HeartbeatService_SlowTick;
            }
        }
Ejemplo n.º 16
0
 /// <summary>
 /// Creates a new object.
 /// </summary>
 public AircraftSanityChecker()
 {
     _SharedConfiguration = Factory.ResolveSingleton <ISharedConfiguration>();
 }
Ejemplo n.º 17
0
 /// <summary>
 /// Creates a new object.
 /// </summary>
 public MainPresenter()
 {
     _Clock = Factory.Resolve <IClock>();
     _LastAutoSavePolarPlots = _Clock.UtcNow;
     _SharedConfiguration    = Factory.ResolveSingleton <ISharedConfiguration>();
 }
 public OidcConfigurationController(ISharedConfiguration sharedConfiguration, ILogger <OidcConfigurationController> logger)
 {
     SharedConfiguration = sharedConfiguration;
     _logger             = logger;
 }
Ejemplo n.º 19
0
 /// <summary>
 /// Creates a new object.
 /// </summary>
 public BasicAuthenticationFilter()
 {
     _SharedConfiguration         = Factory.ResolveSingleton <ISharedConfiguration>();
     _AuthenticationConfiguration = Factory.ResolveSingleton <IAuthenticationConfiguration>();
     _BasicAuthentication         = new BasicAuthenticationHelper();
 }
Ejemplo n.º 20
0
 /// <summary>
 /// Creates a new object.
 /// </summary>
 public ImageServerConfiguration()
 {
     _SharedConfiguration = Factory.ResolveSingleton <ISharedConfiguration>();
     ImageFileManager     = Factory.Resolve <IImageFileManager>();
 }
Ejemplo n.º 21
0
 /// <summary>
 /// See interface docs.
 /// </summary>
 /// <param name="sharedConfiguration"></param>
 public void SharedConfigurationChanged(ISharedConfiguration sharedConfiguration)
 {
     Refresh();
 }
 public OidcContextController(SignInManager <ApplicationUser> signInManager, ILogger <OidcContextController> logger, IHttpContextAccessor httpContextAccessor, ISharedConfiguration sharedConfiguration)
     : base(signInManager, logger, httpContextAccessor, sharedConfiguration)
 {
 }
Ejemplo n.º 23
0
 public MapPluginHtmlManipulator()
 {
     _SharedConfiguration = Factory.ResolveSingleton <ISharedConfiguration>();
 }
Ejemplo n.º 24
0
 /// <summary>
 /// Creates a new object.
 /// </summary>
 public AudioServer()
 {
     _SharedConfiguration = Factory.Singleton.ResolveSingleton <ISharedConfiguration>();
 }
 public LogoutModel(SignInManager <ApplicationUser> signInManager, ILogger <LogoutModel> logger, ISharedConfiguration sharedConfiguration)
 {
     _signInManager      = signInManager;
     _logger             = logger;
     SharedConfiguration = sharedConfiguration;
 }
Ejemplo n.º 26
0
        public void ConfigureServices(IServiceCollection services)
        {
            IdentityModelEventSource.ShowPII = true; //Add this line

            ISharedConfiguration SharedConfiguration = services.RegisterSharedConfiguration();

            string     appName    = SharedConfiguration.GetValue("Tracing:appName");
            string     traceFile  = SharedConfiguration.GetTraceFilePath();
            TraceLevel traceLevel = (TraceLevel)System.Enum.Parse(typeof(TraceLevel), SharedConfiguration.GetValue("Tracing:traceLevel"));

            Fs.Core.Trace.Init(appName, traceLevel, traceFile);
            Fs.Core.Trace.Write("ConfigureServices()", "Started", TraceLevel.Info);

            SourceSwitch sourceSwitch = new SourceSwitch("POCTraceSwitch", "Verbose");

            AppLoggerFactory = LoggerFactory.Create(builder => { builder.AddTraceSource(sourceSwitch, Fs.Core.Trace.TraceListener); });

            services.AddDbContext <ApplicationDbContext>(options =>
                                                         options.UseLoggerFactory(AppLoggerFactory).
                                                         UseSqlServer(SharedConfiguration.GetConnectionString("DefaultConnection")));
            services.AddDbContext <LoggerContext>(options =>
                                                  options.UseLoggerFactory(AppLoggerFactory).
                                                  UseSqlServer(SharedConfiguration.GetConnectionString("LoggerConnection")));
            services.AddDbContext <OrderingContext>(options =>
                                                    options.UseLoggerFactory(AppLoggerFactory).
                                                    UseSqlServer(SharedConfiguration.GetConnectionString("DefaultConnection")));

            services.AddLogging(config => config.ClearProviders())
            .AddLogging(config => config.AddTraceSource(sourceSwitch, Fs.Core.Trace.TraceListener));

            services.RegisterServices(SharedConfiguration, AppLoggerFactory);
            services.AddHttpContextAccessor();

            /*services.AddDefaultIdentity<ApplicationUser>(options => options.SignIn.RequireConfirmedAccount = true)
             *  .AddEntityFrameworkStores<ApplicationDbContext>();
             *
             * services.AddIdentityServer()
             * .AddApiAuthorization<ApplicationUser, ApplicationDbContext>(options =>
             * {
             *  options.Clients.Add(new IdentityServer4.Models.Client
             *  {
             *      ClientId = "ClientPOC2",
             *      AllowedGrantTypes = GrantTypes.ClientCredentials,
             *      AllowedScopes = { "WebAPI" },
             *      ClientSecrets = { new IdentityServer4.Models.Secret("secret".Sha256()) }
             *  });
             *  options.Clients.Add(new IdentityServer4.Models.Client
             *  {
             *      ClientId = "Fs.Blazor.Client",
             *      ClientSecrets = { new IdentityServer4.Models.Secret("secret".Sha256()) },
             *
             *      AllowedGrantTypes = GrantTypes.Code,
             *      RequireConsent = false,
             *      RequirePkce = true,
             *
             *      AllowedScopes =
             *      {
             *          IdentityServerConstants.StandardScopes.OpenId,
             *          IdentityServerConstants.StandardScopes.Profile
             *      },
             *
             *      // where to redirect to after login
             *      RedirectUris = { "https://fs-blazor-client.netpoc.com/signin-oidc" },
             *
             *      // where to redirect to after logout
             *      PostLogoutRedirectUris = { "https://fs-blazor-client.netpoc.com/signout-callback-oidc" },
             *
             *      AllowedCorsOrigins = { "https://fs-blazor-client.netpoc.com" },
             *  });
             *  options.Clients.AddSPA(
             *          "Fs.Angular.Is4.Client", spa =>
             *          spa.WithRedirectUri("https://fs-angular-is4-client.netpoc.com/signin-oidc")
             *             .WithLogoutRedirectUri("https://fs-angular-is4-client.netpoc.com/signout-callback-oidc"));
             *  options.Clients.AddSPA(
             *          "Fs.Blazor.Is4.Wasm.Client", spa =>
             *          spa.WithRedirectUri("https://fs-blazor-is4-wasm-client.netpoc.com/signin-oidc")
             *             .WithLogoutRedirectUri("https://fs-blazor-is4-wasm-client.netpoc.com/signout-callback-oidc"));
             *  options.Clients.AddSPA(
             *          "Fs.Angular.Client", spa =>
             *          spa.WithRedirectUri("https://fs-angular-client.netpoc.com/authentication/login-callback")
             *             .WithLogoutRedirectUri("https://fs-angular-client.netpoc.com/authentication/logout-callback")
             *             .WithScopes(new string[]
             *              {
             *                  IdentityServerConstants.StandardScopes.OpenId
             *              }));
             *  options.Clients.AddSPA(
             *          "Fs.Blazor.Wasm.Client", spa =>
             *          spa.WithRedirectUri("https://fs-blazor-wasm-client.netpoc.com/authentication/login-callback")
             *             .WithLogoutRedirectUri("https://fs-blazor-wasm-client.netpoc.com/authentication/logout-callback")
             *             //.WithoutClientSecrets()
             *             .WithScopes(new string[]
             *              {
             *                  IdentityServerConstants.StandardScopes.OpenId,
             *                  IdentityServerConstants.StandardScopes.Profile
             *              }));
             *
             *  options.Clients["Fs.Angular.Client"].AllowedCorsOrigins.Add("https://fs-angular-client.netpoc.com");
             *  options.Clients["Fs.Angular.Client"].RedirectUris.Add("https://fs-angular-client.netpoc.com/signin-oidc");
             *
             *  options.Clients["Fs.Blazor.Wasm.Client"].AllowedCorsOrigins.Add("https://fs-blazor-wasm-client.netpoc.com");
             *  options.Clients["Fs.Blazor.Wasm.Client"].RedirectUris.Add("https://fs-blazor-wasm-client.netpoc.com/signin-oidc");
             * });
             *
             * services.AddAuthentication()
             *  .AddIdentityServerJwt();*/

            var builder = services.AddIdentityServer()
                          .AddInMemoryIdentityResources(Config.Ids)
                          //.AddInMemoryApiResources(Config.Apis)
                          .AddInMemoryClients(Config.Clients)
                          .AddTestUsers(TestUsers.Users);

            builder.AddDeveloperSigningCredential();

            /*services.AddAuthentication()
             *  .AddGoogle("Google", options =>
             *  {
             *      options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
             *
             *      options.ClientId = "<insert here>";
             *      options.ClientSecret = "<insert here>";
             *  })
             * .AddOpenIdConnect("oidc", "Demo IdentityServer", options =>
             * {
             *  options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
             *  options.SignOutScheme = IdentityServerConstants.SignoutScheme;
             *  options.SaveTokens = true;
             *
             *  options.Authority = "https://demo.identityserver.io/";
             *  //options.RequireHttpsMetadata = false;
             *  options.ClientId = "native.code";
             *  options.ClientSecret = "secret";
             *  options.ResponseType = "code";
             *  options.TokenValidationParameters = new TokenValidationParameters
             *  {
             *      NameClaimType = "name",
             *      RoleClaimType = "role"
             *  };
             * });*/

            //services.AddRazorPages();
            services.AddControllersWithViews();
            services.AddAutoMapper(typeof(Fs.Business.Mappings.MappingProfile).Assembly);
        }
Ejemplo n.º 27
0
 public OidcConfigurationController(IClientRequestParametersProvider clientRequestParametersProvider, ISharedConfiguration sharedConfiguration, ILogger <OidcConfigurationController> logger)
 {
     ClientRequestParametersProvider = clientRequestParametersProvider;
     SharedConfiguration             = sharedConfiguration;
     _logger = logger;
 }
Ejemplo n.º 28
0
 /// <summary>
 /// Creates a new object.
 /// </summary>
 public UserCache()
 {
     _SharedConfiguration = Factory.Singleton.ResolveSingleton <ISharedConfiguration>();
     _SharedConfiguration.AddWeakSubscription(this);
     _UserManager = Factory.Singleton.ResolveSingleton <IUserManager>();
 }
Ejemplo n.º 29
0
 public BaseOidcContextController(SignInManager <ApplicationUser> signInManager, ILogger <BaseOidcContextController> logger, IHttpContextAccessor httpContextAccessor, ISharedConfiguration sharedConfiguration)
     : base(logger, httpContextAccessor)
 {
     _signInManager      = signInManager;
     SharedConfiguration = sharedConfiguration;
 }
        public static IServiceCollection RegisterDbContexts(this IServiceCollection services, ISharedConfiguration configuration, ILoggerFactory appLoggerFactory)
        {
            services.AddDbContext <LoggerContext>(options =>
                                                  options.UseLoggerFactory(appLoggerFactory).
                                                  UseSqlServer(configuration.GetConnectionString("LoggerConnection")));
            services.AddDbContext <OrderingContext>(options =>
                                                    options.UseLoggerFactory(appLoggerFactory).
                                                    UseSqlServer(configuration.GetConnectionString("OrderConnection")));

            services.AddScoped <IUnitOfWork, SqlUnitOfWork>();
            services.AddScoped <ILoggerUnitOfWork, LoggerSqlUnitOfWork>();


            return(services);
        }