Browse Source

Implemented Basic & ApiKey authentication for elasticsearch

pull/8554/head
Necati Meral 6 years ago
parent
commit
7d07b2ad5e
  1. 18
      modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DefaultElasticClientProvider.cs
  2. 8
      modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DocsElasticSearchApiKeyAuthenticationOptions.cs
  3. 8
      modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DocsElasticSearchBasicAuthenticationOptions.cs
  4. 13
      modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DocsElasticSearchOptions.cs

18
modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DefaultElasticClientProvider.cs

@ -21,7 +21,25 @@ namespace Volo.Docs.Documents.FullSearch.Elastic
{ {
var node = new Uri(Configuration["ElasticSearch:Url"]); var node = new Uri(Configuration["ElasticSearch:Url"]);
var settings = new ConnectionSettings(node).DefaultIndex(Options.IndexName); var settings = new ConnectionSettings(node).DefaultIndex(Options.IndexName);
Authenticate(settings);
return new ElasticClient(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;
}
}
} }
} }

8
modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DocsElasticSearchApiKeyAuthenticationOptions.cs

@ -0,0 +1,8 @@
namespace Volo.Docs.Documents.FullSearch.Elastic
{
public class DocsElasticSearchApiKeyAuthenticationOptions
{
public string Id { get; set; }
public string ApiKey { get; set; }
}
}

8
modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DocsElasticSearchBasicAuthenticationOptions.cs

@ -0,0 +1,8 @@
namespace Volo.Docs.Documents.FullSearch.Elastic
{
public class DocsElasticSearchBasicAuthenticationOptions
{
public string Username { get; set; }
public string Password { get; set; }
}
}

13
modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/FullSearch/Elastic/DocsElasticSearchOptions.cs

@ -6,10 +6,23 @@
{ {
Enable = false; Enable = false;
IndexName = "abp_documents"; IndexName = "abp_documents";
AuthenticationMode = ElasticSearchAuthenticationMode.None;
} }
public bool Enable { get; set; } public bool Enable { get; set; }
public string IndexName { get; set; } public string IndexName { get; set; }
public ElasticSearchAuthenticationMode AuthenticationMode { get; set; }
public DocsElasticSearchBasicAuthenticationOptions BasicAuthentication { get; set; }
public DocsElasticSearchApiKeyAuthenticationOptions ApiKeyAuthentication { get; set; }
public enum ElasticSearchAuthenticationMode
{
None = 0,
Basic = 1,
ApiKey = 2
}
} }
} }

Loading…
Cancel
Save