| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | using Jellyfin.Server.Extensions;using MediaBrowser.Controller;using MediaBrowser.Controller.Configuration;using Microsoft.AspNetCore.Builder;using Microsoft.AspNetCore.Hosting;using Microsoft.Extensions.DependencyInjection;using Microsoft.Extensions.Hosting;namespace Jellyfin.Server{    /// <summary>    /// Startup configuration for the Kestrel webhost.    /// </summary>    public class Startup    {        private readonly IServerConfigurationManager _serverConfigurationManager;        /// <summary>        /// Initializes a new instance of the <see cref="Startup" /> class.        /// </summary>        /// <param name="serverConfigurationManager">The server configuration manager.</param>        public Startup(IServerConfigurationManager serverConfigurationManager)        {            _serverConfigurationManager = serverConfigurationManager;        }        /// <summary>        /// Configures the service collection for the webhost.        /// </summary>        /// <param name="services">The service collection.</param>        public void ConfigureServices(IServiceCollection services)        {            services.AddResponseCompression();            services.AddHttpContextAccessor();            services.AddJellyfinApi(_serverConfigurationManager.Configuration.BaseUrl.TrimStart('/'));            services.AddJellyfinApiSwagger();            // configure custom legacy authentication            services.AddCustomAuthentication();            services.AddJellyfinApiAuthorization();        }        /// <summary>        /// Configures the app builder for the webhost.        /// </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)        {            if (env.IsDevelopment())            {                app.UseDeveloperExceptionPage();            }            app.UseWebSockets();            app.UseResponseCompression();            // TODO app.UseMiddleware<WebSocketMiddleware>();            app.Use(serverApplicationHost.ExecuteWebsocketHandlerAsync);            // TODO use when old API is removed: app.UseAuthentication();            app.UseJellyfinApiSwagger();            app.UseRouting();            app.UseAuthorization();            app.UseEndpoints(endpoints =>            {                endpoints.MapControllers();            });            app.Use(serverApplicationHost.ExecuteHttpHandlerAsync);        }    }}
 |