Skip to content

Commit 04b7746

Browse files
fix: add interceptor for the HttpAsyncClientBuilder.
1 parent f53ea19 commit 04b7746

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

src/main/java/org/folio/search/configuration/OpensearchRestClientConfiguration.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,11 @@
3434
import org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManager;
3535
import org.apache.hc.client5.http.impl.nio.PoolingAsyncClientConnectionManagerBuilder;
3636
import org.apache.hc.client5.http.ssl.ClientTlsStrategyBuilder;
37+
import org.apache.hc.core5.http.EntityDetails;
3738
import org.apache.hc.core5.http.HttpHost;
39+
import org.apache.hc.core5.http.HttpRequest;
3840
import org.apache.hc.core5.http.nio.ssl.TlsStrategy;
41+
import org.apache.hc.core5.http.protocol.HttpContext;
3942
import org.apache.hc.core5.util.Timeout;
4043
import org.folio.search.configuration.opensearch.RestClientBuilderCustomizer;
4144
import org.folio.search.configuration.properties.OpensearchProperties;
@@ -44,7 +47,6 @@
4447
import org.opensearch.client.RestHighLevelClient;
4548
import org.springframework.beans.factory.ObjectProvider;
4649
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
47-
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
4850
import org.springframework.boot.context.properties.PropertyMapper;
4951
import org.springframework.context.annotation.Bean;
5052
import org.springframework.context.annotation.Configuration;
@@ -59,7 +61,6 @@ RestClientBuilderCustomizer defaultRestClientBuilderCustomizer(OpensearchPropert
5961
}
6062

6163
@Bean
62-
@ConditionalOnMissingBean(RestClientBuilder.class)
6364
RestClientBuilder opensearchRestClientBuilder(ObjectProvider<RestClientBuilderCustomizer> builderCustomizers,
6465
OpensearchProperties properties) {
6566
HttpHost[] hosts = properties.getUris().stream().map(this::createHttpHost).toArray(HttpHost[]::new);
@@ -128,6 +129,14 @@ static class DefaultRestClientBuilderCustomizer implements RestClientBuilderCust
128129
public void customize(HttpAsyncClientBuilder builder) {
129130
builder.setDefaultCredentialsProvider(new PropertiesCredentialsProvider(this.properties));
130131
builder.setConnectionManager(getPoolingAsyncClientConnectionManager());
132+
133+
builder.addRequestInterceptorFirst((HttpRequest request, EntityDetails entityDetails, HttpContext context) -> {
134+
var uri = request.getRequestUri();
135+
if (uri.contains("cluster_manager_timeout")) {
136+
var newUri = uri.replaceAll("[&?]?cluster_manager_timeout=[^&]*", "");
137+
request.setPath(newUri);
138+
}
139+
});
131140
}
132141

133142
@Override

0 commit comments

Comments
 (0)