diff options
Diffstat (limited to 'src/main.lib/Plugins/ValidationPlugins/Http')
15 files changed, 43 insertions, 31 deletions
diff --git a/src/main.lib/Plugins/ValidationPlugins/Http/FileSystem/FileSystemOptionsFactory.cs b/src/main.lib/Plugins/ValidationPlugins/Http/FileSystem/FileSystemOptionsFactory.cs index c56ddf4..aa86b9b 100644 --- a/src/main.lib/Plugins/ValidationPlugins/Http/FileSystem/FileSystemOptionsFactory.cs +++ b/src/main.lib/Plugins/ValidationPlugins/Http/FileSystem/FileSystemOptionsFactory.cs @@ -25,7 +25,7 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins.Http public override bool PathIsValid(string path) => path.ValidPath(_log); public override bool AllowEmtpy(Target target) => target.IIS; - public override Task<FileSystemOptions> Default(Target target) + public override async Task<FileSystemOptions?> Default(Target target) { var args = _arguments.GetArguments<FileSystemArguments>(); var ret = new FileSystemOptions(BaseDefault(target)); @@ -40,10 +40,10 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins.Http ret.SiteId = args.ValidationSiteId.Value; } } - return Task.FromResult(ret); + return ret; } - public override async Task<FileSystemOptions> Aquire(Target target, IInputService inputService, RunLevel runLevel) + public override async Task<FileSystemOptions?> Aquire(Target target, IInputService inputService, RunLevel runLevel) { // Choose alternative site for validation var ret = new FileSystemOptions(await BaseAquire(target, inputService)); diff --git a/src/main.lib/Plugins/ValidationPlugins/Http/Ftp/Ftp.cs b/src/main.lib/Plugins/ValidationPlugins/Http/Ftp/Ftp.cs index 7c3d2bf..5ceadec 100644 --- a/src/main.lib/Plugins/ValidationPlugins/Http/Ftp/Ftp.cs +++ b/src/main.lib/Plugins/ValidationPlugins/Http/Ftp/Ftp.cs @@ -6,7 +6,7 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins.Http { internal class Ftp : HttpValidation<FtpOptions, Ftp> { - private FtpClient _ftpClient; + private FtpClient? _ftpClient; public Ftp(FtpOptions options, HttpValidationParameters pars, RunLevel runLevel) : base(options, runLevel, pars) => _ftpClient = new FtpClient(_options.Credential, pars.LogService); diff --git a/src/main.lib/Plugins/ValidationPlugins/Http/Ftp/FtpOptions.cs b/src/main.lib/Plugins/ValidationPlugins/Http/Ftp/FtpOptions.cs index a90764d..fd9710d 100644 --- a/src/main.lib/Plugins/ValidationPlugins/Http/Ftp/FtpOptions.cs +++ b/src/main.lib/Plugins/ValidationPlugins/Http/Ftp/FtpOptions.cs @@ -16,7 +16,7 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins.Http /// <summary> /// Credentials to use for WebDav connection /// </summary> - public NetworkCredentialOptions Credential { get; set; } + public NetworkCredentialOptions? Credential { get; set; } /// <summary> /// Show settings to user diff --git a/src/main.lib/Plugins/ValidationPlugins/Http/Ftp/FtpOptionsFactory.cs b/src/main.lib/Plugins/ValidationPlugins/Http/Ftp/FtpOptionsFactory.cs index 8510b30..a71763b 100644 --- a/src/main.lib/Plugins/ValidationPlugins/Http/Ftp/FtpOptionsFactory.cs +++ b/src/main.lib/Plugins/ValidationPlugins/Http/Ftp/FtpOptionsFactory.cs @@ -37,15 +37,15 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins.Http }; } - public override Task<FtpOptions> Default(Target target) + public override async Task<FtpOptions?> Default(Target target) { - return Task.FromResult(new FtpOptions(BaseDefault(target)) + return new FtpOptions(BaseDefault(target)) { Credential = new NetworkCredentialOptions(_arguments) - }); + }; } - public override async Task<FtpOptions> Aquire(Target target, IInputService inputService, RunLevel runLevel) + public override async Task<FtpOptions?> Aquire(Target target, IInputService inputService, RunLevel runLevel) { return new FtpOptions(await BaseAquire(target, inputService)) { diff --git a/src/main.lib/Plugins/ValidationPlugins/Http/HttpValidation.cs b/src/main.lib/Plugins/ValidationPlugins/Http/HttpValidation.cs index ab791cf..3335cea 100644 --- a/src/main.lib/Plugins/ValidationPlugins/Http/HttpValidation.cs +++ b/src/main.lib/Plugins/ValidationPlugins/Http/HttpValidation.cs @@ -34,7 +34,7 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins /// Path used for the current renewal, may not be same as _options.Path /// because of the "Split" function employed by IISSites target /// </summary> - protected string _path; + protected string? _path; /// <summary> /// Provides proxy settings for site warmup @@ -145,6 +145,10 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins /// <param name="fileContents">the contents of the file to write</param> private void WriteAuthorizationFile() { + if (_path == null || _challenge == null) + { + throw new InvalidOperationException(); + } WriteFile(CombinePath(_path, _challenge.HttpResourcePath), _challenge.HttpResourceValue); _challengeWritten = true; } @@ -157,6 +161,10 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins /// <param name="token"></param> private void WriteWebConfig() { + if (_path == null) + { + throw new InvalidOperationException(); + } if (_options.CopyWebConfig == true) { _log.Debug("Writing web.config"); @@ -182,6 +190,10 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins /// <param name="token"></param> private void DeleteWebConfig() { + if (_path == null || _challenge == null) + { + throw new InvalidOperationException(); + } if (_webConfigWritten) { _log.Debug("Deleting web.config"); @@ -202,7 +214,7 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins { try { - if (_challengeWritten) + if (_path != null && _challenge != null && _challengeWritten) { _log.Debug("Deleting answer"); var path = CombinePath(_path, _challenge.HttpResourcePath); diff --git a/src/main.lib/Plugins/ValidationPlugins/Http/HttpValidationArguments.cs b/src/main.lib/Plugins/ValidationPlugins/Http/HttpValidationArguments.cs index 0774419..b10e384 100644 --- a/src/main.lib/Plugins/ValidationPlugins/Http/HttpValidationArguments.cs +++ b/src/main.lib/Plugins/ValidationPlugins/Http/HttpValidationArguments.cs @@ -2,7 +2,7 @@ { internal class HttpValidationArguments { - public string WebRoot { get; set; } + public string? WebRoot { get; set; } public bool Warmup { get; set; } public bool ManualTargetIsIIS { get; set; } } diff --git a/src/main.lib/Plugins/ValidationPlugins/Http/HttpValidationOptions.cs b/src/main.lib/Plugins/ValidationPlugins/Http/HttpValidationOptions.cs index 6546a9a..2a83a98 100644 --- a/src/main.lib/Plugins/ValidationPlugins/Http/HttpValidationOptions.cs +++ b/src/main.lib/Plugins/ValidationPlugins/Http/HttpValidationOptions.cs @@ -6,7 +6,7 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins { internal abstract class HttpValidationOptions<T> : ValidationPluginOptions<T> where T : IValidationPlugin { - public string Path { get; set; } + public string? Path { get; set; } public bool? CopyWebConfig { get; set; } public HttpValidationOptions() { } diff --git a/src/main.lib/Plugins/ValidationPlugins/Http/HttpValidationOptionsFactory.cs b/src/main.lib/Plugins/ValidationPlugins/Http/HttpValidationOptionsFactory.cs index 377bdf8..f98a2e8 100644 --- a/src/main.lib/Plugins/ValidationPlugins/Http/HttpValidationOptionsFactory.cs +++ b/src/main.lib/Plugins/ValidationPlugins/Http/HttpValidationOptionsFactory.cs @@ -56,7 +56,7 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins /// </summary> public HttpValidationOptions<TPlugin> BaseDefault(Target target) { - string path = null; + string? path = null; var allowEmpty = AllowEmtpy(target); var args = _arguments.GetArguments<HttpValidationArguments>(); if (string.IsNullOrEmpty(path) && !allowEmpty) diff --git a/src/main.lib/Plugins/ValidationPlugins/Http/SelfHosting/SelfHosting.cs b/src/main.lib/Plugins/ValidationPlugins/Http/SelfHosting/SelfHosting.cs index 5eeae60..d646ae8 100644 --- a/src/main.lib/Plugins/ValidationPlugins/Http/SelfHosting/SelfHosting.cs +++ b/src/main.lib/Plugins/ValidationPlugins/Http/SelfHosting/SelfHosting.cs @@ -10,7 +10,7 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins.Http internal class SelfHosting : Validation<Http01ChallengeValidationDetails> { internal const int DefaultValidationPort = 80; - private HttpListener _listener; + private HttpListener? _listener; private readonly Dictionary<string, string> _files; private readonly SelfHostingOptions _options; private readonly ILogService _log; diff --git a/src/main.lib/Plugins/ValidationPlugins/Http/SelfHosting/SelfHostingOptionsFactory.cs b/src/main.lib/Plugins/ValidationPlugins/Http/SelfHosting/SelfHostingOptionsFactory.cs index 2eb55cc..d2696a7 100644 --- a/src/main.lib/Plugins/ValidationPlugins/Http/SelfHosting/SelfHostingOptionsFactory.cs +++ b/src/main.lib/Plugins/ValidationPlugins/Http/SelfHosting/SelfHostingOptionsFactory.cs @@ -18,15 +18,15 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins.Http public override bool Disabled => SelfHosting.IsDisabled(_userRoleService); - public override Task<SelfHostingOptions> Aquire(Target target, IInputService inputService, RunLevel runLevel) => Default(target); + public override Task<SelfHostingOptions?> Aquire(Target target, IInputService inputService, RunLevel runLevel) => Default(target); - public override Task<SelfHostingOptions> Default(Target target) + public override async Task<SelfHostingOptions?> Default(Target target) { var args = _arguments.GetArguments<SelfHostingArguments>(); - return Task.FromResult(new SelfHostingOptions() + return new SelfHostingOptions() { Port = args.ValidationPort - }); + }; } } }
\ No newline at end of file diff --git a/src/main.lib/Plugins/ValidationPlugins/Http/Sftp/Sftp.cs b/src/main.lib/Plugins/ValidationPlugins/Http/Sftp/Sftp.cs index 91981d5..f3f536c 100644 --- a/src/main.lib/Plugins/ValidationPlugins/Http/Sftp/Sftp.cs +++ b/src/main.lib/Plugins/ValidationPlugins/Http/Sftp/Sftp.cs @@ -6,7 +6,7 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins.Http { internal class Sftp : HttpValidation<SftpOptions, Sftp> { - private SshFtpClient _sshFtpClient; + private SshFtpClient? _sshFtpClient; public Sftp(SftpOptions options, HttpValidationParameters pars, RunLevel runLevel) : base(options, runLevel, pars) => _sshFtpClient = new SshFtpClient(_options.Credential.GetCredential(), pars.LogService); diff --git a/src/main.lib/Plugins/ValidationPlugins/Http/Sftp/SftpOptionsFactory.cs b/src/main.lib/Plugins/ValidationPlugins/Http/Sftp/SftpOptionsFactory.cs index 754bba3..31c2c3b 100644 --- a/src/main.lib/Plugins/ValidationPlugins/Http/Sftp/SftpOptionsFactory.cs +++ b/src/main.lib/Plugins/ValidationPlugins/Http/Sftp/SftpOptionsFactory.cs @@ -22,15 +22,15 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins.Http }; } - public override Task<SftpOptions> Default(Target target) + public override async Task<SftpOptions?> Default(Target target) { - return Task.FromResult(new SftpOptions(BaseDefault(target)) + return new SftpOptions(BaseDefault(target)) { Credential = new NetworkCredentialOptions(_arguments) - }); + }; } - public override async Task<SftpOptions> Aquire(Target target, IInputService inputService, RunLevel runLevel) + public override async Task<SftpOptions?> Aquire(Target target, IInputService inputService, RunLevel runLevel) { return new SftpOptions(await BaseAquire(target, inputService)) { diff --git a/src/main.lib/Plugins/ValidationPlugins/Http/WebDav/WebDav.cs b/src/main.lib/Plugins/ValidationPlugins/Http/WebDav/WebDav.cs index dcead5c..990f338 100644 --- a/src/main.lib/Plugins/ValidationPlugins/Http/WebDav/WebDav.cs +++ b/src/main.lib/Plugins/ValidationPlugins/Http/WebDav/WebDav.cs @@ -6,7 +6,7 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins.Http { internal class WebDav : HttpValidation<WebDavOptions, WebDav> { - private WebDavClientWrapper _webdavClient; + private readonly WebDavClientWrapper _webdavClient; public WebDav( WebDavOptions options, HttpValidationParameters pars, @@ -25,7 +25,7 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins.Http public override Task CleanUp() { base.CleanUp(); - _webdavClient = null; + _webdavClient.Dispose(); return Task.CompletedTask; } } diff --git a/src/main.lib/Plugins/ValidationPlugins/Http/WebDav/WebDavOptions.cs b/src/main.lib/Plugins/ValidationPlugins/Http/WebDav/WebDavOptions.cs index 540f135..bcb9a20 100644 --- a/src/main.lib/Plugins/ValidationPlugins/Http/WebDav/WebDavOptions.cs +++ b/src/main.lib/Plugins/ValidationPlugins/Http/WebDav/WebDavOptions.cs @@ -16,7 +16,7 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins.Http /// <summary> /// Credentials to use for WebDav connection /// </summary> - public NetworkCredentialOptions Credential { get; set; } + public NetworkCredentialOptions? Credential { get; set; } /// <summary> /// Show settings to user diff --git a/src/main.lib/Plugins/ValidationPlugins/Http/WebDav/WebDavOptionsFactory.cs b/src/main.lib/Plugins/ValidationPlugins/Http/WebDav/WebDavOptionsFactory.cs index 49ea451..f9f358c 100644 --- a/src/main.lib/Plugins/ValidationPlugins/Http/WebDav/WebDavOptionsFactory.cs +++ b/src/main.lib/Plugins/ValidationPlugins/Http/WebDav/WebDavOptionsFactory.cs @@ -28,15 +28,15 @@ namespace PKISharp.WACS.Plugins.ValidationPlugins.Http }; } - public override Task<WebDavOptions> Default(Target target) + public override async Task<WebDavOptions?> Default(Target target) { - return Task.FromResult(new WebDavOptions(BaseDefault(target)) + return new WebDavOptions(BaseDefault(target)) { Credential = new NetworkCredentialOptions(_arguments) - }); + }; } - public override async Task<WebDavOptions> Aquire(Target target, IInputService inputService, RunLevel runLevel) + public override async Task<WebDavOptions?> Aquire(Target target, IInputService inputService, RunLevel runLevel) { return new WebDavOptions(await BaseAquire(target, inputService)) { |