public BasicAuthCredentials? Parse()

in src/Testing/Expressions/Extensions/BasicAuthCredentialsParser.cs [18:44]


    public BasicAuthCredentials? Parse(string? value)
    {
        if(string.IsNullOrWhiteSpace(value))
        {
            return null;
        }

        if (!AuthenticationHeaderValue.TryParse(value, out var header) 
            || !"Basic".Equals(header.Scheme, StringComparison.Ordinal) 
            || string.IsNullOrWhiteSpace(header.Parameter))
        {
            return null;
        }

        try
        {
            var decoded = HeaderFieldEncoding.GetString(Convert.FromBase64String(header.Parameter));
            var index = decoded.LastIndexOf(':');
            return index > 0
                ? new MockBasicAuthCredentials(decoded[..index], decoded[(index + 1)..])
                : null;
        }
        catch (Exception)
        {
            return null;
        }
    }