mirror of
				https://github.com/open-metadata/OpenMetadata.git
				synced 2025-10-31 02:29:03 +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
	 rong fengliang
						rong fengliang