diff options
| author | crobibero <cody@robibe.ro> | 2020-09-03 07:48:34 -0600 |
|---|---|---|
| committer | crobibero <cody@robibe.ro> | 2020-09-03 07:48:34 -0600 |
| commit | 1de22af6466a691e023dd70b2032d5e3af3bdc6b (patch) | |
| tree | f87f0be301324f87b6931619d7565901d2f0b2f2 /Jellyfin.Server/Startup.cs | |
| parent | 65d05f92ac7f7e5398fa49d5a5fdf0d984ce6989 (diff) | |
| parent | a2d6ea2eed58b5cd1ecb519e3eda820f336d5485 (diff) | |
Merge remote-tracking branch 'upstream/master' into dynamic-cors
Diffstat (limited to 'Jellyfin.Server/Startup.cs')
| -rw-r--r-- | Jellyfin.Server/Startup.cs | 44 |
1 files changed, 29 insertions, 15 deletions
diff --git a/Jellyfin.Server/Startup.cs b/Jellyfin.Server/Startup.cs index 63f704556..c3ca86383 100644 --- a/Jellyfin.Server/Startup.cs +++ b/Jellyfin.Server/Startup.cs @@ -5,7 +5,6 @@ using Jellyfin.Api.TypeConverters; using Jellyfin.Server.Extensions; using Jellyfin.Server.Middleware; using Jellyfin.Server.Models; -using MediaBrowser.Common; using MediaBrowser.Common.Net; using MediaBrowser.Controller; using MediaBrowser.Controller.Configuration; @@ -23,17 +22,19 @@ namespace Jellyfin.Server public class Startup { private readonly IServerConfigurationManager _serverConfigurationManager; - private readonly IApplicationHost _applicationHost; + private readonly IServerApplicationHost _serverApplicationHost; /// <summary> /// Initializes a new instance of the <see cref="Startup" /> class. /// </summary> /// <param name="serverConfigurationManager">The server configuration manager.</param> - /// <param name="applicationHost">The application host.</param> - public Startup(IServerConfigurationManager serverConfigurationManager, IApplicationHost applicationHost) + /// <param name="serverApplicationHost">The server application host.</param> + public Startup( + IServerConfigurationManager serverConfigurationManager, + IServerApplicationHost serverApplicationHost) { _serverConfigurationManager = serverConfigurationManager; - _applicationHost = applicationHost; + _serverApplicationHost = serverApplicationHost; } /// <summary> @@ -44,9 +45,13 @@ namespace Jellyfin.Server { services.AddResponseCompression(); services.AddHttpContextAccessor(); + services.AddHttpsRedirection(options => + { + options.HttpsPort = _serverApplicationHost.HttpsPort; + }); services.AddJellyfinApi( _serverConfigurationManager.Configuration.BaseUrl.TrimStart('/'), - _applicationHost.GetApiPluginAssemblies(), + _serverApplicationHost.GetApiPluginAssemblies(), _serverConfigurationManager.Configuration.CorsHosts); services.AddJellyfinApiSwagger(); @@ -56,7 +61,9 @@ namespace Jellyfin.Server services.AddJellyfinApiAuthorization(); - var productHeader = new ProductInfoHeaderValue(_applicationHost.Name.Replace(' ', '-'), _applicationHost.ApplicationVersionString); + var productHeader = new ProductInfoHeaderValue( + _serverApplicationHost.Name.Replace(' ', '-'), + _serverApplicationHost.ApplicationVersionString); services .AddHttpClient(NamedClient.Default, c => { @@ -67,7 +74,7 @@ namespace Jellyfin.Server services.AddHttpClient(NamedClient.MusicBrainz, c => { c.DefaultRequestHeaders.UserAgent.Add(productHeader); - c.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue($"({_applicationHost.ApplicationUserAgentAddress})")); + c.DefaultRequestHeaders.UserAgent.Add(new ProductInfoHeaderValue($"({_serverApplicationHost.ApplicationUserAgentAddress})")); }) .ConfigurePrimaryHttpMessageHandler(x => new DefaultHttpClientHandler()); } @@ -77,11 +84,9 @@ namespace Jellyfin.Server /// </summary> /// <param name="app">The application builder.</param> /// <param name="env">The webhost environment.</param> - /// <param name="serverApplicationHost">The server application host.</param> public void Configure( IApplicationBuilder app, - IWebHostEnvironment env, - IServerApplicationHost serverApplicationHost) + IWebHostEnvironment env) { if (env.IsDevelopment()) { @@ -96,12 +101,17 @@ namespace Jellyfin.Server app.UseResponseCompression(); - // TODO app.UseMiddleware<WebSocketMiddleware>(); + app.UseCors(ServerCorsPolicy.DefaultPolicyName); + + if (_serverConfigurationManager.Configuration.RequireHttps + && _serverApplicationHost.ListenWithHttps) + { + app.UseHttpsRedirection(); + } app.UseAuthentication(); app.UseJellyfinApiSwagger(_serverConfigurationManager); app.UseRouting(); - app.UseCors(ServerCorsPolicy.DefaultPolicyName); app.UseAuthorization(); if (_serverConfigurationManager.Configuration.EnableMetrics) { @@ -109,6 +119,12 @@ namespace Jellyfin.Server app.UseHttpMetrics(); } + app.UseLanFiltering(); + app.UseIpBasedAccessValidation(); + app.UseBaseUrlRedirection(); + app.UseWebSocketHandler(); + app.UseServerStartupMessage(); + app.UseEndpoints(endpoints => { endpoints.MapControllers(); @@ -118,8 +134,6 @@ namespace Jellyfin.Server } }); - app.Use(serverApplicationHost.ExecuteHttpHandlerAsync); - // Add type descriptor for legacy datetime parsing. TypeDescriptor.AddAttributes(typeof(DateTime?), new TypeConverterAttribute(typeof(DateTimeTypeConverter))); } |
