diff --git a/Emby.Server.Implementations/HttpServer/Security/AuthorizationContext.cs b/Emby.Server.Implementations/HttpServer/Security/AuthorizationContext.cs
index 74a678aa62..855c616826 100644
--- a/Emby.Server.Implementations/HttpServer/Security/AuthorizationContext.cs
+++ b/Emby.Server.Implementations/HttpServer/Security/AuthorizationContext.cs
@@ -285,6 +285,11 @@ namespace Emby.Server.Implementations.HttpServer.Security
return string.IsNullOrEmpty(value) ? value : WebUtility.UrlDecode(value);
}
+ ///
+ /// Get the authorization header components.
+ ///
+ /// The authorization header.
+ /// string
public static string[] GetParts(string authtorizationHeader)
{
var result = new List();
@@ -301,6 +306,7 @@ namespace Emby.Server.Implementations.HttpServer.Security
}
else
{
+ // Applying a XOR logic to evaluate wether it is opening or closing a value
escaped = (!escaped) == (authtorizationHeaderChars[i] == '"');
if(authtorizationHeaderChars[i] == ',')
{
@@ -310,6 +316,7 @@ namespace Emby.Server.Implementations.HttpServer.Security
}
else
{
+ // Meeting a comma after a closing escape char means the value is complete
result.Add(new string(value.ToArray()));
value = new List();
}