Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 7 additions & 55 deletions src/Docker.DotNet.BasicAuth/BasicAuthCredentials.cs
Original file line number Diff line number Diff line change
@@ -1,68 +1,20 @@
namespace Docker.DotNet.BasicAuth;

public class BasicAuthCredentials : Credentials, IAuthProvider
public class BasicAuthCredentials : IAuthProvider
{
private readonly bool _isTls;
private readonly string _username;

private readonly MaybeSecureString _username;
private readonly string _password;

private readonly MaybeSecureString _password;

private bool _disposed;

public BasicAuthCredentials(SecureString username, SecureString password, bool isTls = false)
: this(new MaybeSecureString(username), new MaybeSecureString(password), isTls)
{
}

public BasicAuthCredentials(string username, string password, bool isTls = false)
: this(new MaybeSecureString(username), new MaybeSecureString(password), isTls)
{
}

private BasicAuthCredentials(MaybeSecureString username, MaybeSecureString password, bool isTls)
private BasicAuthCredentials(string username, string password, bool tlsEnabled = false)
{
_isTls = isTls;
_username = username;
_password = password;
TlsEnabled = tlsEnabled;
}

public bool TlsEnabled => _isTls;

public override void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}

public override bool IsTlsCredentials()
{
return _isTls;
}

public override HttpMessageHandler GetHandler(HttpMessageHandler handler)
{
return new BasicAuthHandler(_username, _password, handler);
}
public bool TlsEnabled { get; }

public HttpMessageHandler ConfigureHandler(HttpMessageHandler handler)
{
return GetHandler(handler);
}

protected virtual void Dispose(bool disposing)
{
if (_disposed)
{
return;
}

if (disposing)
{
_username.Dispose();
_password.Dispose();
}

_disposed = true;
}
=> new BasicAuthHandler(_username, _password, handler);
}
24 changes: 3 additions & 21 deletions src/Docker.DotNet.BasicAuth/BasicAuthHandler.cs
Original file line number Diff line number Diff line change
@@ -1,22 +1,15 @@
namespace Docker.DotNet.BasicAuth;

