From 8565c4f052948305ce708d89b70894733ade2e3b Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 12 Apr 2021 16:56:03 +0800 Subject: [PATCH] Refactor. --- .../Elastic/DefaultElasticClientProvider.cs | 22 +-------- ...lasticSearchApiKeyAuthenticationOptions.cs | 8 ---- ...ElasticSearchBasicAuthenticationOptions.cs | 8 ---- .../Elastic/DocsElasticSearchOptions.cs | 47 ++++++++++++++----- 4 files changed, 38 insertions(+), 47 deletions(-) delete mode 100644 modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DocsElasticSearchApiKeyAuthenticationOptions.cs delete mode 100644 modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DocsElasticSearchBasicAuthenticationOptions.cs diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DefaultElasticClientProvider.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DefaultElasticClientProvider.cs index abcaefff99..8b4d82e5cd 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DefaultElasticClientProvider.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DefaultElasticClientProvider.cs @@ -21,25 +21,7 @@ namespace Volo.Docs.Documents.FullSearch.Elastic { var node = new Uri(Configuration["ElasticSearch:Url"]); var settings = new ConnectionSettings(node).DefaultIndex(Options.IndexName); - - Authenticate(settings); - - return new ElasticClient(settings); - } - - protected virtual void Authenticate(ConnectionSettings connectionSettings) - { - switch (Options.AuthenticationMode) - { - case DocsElasticSearchOptions.ElasticSearchAuthenticationMode.Basic: - var basicAuth = Options.BasicAuthentication; - connectionSettings.BasicAuthentication(basicAuth.Username, basicAuth.Password); - break; - case DocsElasticSearchOptions.ElasticSearchAuthenticationMode.ApiKey: - var apiKeyAuth = Options.ApiKeyAuthentication; - connectionSettings.BasicAuthentication(apiKeyAuth.Id, apiKeyAuth.ApiKey); - break; - } + return new ElasticClient(Options.Authenticate(settings)); } } -} \ No newline at end of file +} diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DocsElasticSearchApiKeyAuthenticationOptions.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DocsElasticSearchApiKeyAuthenticationOptions.cs deleted file mode 100644 index 2b26003dd2..0000000000 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DocsElasticSearchApiKeyAuthenticationOptions.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Volo.Docs.Documents.FullSearch.Elastic -{ - public class DocsElasticSearchApiKeyAuthenticationOptions - { - public string Id { get; set; } - public string ApiKey { get; set; } - } -} diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DocsElasticSearchBasicAuthenticationOptions.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DocsElasticSearchBasicAuthenticationOptions.cs deleted file mode 100644 index 1853e9bc7d..0000000000 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DocsElasticSearchBasicAuthenticationOptions.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Volo.Docs.Documents.FullSearch.Elastic -{ - public class DocsElasticSearchBasicAuthenticationOptions - { - public string Username { get; set; } - public string Password { get; set; } - } -} diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DocsElasticSearchOptions.cs b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DocsElasticSearchOptions.cs index e59a932ec4..6a17a034c4 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DocsElasticSearchOptions.cs +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DocsElasticSearchOptions.cs @@ -1,28 +1,53 @@ -namespace Volo.Docs.Documents.FullSearch.Elastic +using System; +using Nest; +using Volo.Abp; + +namespace Volo.Docs.Documents.FullSearch.Elastic { public class DocsElasticSearchOptions { + public bool Enable { get; set; } + + public string IndexName { get; set; } + + protected Action AuthenticationAction { get; set; } + public DocsElasticSearchOptions() { Enable = false; IndexName = "abp_documents"; - AuthenticationMode = ElasticSearchAuthenticationMode.None; } - public bool Enable { get; set; } + public DocsElasticSearchOptions UseBasicAuthentication(string username, string password) + { + Check.NotNullOrEmpty(username, nameof(username)); + Check.NotNullOrEmpty(password, nameof(password)); - public string IndexName { get; set; } + AuthenticationAction = settings => + { + settings.BasicAuthentication(username, password); + }; - public ElasticSearchAuthenticationMode AuthenticationMode { get; set; } + return this; + } - public DocsElasticSearchBasicAuthenticationOptions BasicAuthentication { get; set; } - public DocsElasticSearchApiKeyAuthenticationOptions ApiKeyAuthentication { get; set; } + public DocsElasticSearchOptions UseApiKeyAuthentication(string id, string apiKey) + { + Check.NotNullOrEmpty(id, nameof(id)); + Check.NotNullOrEmpty(apiKey, nameof(apiKey)); + + AuthenticationAction = settings => + { + settings.ApiKeyAuthentication(id, apiKey); + }; + + return this; + } - public enum ElasticSearchAuthenticationMode + public ConnectionSettings Authenticate(ConnectionSettings connectionSettings) { - None = 0, - Basic = 1, - ApiKey = 2 + AuthenticationAction?.Invoke(connectionSettings); + return connectionSettings; } } }