|
@@ -276,16 +276,15 @@ namespace Emby.Server.Implementations.HttpServer.Security
|
|
|
public static Dictionary<string, string> GetParts(string authtorizationHeader)
|
|
|
{
|
|
|
var result = new Dictionary<string, string>();
|
|
|
- var escapeChars = new[] { '"', ',' };
|
|
|
var escaped = false;
|
|
|
int start = 0;
|
|
|
- int i = 0;
|
|
|
string key = string.Empty;
|
|
|
|
|
|
- while (i < authtorizationHeader.Length)
|
|
|
+ int i;
|
|
|
+ for (i = 0; i < authtorizationHeader.Length; i++)
|
|
|
{
|
|
|
var token = authtorizationHeader[i];
|
|
|
- if (escapeChars.Contains(token))
|
|
|
+ if (token == '"' || token == ',')
|
|
|
{
|
|
|
// Applying a XOR logic to evaluate whether it is opening or closing a value
|
|
|
escaped = (!escaped) == (token == '"');
|
|
@@ -306,8 +305,6 @@ namespace Emby.Server.Implementations.HttpServer.Security
|
|
|
key = authtorizationHeader[start.. i];
|
|
|
start = i + 1;
|
|
|
}
|
|
|
-
|
|
|
- i++;
|
|
|
}
|
|
|
|
|
|
// Add last value
|