internal class BasicAuthHandler : DelegatingHandler
internal sealed class BasicAuthHandler : DelegatingHandler
{
private readonly MaybeSecureString _username;

private readonly MaybeSecureString _password;

private readonly Lazy<AuthenticationHeaderValue> _authHeader;

public BasicAuthHandler(MaybeSecureString username, MaybeSecureString password, HttpMessageHandler httpMessageHandler)
public BasicAuthHandler(string username, string password, HttpMessageHandler httpMessageHandler)
: base(httpMessageHandler)
{
_username = username.Copy();
_password = password.Copy();

_authHeader = new Lazy<AuthenticationHeaderValue>(() =>
{
var credentials = $"{_username}:{_password}";
var credentials = $"{username}:{password}";
var bytes = Encoding.ASCII.GetBytes(credentials);
var base64 = Convert.ToBase64String(bytes);
return new AuthenticationHeaderValue("Basic", base64);
Expand All @@ -28,15 +21,4 @@ protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage reques
request.Headers.Authorization = _authHeader.Value;
return base.SendAsync(request, cancellationToken);
}

protected override void Dispose(bool disposing)
{
if (disposing)
{
_username.Dispose();
_password.Dispose();
}

base.Dispose(disposing);
}
}
11 changes: 0 additions & 11 deletions src/Docker.DotNet.Handler.Abstractions/Credentials.cs

This file was deleted.

16 changes: 0 additions & 16 deletions src/Docker.DotNet.Handler.Abstractions/DelegateAuthProvider.cs

This file was deleted.

This file was deleted.

10 changes: 0 additions & 10 deletions src/Docker.DotNet.Handler.Abstractions/IDockerHandlerFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,6 @@ namespace Docker.DotNet.Handler.Abstractions;
/// </summary>
public interface IDockerHandlerFactory : IStreamHijacker
{
/// <summary>
/// Creates a handler and normalized endpoint URI for the provided endpoint and configuration.
/// </summary>
/// <param name="uri">The endpoint URI.</param>
/// <param name="configuration">The Docker client configuration.</param>
/// <param name="logger">The logger instance.</param>
/// <returns>A tuple containing the configured handler and normalized endpoint URI.</returns>
[Obsolete("Use the CreateHandler(ClientOptions, ILogger) or CreateHandler(TTransportOptions, ClientOptions, ILogger) overload instead.")]
Tuple<HttpMessageHandler, Uri> CreateHandler(Uri uri, IDockerClientConfiguration configuration, ILogger logger);

/// <summary>
/// Creates a handler and normalized endpoint URI for the provided client options.
/// </summary>
Expand Down
6 changes: 0 additions & 6 deletions src/Docker.DotNet.LegacyHttp/DockerHandlerFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,6 @@ private DockerHandlerFactory()
public static IDockerHandlerFactory<LegacyHttpTransportOptions> Instance { get; }
= new DockerHandlerFactory();

public Tuple<HttpMessageHandler, Uri> CreateHandler(Uri uri, IDockerClientConfiguration configuration, ILogger logger)
{
var clientOptions = new ClientOptions { Endpoint = uri, AuthProvider = new DelegateAuthProvider(configuration) };
return CreateHandler(clientOptions, logger);
}

public Tuple<HttpMessageHandler, Uri> CreateHandler(ClientOptions clientOptions, ILogger logger)
{
var transportOptions = new LegacyHttpTransportOptions();
Expand Down
7 changes: 0 additions & 7 deletions src/Docker.DotNet.NPipe/DockerHandlerFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,6 @@ private DockerHandlerFactory()
public static IDockerHandlerFactory<NPipeTransportOptions> Instance { get; }
= new DockerHandlerFactory();

public Tuple<HttpMessageHandler, Uri> CreateHandler(Uri uri, IDockerClientConfiguration configuration, ILogger logger)
{
var transportOptions = new NPipeTransportOptions { ConnectTimeout = configuration.NamedPipeConnectTimeout };
var clientOptions = new ClientOptions { Endpoint = uri, AuthProvider = new DelegateAuthProvider(configuration) };
return CreateHandler(transportOptions, clientOptions, logger);
}

public Tuple<HttpMessageHandler, Uri> CreateHandler(ClientOptions clientOptions, ILogger logger)
{
var transportOptions = new NPipeTransportOptions();
Expand Down
6 changes: 0 additions & 6 deletions src/Docker.DotNet.NativeHttp/DockerHandlerFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,6 @@ private DockerHandlerFactory()
public static IDockerHandlerFactory<NativeHttpTransportOptions> Instance { get; }
= new DockerHandlerFactory();

public Tuple<HttpMessageHandler, Uri> CreateHandler(Uri uri, IDockerClientConfiguration configuration, ILogger logger)
{
var clientOptions = new ClientOptions { Endpoint = uri, AuthProvider = new DelegateAuthProvider(configuration) };
return CreateHandler(clientOptions, logger);
}

public Tuple<HttpMessageHandler, Uri> CreateHandler(ClientOptions clientOptions, ILogger logger)
{
var transportOptions = new NativeHttpTransportOptions();
Expand Down
6 changes: 0 additions & 6 deletions src/Docker.DotNet.Unix/DockerHandlerFactory.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,6 @@ private DockerHandlerFactory()
public static IDockerHandlerFactory<UnixSocketTransportOptions> Instance { get; }
= new DockerHandlerFactory();

public Tuple<HttpMessageHandler, Uri> CreateHandler(Uri uri, IDockerClientConfiguration configuration, ILogger logger)
{
var clientOptions = new ClientOptions { Endpoint = uri };
return CreateHandler(clientOptions, logger);
}

public Tuple<HttpMessageHandler, Uri> CreateHandler(ClientOptions clientOptions, ILogger logger)
{
var transportOptions = new UnixSocketTransportOptions();
Expand Down
24 changes: 2 additions & 22 deletions src/Docker.DotNet.X509/CertificateCredentials.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
namespace Docker.DotNet.X509;

public class CertificateCredentials : Credentials, IAuthProvider
public class CertificateCredentials : IAuthProvider
{
private readonly X509Certificate2 _certificate;

Expand All @@ -13,18 +13,7 @@ public CertificateCredentials(X509Certificate2 certificate)

public RemoteCertificateValidationCallback ServerCertificateValidationCallback { get; set; }

public override void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}

public override bool IsTlsCredentials()
{
return true;
}

public override HttpMessageHandler GetHandler(HttpMessageHandler handler)
public HttpMessageHandler ConfigureHandler(HttpMessageHandler handler)
{
#if NET6_0_OR_GREATER
if (handler is SocketsHttpHandler socketsHandler)
Expand Down Expand Up @@ -56,13 +45,4 @@ public override HttpMessageHandler GetHandler(HttpMessageHandler handler)

return handler;
}

public HttpMessageHandler ConfigureHandler(HttpMessageHandler handler)
{
return GetHandler(handler);
}

protected virtual void Dispose(bool _)
{
}
}
27 changes: 0 additions & 27 deletions src/Docker.DotNet.X509/RSAUtil.cs

This file was deleted.

2 changes: 1 addition & 1 deletion src/Docker.DotNet.X509/X509Certificate2.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ namespace Docker.DotNet.X509.Polyfills;
using Org.BouncyCastle.Security;
using Org.BouncyCastle.X509;

public static class X509Certificate2
internal static class X509Certificate2
{
private static readonly X509CertificateParser CertificateParser = new X509CertificateParser();

Expand Down
18 changes: 0 additions & 18 deletions src/Docker.DotNet/AnonymousCredentials.cs

This file was deleted.

12 changes: 6 additions & 6 deletions src/Docker.DotNet/DockerApiException.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ namespace Docker.DotNet;

public class DockerApiException : Exception
{
public HttpStatusCode StatusCode { get; private set; }

public string ResponseBody { get; private set; }

public DockerApiException(HttpStatusCode statusCode, string responseBody)
: base($"Docker API responded with status code={statusCode}, response={responseBody}")
public DockerApiException(HttpStatusCode statusCode, string? responseBody)
: base($"Docker API responded with status code='{statusCode}', response='{responseBody}'.")
{
StatusCode = statusCode;
ResponseBody = responseBody;
}

public HttpStatusCode StatusCode { get; }

public string? ResponseBody { get; }
}
14 changes: 0 additions & 14 deletions src/Docker.DotNet/DockerApiResponse.cs

This file was deleted.

Loading
Loading