I’ve configured ElasticSearch server with authentication and works, but there are connection issues related to the ElasticSearch Sniffer class:
org.elasticsearch.client.ResponseException: method [GET], host [http://localhost:9200], URI [/_nodes/http?timeout=1000ms], status line [HTTP/1.1 401 Unauthorized]
{"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/_nodes/http?timeout=1000ms]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/_nodes/http?timeout=1000ms]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}},"status":401}
at org.elasticsearch.client.RestClient.convertResponse(RestClient.java:331)
at org.elasticsearch.client.RestClient.performRequest(RestClient.java:301)
at org.elasticsearch.client.RestClient.performRequest(RestClient.java:276)
at org.elasticsearch.client.sniff.ElasticsearchNodesSniffer.sniff(ElasticsearchNodesSniffer.java:106)
at org.elasticsearch.client.sniff.Sniffer.sniff(Sniffer.java:209)
at org.elasticsearch.client.sniff.Sniffer$Task.run(Sniffer.java:140)
at org.elasticsearch.client.sniff.Sniffer$1.run(Sniffer.java:81)
I don’t have any idea about why regular queries work but just the Sniffer fails. It seems that this Sniffer make use of RestClient but ignoring the authentication configuration properties at application.properties:
spring.jpa.properties.hibernate.search.backend.username=elastic
spring.jpa.properties.hibernate.search.backend.password=changeit
Any idea or workaround?