Example usage for org.apache.solr.client.solrj.impl HttpClientUtil addRequestInterceptor

List of usage examples for org.apache.solr.client.solrj.impl HttpClientUtil addRequestInterceptor

Introduction

In this page you can find the example usage for org.apache.solr.client.solrj.impl HttpClientUtil addRequestInterceptor.

Prototype

public static void addRequestInterceptor(HttpRequestInterceptor interceptor) 

Source Link

Usage

From source file:org.janusgraph.diskstorage.solr.SolrIndex.java

License:Apache License

private void configureSolrClientsForKerberos() throws PermanentBackendException {
    String kerberosConfig = System.getProperty("java.security.auth.login.config");
    if (kerberosConfig == null) {
        throw new PermanentBackendException(
                "Unable to configure kerberos for solr client. System property 'java.security.auth.login.config' is not set.");
    }/*from   w w  w . j  a va2s . co m*/
    logger.debug("Using kerberos configuration file located at '{}'.", kerberosConfig);
    try (Krb5HttpClientBuilder krbBuild = new Krb5HttpClientBuilder()) {

        SolrHttpClientBuilder kb = krbBuild.getBuilder();
        HttpClientUtil.setHttpClientBuilder(kb);
        HttpRequestInterceptor bufferedEntityInterceptor = new HttpRequestInterceptor() {
            @Override
            public void process(HttpRequest request, HttpContext context) throws HttpException, IOException {
                if (request instanceof HttpEntityEnclosingRequest) {
                    HttpEntityEnclosingRequest enclosingRequest = ((HttpEntityEnclosingRequest) request);
                    HttpEntity requestEntity = enclosingRequest.getEntity();
                    enclosingRequest.setEntity(new BufferedHttpEntity(requestEntity));
                }
            }
        };
        HttpClientUtil.addRequestInterceptor(bufferedEntityInterceptor);

        HttpRequestInterceptor preemptiveAuth = new PreemptiveAuth(new KerberosScheme());
        HttpClientUtil.addRequestInterceptor(preemptiveAuth);
    }
}