예제 #1
0
 public RemoteAccessAdapter(IRuntimeInfo runtimeInfo,
                            IUrlAclAdapter urlAclAdapter,
                            IFirewallAdapter firewallAdapter,
                            ISslAdapter sslAdapter)
 {
     _runtimeInfo     = runtimeInfo;
     _urlAclAdapter   = urlAclAdapter;
     _firewallAdapter = firewallAdapter;
     _sslAdapter      = sslAdapter;
 }
예제 #2
0
 public WebHostController(IRuntimeInfo runtimeInfo,
                          IConfigFileProvider configFileProvider,
                          IFirewallAdapter firewallAdapter,
                          IEnumerable <IAspNetCoreMiddleware> middlewares,
                          Logger logger)
 {
     _runtimeInfo        = runtimeInfo;
     _configFileProvider = configFileProvider;
     _firewallAdapter    = firewallAdapter;
     _middlewares        = middlewares;
     _logger             = logger;
 }
예제 #3
0
 public OwinHostController(
     IOwinAppFactory owinAppFactory,
     IRuntimeInfo runtimeInfo,
     IUrlAclAdapter urlAclAdapter,
     IFirewallAdapter firewallAdapter,
     ISslAdapter sslAdapter,
     Logger logger)
 {
     _owinAppFactory  = owinAppFactory;
     _runtimeInfo     = runtimeInfo;
     _urlAclAdapter   = urlAclAdapter;
     _firewallAdapter = firewallAdapter;
     _sslAdapter      = sslAdapter;
     _logger          = logger;
 }
예제 #4
0
 public OwinHostController(
                           IOwinAppFactory owinAppFactory,
                           IRuntimeInfo runtimeInfo,
                           IUrlAclAdapter urlAclAdapter,
                           IFirewallAdapter firewallAdapter,
                           ISslAdapter sslAdapter,
                           Logger logger)
 {
     _owinAppFactory = owinAppFactory;
     _runtimeInfo = runtimeInfo;
     _urlAclAdapter = urlAclAdapter;
     _firewallAdapter = firewallAdapter;
     _sslAdapter = sslAdapter;
     _logger = logger;
 }
예제 #5
0
 public OwinHostController(IConfigFileProvider configFileProvider,
                           IEnumerable<IOwinMiddleWare> owinMiddleWares,
                           IRuntimeInfo runtimeInfo,
                           IUrlAclAdapter urlAclAdapter,
                           IFirewallAdapter firewallAdapter,
                           ISslAdapter sslAdapter,
                           Logger logger)
 {
     _configFileProvider = configFileProvider;
     _owinMiddleWares = owinMiddleWares;
     _runtimeInfo = runtimeInfo;
     _urlAclAdapter = urlAclAdapter;
     _firewallAdapter = firewallAdapter;
     _sslAdapter = sslAdapter;
     _logger = logger;
 }
예제 #6
0
 public OwinHostController(IConfigFileProvider configFileProvider,
                           IEnumerable <IOwinMiddleWare> owinMiddleWares,
                           IRuntimeInfo runtimeInfo,
                           IUrlAclAdapter urlAclAdapter,
                           IFirewallAdapter firewallAdapter,
                           ISslAdapter sslAdapter,
                           Logger logger)
 {
     _configFileProvider = configFileProvider;
     _owinMiddleWares    = owinMiddleWares;
     _runtimeInfo        = runtimeInfo;
     _urlAclAdapter      = urlAclAdapter;
     _firewallAdapter    = firewallAdapter;
     _sslAdapter         = sslAdapter;
     _logger             = logger;
 }
예제 #7
0
 public RemoteAccessAdapter(IRuntimeInfo runtimeInfo,
                            IFirewallAdapter firewallAdapter)
 {
     _runtimeInfo     = runtimeInfo;
     _firewallAdapter = firewallAdapter;
 }
예제 #8
0
        public void Configure(IApplicationBuilder app,
                              IStartupContext startupContext,
                              Lazy <IMainDatabase> mainDatabaseFactory,
                              Lazy <ILogDatabase> logDatabaseFactory,
                              Lazy <ICacheDatabase> cacheDatabaseFactory,
                              DatabaseTarget dbTarget,
                              ISingleInstancePolicy singleInstancePolicy,
                              InitializeLogger initializeLogger,
                              ReconfigureLogging reconfigureLogging,
                              IAppFolderFactory appFolderFactory,
                              IProvidePidFile pidFileProvider,
                              IConfigFileProvider configFileProvider,
                              IRuntimeInfo runtimeInfo,
                              IFirewallAdapter firewallAdapter,
                              ReadarrErrorPipeline errorHandler)
        {
            initializeLogger.Initialize();
            appFolderFactory.Register();
            pidFileProvider.Write();

            reconfigureLogging.Reconfigure();

            EnsureSingleInstance(false, startupContext, singleInstancePolicy);

            // instantiate the databases to initialize/migrate them
            _ = mainDatabaseFactory.Value;
            _ = logDatabaseFactory.Value;
            _ = cacheDatabaseFactory.Value;

            dbTarget.Register();

            if (OsInfo.IsNotWindows)
            {
                Console.CancelKeyPress += (sender, eventArgs) => NLog.LogManager.Configuration = null;
            }

            if (OsInfo.IsWindows && runtimeInfo.IsAdmin)
            {
                firewallAdapter.MakeAccessible();
            }

            app.UseMiddleware <LoggingMiddleware>();
            app.UsePathBase(new PathString(configFileProvider.UrlBase));
            app.UseExceptionHandler(new ExceptionHandlerOptions
            {
                AllowStatusCode404Response = true,
                ExceptionHandler           = errorHandler.HandleException
            });

            app.UseRouting();
            app.UseCors();
            app.UseAuthentication();
            app.UseAuthorization();
            app.UseResponseCompression();
            app.Properties["host.AppName"] = BuildInfo.AppName;

            app.UseMiddleware <VersionMiddleware>();
            app.UseMiddleware <UrlBaseMiddleware>(configFileProvider.UrlBase);
            app.UseMiddleware <CacheHeaderMiddleware>();
            app.UseMiddleware <IfModifiedMiddleware>();
            app.UseMiddleware <BufferingMiddleware>(new List <string> {
                "/api/v1/command"
            });

            app.UseWebSockets();

            app.UseEndpoints(x =>
            {
                x.MapHub <MessageHub>("/signalr/messages").RequireAuthorization("SignalR");
                x.MapControllers();
            });
        }