mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-09-09 00:51:42 +00:00
ISSUE-861: add elasticsearch username & password (#894)
* ISSUE-861: add elasticsearch username & password * ISSUE-861: python elasticsearch sink add username & password * ISSUE-861: bugfix * format code * format code
This commit is contained in:
parent
e2782168e0
commit
8e06fa25b6
@ -26,6 +26,10 @@ public class ElasticSearchConfiguration {
|
|||||||
@NotEmpty
|
@NotEmpty
|
||||||
private Integer port;
|
private Integer port;
|
||||||
|
|
||||||
|
private String username;
|
||||||
|
|
||||||
|
private String password;
|
||||||
|
|
||||||
public String getHost() {
|
public String getHost() {
|
||||||
return host;
|
return host;
|
||||||
}
|
}
|
||||||
@ -42,11 +46,29 @@ public class ElasticSearchConfiguration {
|
|||||||
this.port = port;
|
this.port = port;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getUsername() {
|
||||||
|
return username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUsername(String username) {
|
||||||
|
this.username = username;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPassword() {
|
||||||
|
return password;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPassword(String password) {
|
||||||
|
this.password = password;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "ElasticSearchConfiguration {" +
|
return "ElasticSearchConfiguration{" +
|
||||||
", host=" + host +
|
"host='" + host + '\'' +
|
||||||
", port=" + port +
|
", port=" + port +
|
||||||
"}";
|
", username='" + username + '\'' +
|
||||||
|
", password='" + password + '\'' +
|
||||||
|
'}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,6 +17,12 @@
|
|||||||
package org.openmetadata.catalog.resources.search;
|
package org.openmetadata.catalog.resources.search;
|
||||||
|
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.apache.http.auth.AuthScope;
|
||||||
|
import org.apache.http.auth.UsernamePasswordCredentials;
|
||||||
|
import org.apache.http.client.CredentialsProvider;
|
||||||
|
import org.apache.http.impl.client.BasicCredentialsProvider;
|
||||||
|
import org.elasticsearch.client.RestClientBuilder;
|
||||||
import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
|
import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder;
|
||||||
import org.elasticsearch.search.suggest.Suggest;
|
import org.elasticsearch.search.suggest.Suggest;
|
||||||
import org.elasticsearch.search.suggest.SuggestBuilder;
|
import org.elasticsearch.search.suggest.SuggestBuilder;
|
||||||
@ -66,9 +72,16 @@ public class SearchResource {
|
|||||||
private static final Logger LOG = LoggerFactory.getLogger(SearchResource.class);
|
private static final Logger LOG = LoggerFactory.getLogger(SearchResource.class);
|
||||||
|
|
||||||
public SearchResource(ElasticSearchConfiguration esConfig) {
|
public SearchResource(ElasticSearchConfiguration esConfig) {
|
||||||
this.client = new RestHighLevelClient(
|
RestClientBuilder restClientBuilder = RestClient.builder(new HttpHost(esConfig.getHost(), esConfig.getPort(), "http"));
|
||||||
RestClient.builder(new HttpHost(esConfig.getHost(), esConfig.getPort(), "http"))
|
if(StringUtils.isNotEmpty(esConfig.getUsername())){
|
||||||
);
|
CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
|
||||||
|
credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(esConfig.getUsername(), esConfig.getPassword()));
|
||||||
|
restClientBuilder.setHttpClientConfigCallback(httpAsyncClientBuilder -> {
|
||||||
|
httpAsyncClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
|
||||||
|
return httpAsyncClientBuilder;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
this.client = new RestHighLevelClient(restClientBuilder);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GET
|
@GET
|
||||||
|
@ -52,6 +52,8 @@ logger = logging.getLogger(__name__)
|
|||||||
class ElasticSearchConfig(ConfigModel):
|
class ElasticSearchConfig(ConfigModel):
|
||||||
es_host: str
|
es_host: str
|
||||||
es_port: int = 9200
|
es_port: int = 9200
|
||||||
|
es_username: str
|
||||||
|
es_password: str
|
||||||
index_tables: Optional[bool] = True
|
index_tables: Optional[bool] = True
|
||||||
index_topics: Optional[bool] = True
|
index_topics: Optional[bool] = True
|
||||||
index_dashboards: Optional[bool] = True
|
index_dashboards: Optional[bool] = True
|
||||||
@ -88,10 +90,14 @@ class ElasticsearchSink(Sink):
|
|||||||
self.status = SinkStatus()
|
self.status = SinkStatus()
|
||||||
self.rest = OpenMetadataAPIClient(self.metadata_config)
|
self.rest = OpenMetadataAPIClient(self.metadata_config)
|
||||||
self.elasticsearch_doc_type = "_doc"
|
self.elasticsearch_doc_type = "_doc"
|
||||||
|
http_auth = None
|
||||||
|
if self.config.es_username:
|
||||||
|
http_auth = (self.config.es_username, self.config.es_password)
|
||||||
self.elasticsearch_client = Elasticsearch(
|
self.elasticsearch_client = Elasticsearch(
|
||||||
[
|
[
|
||||||
{"host": self.config.es_host, "port": self.config.es_port},
|
{"host": self.config.es_host, "port": self.config.es_port},
|
||||||
]
|
],
|
||||||
|
http_auth=http_auth,
|
||||||
)
|
)
|
||||||
if self.config.index_tables:
|
if self.config.index_tables:
|
||||||
self._check_or_create_index(
|
self._check_or_create_index(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user