Example usage for org.apache.solr.client.solrj.impl Krb5HttpClientBuilder Krb5HttpClientBuilder

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

Introduction

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

Prototype

public Krb5HttpClientBuilder() 

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 .jav a2  s. c o 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);
    }
}