Fixed: Don't set cookies for static resources

Closes #2059

(cherry picked from commit 6619350f87a8f6ddedfea0cc8ca5b1e9ab006091)
This commit is contained in:
Mark McDowall 2021-03-07 14:51:13 -08:00 committed by Qstick
parent 5cc2db26e7
commit 66c1ac9971
3 changed files with 41 additions and 0 deletions

View File

@ -7,6 +7,7 @@ using Lidarr.Http.Extensions;
using Nancy;
using Nancy.Authentication.Basic;
using Nancy.Authentication.Forms;
using Nancy.Routing.Trie.Nodes;
using NLog;
using NzbDrone.Common.Extensions;
using NzbDrone.Core.Authentication;
@ -161,6 +162,11 @@ namespace Lidarr.Http.Authentication
return true;
}
if (context.Request.IsBundledJsRequest())
{
return true;
}
if (ValidUser(context))
{
return true;

View File

@ -0,0 +1,30 @@
using System;
using System.Linq;
using Nancy;
using Nancy.Bootstrapper;
namespace Lidarr.Http.Extensions.Pipelines
{
public class SetCookieHeaderPipeline : IRegisterNancyPipeline
{
public int Order => 99;
public void Register(IPipelines pipelines)
{
pipelines.AfterRequest.AddItemToEndOfPipeline((Action<NancyContext>)Handle);
}
private void Handle(NancyContext context)
{
if (context.Request.IsContentRequest() || context.Request.IsBundledJsRequest())
{
var authCookie = context.Response.Cookies.FirstOrDefault(c => c.Name == "SonarrAuth");
if (authCookie != null)
{
context.Response.Cookies.Remove(authCookie);
}
}
}
}
}

View File

@ -52,6 +52,11 @@ namespace Lidarr.Http.Extensions
return defaultValue;
}
public static bool IsBundledJsRequest(this Request request)
{
return !request.Path.EqualsIgnoreCase("/initialize.js") && request.Path.EndsWith(".js", StringComparison.InvariantCultureIgnoreCase);
}
public static bool IsSharedContentRequest(this Request request)
{
return request.Path.StartsWith("/MediaCover/", StringComparison.InvariantCultureIgnoreCase) ||