Example usage for org.apache.http.client.config AuthSchemes KERBEROS

List of usage examples for org.apache.http.client.config AuthSchemes KERBEROS

Introduction

In this page you can find the example usage for org.apache.http.client.config AuthSchemes KERBEROS.

Prototype

String KERBEROS

To view the source code for org.apache.http.client.config AuthSchemes KERBEROS.

Click Source Link

Document

Kerberos Authentication scheme.

Usage

From source file:forcalibre.ClientProxyAuthentication.java

public static void main(String[] args) throws Exception {
    CredentialsProvider credsProvider = new BasicCredentialsProvider();
    credsProvider.setCredentials(new AuthScope(PROXY_HOST, PROXY_PORT),
            ///new UsernamePasswordCredentials("vimpelcom_main\\vyualeksandrov", "s1teRlin9g19")
            new NTCredentials("vyualeksandrov", "s1teRlin9g19", PROXY_HOST, "vimpelcom_main"));

    Registry<AuthSchemeProvider> authSchemeRegistry = RegistryBuilder.<AuthSchemeProvider>create()
            .register(AuthSchemes.NTLM, new NTLMSchemeFactory())
            .register(AuthSchemes.BASIC, new BasicSchemeFactory())
            .register(AuthSchemes.DIGEST, new DigestSchemeFactory())
            .register(AuthSchemes.SPNEGO, new SPNegoSchemeFactory())
            .register(AuthSchemes.KERBEROS, new KerberosSchemeFactory()).build();

    CloseableHttpClient httpclient = HttpClients.custom().setDefaultAuthSchemeRegistry(authSchemeRegistry)
            .setDefaultCredentialsProvider(credsProvider).build();

    try {/*w w w .  j av a 2 s . c  o  m*/
        //            HttpHost target = new HttpHost("www.verisign.com", 443, "https");
        //            HttpHost proxy = new HttpHost("localhost", 8080);

        HttpHost target = new HttpHost(TARGET_HOST, 80, "http");
        HttpHost proxy = new HttpHost(PROXY_HOST, PROXY_PORT);

        RequestConfig config = RequestConfig.custom().setProxy(proxy).build();
        HttpGet httpget = new HttpGet("/");
        httpget.setConfig(config);

        System.out.println("Executing request " + httpget.getRequestLine() + " to " + target + " via " + proxy);

        CloseableHttpResponse response = httpclient.execute(target, httpget);
        try {
            System.out.println("----------------------------------------");
            System.out.println(response.getStatusLine());
            EntityUtils.consume(response.getEntity());
        } finally {
            response.close();
        }
    } finally {
        httpclient.close();
    }
}

From source file:io.cloudslang.content.httpclient.build.auth.AuthSchemeProviderLookupBuilderTest.java

@Test
public void buildLookupWithKerberosAuth() {
    AuthTypes authTypes = new AuthTypes(AuthSchemes.KERBEROS);
    AuthSchemeProvider provider = new AuthSchemeProviderLookupBuilder().setAuthTypes(authTypes)
            .setHost("myweb.contoso.com").buildAuthSchemeProviderLookup().lookup(AuthSchemes.KERBEROS);
    assertThat(provider, instanceOf(KerberosSchemeFactory.class));
}

From source file:com.kms.core.io.HttpUtil_In.java

public static CloseableHttpClient getHttpClient(final String SoeID, final String Password, final int type) {
    CloseableHttpClient httpclient;//  www  . j av a2 s .  c  o  m

    // Auth Scheme 
    final Registry<AuthSchemeProvider> authSchemeRegistry = RegistryBuilder.<AuthSchemeProvider>create()
            .register(AuthSchemes.NTLM, new NTLMSchemeFactory())
            .register(AuthSchemes.BASIC, new BasicSchemeFactory())
            .register(AuthSchemes.DIGEST, new DigestSchemeFactory())
            .register(AuthSchemes.SPNEGO, new SPNegoSchemeFactory())
            .register(AuthSchemes.KERBEROS, new KerberosSchemeFactory()).build();

    // NTLM  
    final CredentialsProvider credsProvider = new BasicCredentialsProvider();
    credsProvider.setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), //AuthScope("localhost", 8080),
            new NTCredentials(SoeID, Password, "dummy", "APAC"));
    //new NTCredentials( SoeID, Password,"APACKR081WV058", "APAC" ));

    // ------------- cookie start ------------------------
    // Auction   
    // Create a local instance of cookie store
    final CookieStore cookieStore = new BasicCookieStore();

    //       Cookie  .
    final BasicClientCookie cookie = new BasicClientCookie("songdal_view", "YES");
    cookie.setVersion(0);
    cookie.setDomain(".scourt.go.kr");
    cookie.setPath("/");
    cookieStore.addCookie(cookie);

    // ------------- cookie end ------------------------

    if (type == 0) // TYPE.AuctionInput
    {
        // HTTP Client 
        httpclient = HttpClients.custom().setDefaultAuthSchemeRegistry(authSchemeRegistry)
                .setDefaultCredentialsProvider(credsProvider).build();
    } else // SagunInput
    {
        // HTTP Client 
        httpclient = HttpClients.custom().setDefaultAuthSchemeRegistry(authSchemeRegistry)
                .setDefaultCredentialsProvider(credsProvider).setDefaultCookieStore(cookieStore).build();
    }

    return httpclient;
}

From source file:io.cloudslang.content.httpclient.build.auth.CredentialsProviderBuilderTest.java

@Test
public void createKerberosCredentialsProvider() {
    CredentialsProvider credentialsProvider = getCredentialsProvider(AuthSchemes.KERBEROS);
    Credentials credentials = credentialsProvider.getCredentials(new AuthScope("host", 80));

    assertThat(credentials, instanceOf(Credentials.class));
}

From source file:com.datatorrent.stram.util.WebServicesClient.java

public static void initAuth(ConfigProvider configuration) {
    // Setting up BASIC and DIGEST auth
    setupUserPassAuthScheme(AuthScheme.BASIC, AuthSchemes.BASIC, new BasicSchemeFactory(), configuration);
    setupUserPassAuthScheme(AuthScheme.DIGEST, AuthSchemes.DIGEST, new DigestSchemeFactory(), configuration);

    // Adding kerberos standard auth
    setupHttpAuthScheme(AuthSchemes.KERBEROS, new KerberosSchemeFactory(), AuthScope.ANY,
            DEFAULT_TOKEN_CREDENTIALS);// ww  w .  j  a va2 s.  c  o  m

    authRegistry = registryBuilder.build();
}

From source file:com.jaeksoft.searchlib.crawler.web.spider.HttpAbstract.java

public HttpAbstract(String userAgent, boolean bFollowRedirect, ProxyHandler proxyHandler) {
    HttpClientBuilder builder = HttpClients.custom();

    redirectStrategy = new DefaultRedirectStrategy();

    if (userAgent != null) {
        userAgent = userAgent.trim();/* w w w.  j  av  a2  s  .c om*/
        if (userAgent.length() > 0)
            builder.setUserAgent(userAgent);
        else
            userAgent = null;
    }
    if (!bFollowRedirect)
        builder.disableRedirectHandling();

    this.proxyHandler = proxyHandler;

    Registry<AuthSchemeProvider> authSchemeRegistry = RegistryBuilder.<AuthSchemeProvider>create()
            .register(AuthSchemes.NTLM, new NTLMSchemeFactory())
            .register(AuthSchemes.BASIC, new BasicSchemeFactory())
            .register(AuthSchemes.DIGEST, new DigestSchemeFactory())
            .register(AuthSchemes.SPNEGO, new SPNegoSchemeFactory())
            .register(AuthSchemes.KERBEROS, new KerberosSchemeFactory()).build();

    credentialsProvider = new BasicCredentialsProvider();
    builder.setDefaultCredentialsProvider(credentialsProvider);

    cookieStore = new BasicCookieStore();
    builder.setDefaultCookieStore(cookieStore);

    builder.setDefaultCredentialsProvider(credentialsProvider);
    builder.setDefaultAuthSchemeRegistry(authSchemeRegistry);

    httpClient = builder.build();

}

From source file:io.cloudslang.content.httpclient.build.auth.AuthSchemeProviderLookupBuilder.java

public Lookup<AuthSchemeProvider> buildAuthSchemeProviderLookup() {
    RegistryBuilder<AuthSchemeProvider> registryBuilder = RegistryBuilder.create();

    for (String type : authTypes) {
        switch (type.trim()) {
        case "NTLM":
            registryBuilder.register(AuthSchemes.NTLM, new AuthSchemeProvider() {
                @Override/*w w  w. j ava2  s  .com*/
                public AuthScheme create(HttpContext httpContext) {
                    return new NTLMScheme(new JCIFSEngine());
                }
            });
            break;
        case "BASIC":
            registryBuilder.register(AuthSchemes.BASIC,
                    new BasicSchemeFactory(Charset.forName(Utils.DEFAULT_CHARACTER_SET)));
            String value = username + ":" + password;
            byte[] encodedValue = Base64.encodeBase64(value.getBytes(StandardCharsets.UTF_8));
            headers.add(new BasicHeader("Authorization", "Basic " + new String(encodedValue)));
            break;
        case "DIGEST":
            registryBuilder.register(AuthSchemes.DIGEST, new DigestSchemeFactory());
            break;
        case "KERBEROS":
            if (kerberosConfigFile != null) {
                System.setProperty("java.security.krb5.conf", kerberosConfigFile);
            } else {
                File krb5Config;
                String domain = host.replaceAll(".*\\.(?=.*\\.)", "");
                try {
                    krb5Config = createKrb5Configuration(domain);
                } catch (IOException e) {
                    throw new RuntimeException("could not create the krb5 config file" + e.getMessage(), e);
                }
                System.setProperty("java.security.krb5.conf", krb5Config.toURI().toString());
            }

            if (kerberosLoginConfigFile != null) {
                System.setProperty("java.security.auth.login.config", kerberosLoginConfigFile);
            } else {
                File loginConfig;
                try {
                    loginConfig = createLoginConfig();
                } catch (IOException e) {
                    throw new RuntimeException(
                            "could not create the kerberos login config file" + e.getMessage(), e);
                }
                System.setProperty("java.security.auth.login.config", loginConfig.toURI().toString());
            }

            if (password != null) {
                System.setProperty(KrbHttpLoginModule.PAS, password);
            }
            if (username != null) {
                System.setProperty(KrbHttpLoginModule.USR, username);
            }

            System.setProperty("javax.security.auth.useSubjectCredsOnly", "false");

            boolean skipPort = Boolean.parseBoolean(skipPortAtKerberosDatabaseLookup);
            registryBuilder.register(AuthSchemes.KERBEROS, new KerberosSchemeFactory(skipPort));
            registryBuilder.register(AuthSchemes.SPNEGO, new SPNegoSchemeFactory(skipPort));
            break;
        case AuthTypes.ANONYMOUS:
            break;
        default:
            throw new IllegalStateException(
                    "Unsupported '" + HttpClientInputs.AUTH_TYPE + "'authentication scheme: " + type);
        }
    }
    return registryBuilder.build();
}

From source file:org.openscore.content.httpclient.build.auth.AuthSchemeProviderLookupBuilder.java

public Lookup<AuthSchemeProvider> buildAuthSchemeProviderLookup() {
    RegistryBuilder<AuthSchemeProvider> registryBuilder = RegistryBuilder.create();

    for (String type : authTypes) {
        switch (type.trim()) {
        case "NTLM":
            registryBuilder.register(AuthSchemes.NTLM, new AuthSchemeProvider() {
                @Override//ww  w.  ja va 2s  .  co  m
                public AuthScheme create(HttpContext httpContext) {
                    return new NTLMScheme(new JCIFSEngine());
                }
            });
            break;
        case "BASIC":
            registryBuilder.register(AuthSchemes.BASIC, new BasicSchemeFactory(Charset.forName("UTF-8")));
            String value = username + ":" + password;
            byte[] encodedValue = Base64.encodeBase64(value.getBytes(StandardCharsets.UTF_8));
            headers.add(new BasicHeader("Authorization", "Basic " + new String(encodedValue)));
            break;
        case "DIGEST":
            registryBuilder.register(AuthSchemes.DIGEST, new DigestSchemeFactory());
            break;
        case "KERBEROS":
            if (getSettingsKey().equals(System.getProperty("oohttpclient.krb.last.settings"))) {
                break;
            }
            if (kerberosConfigFile != null) {
                System.setProperty("java.security.krb5.conf", kerberosConfigFile);
            } else {
                File krb5Config;
                String domain = host.replaceAll(".*\\.(?=.*\\.)", "");
                try {
                    krb5Config = createKrb5Configuration(domain);
                } catch (IOException e) {
                    throw new RuntimeException("could not create the krb5 config file" + e.getMessage(), e);
                }
                System.setProperty("java.security.krb5.conf", krb5Config.toURI().toString());
            }

            if (kerberosLoginConfigFile != null) {
                System.setProperty("java.security.auth.login.config", kerberosLoginConfigFile);
            } else {
                File loginConfig;
                try {
                    loginConfig = createLoginConfig();
                } catch (IOException e) {
                    throw new RuntimeException(
                            "could not create the kerberos login config file" + e.getMessage(), e);
                }
                System.setProperty("java.security.auth.login.config", loginConfig.toURI().toString());
            }

            //todo fix security issue
            if (password != null) {
                System.setProperty(KrbHttpLoginModule.PAS, password);
            }
            if (username != null) {
                System.setProperty(KrbHttpLoginModule.USR, username);
            }

            System.setProperty("javax.security.auth.useSubjectCredsOnly", "false");

            boolean skipPort = Boolean.parseBoolean(skipPortAtKerberosDatabaseLookup);
            registryBuilder.register(AuthSchemes.KERBEROS, new KerberosSchemeFactory(skipPort));
            registryBuilder.register(AuthSchemes.SPNEGO, new SPNegoSchemeFactory(skipPort));
            System.setProperty("oohttpclient.krb.last.settings", getSettingsKey());
            break;
        default:
            throw new IllegalStateException(
                    "Unsupported '" + HttpClientInputs.AUTH_TYPE + "'authentication scheme: " + type);
        }
    }
    return registryBuilder.build();
}

From source file:ch.cyberduck.core.http.HttpConnectionPoolBuilder.java

public HttpClientBuilder build(final TranscriptListener listener) {
    // Use HTTP Connect proxy implementation provided here instead of
    // relying on internal proxy support in socket factory
    final Proxy proxy = proxyFinder.find(host);
    if (proxy.getType() == Proxy.Type.HTTP) {
        final HttpHost h = new HttpHost(proxy.getHostname(), proxy.getPort(), Scheme.http.name());
        if (log.isInfoEnabled()) {
            log.info(String.format("Setup proxy %s", h));
        }/* ww  w .  jav a2s.co m*/
        builder.setProxy(h);
    }
    if (proxy.getType() == Proxy.Type.HTTPS) {
        final HttpHost h = new HttpHost(proxy.getHostname(), proxy.getPort(), Scheme.https.name());
        if (log.isInfoEnabled()) {
            log.info(String.format("Setup proxy %s", h));
        }
        builder.setProxy(h);
    }
    builder.setUserAgent(new PreferencesUseragentProvider().get());
    final int timeout = preferences.getInteger("connection.timeout.seconds") * 1000;
    builder.setDefaultSocketConfig(SocketConfig.custom().setTcpNoDelay(true).setSoTimeout(timeout).build());
    builder.setDefaultRequestConfig(RequestConfig.custom().setRedirectsEnabled(true)
            // Disable use of Expect: Continue by default for all methods
            .setExpectContinueEnabled(false).setAuthenticationEnabled(true).setConnectTimeout(timeout)
            // Sets the timeout in milliseconds used when retrieving a connection from the ClientConnectionManager
            .setConnectionRequestTimeout(preferences.getInteger("http.manager.timeout"))
            .setSocketTimeout(timeout).build());
    final String encoding;
    if (null == host.getEncoding()) {
        encoding = preferences.getProperty("browser.charset.encoding");
    } else {
        encoding = host.getEncoding();
    }
    builder.setDefaultConnectionConfig(
            ConnectionConfig.custom().setBufferSize(preferences.getInteger("http.socket.buffer"))
                    .setCharset(Charset.forName(encoding)).build());
    if (preferences.getBoolean("http.connections.reuse")) {
        builder.setConnectionReuseStrategy(new DefaultConnectionReuseStrategy());
    } else {
        builder.setConnectionReuseStrategy(new NoConnectionReuseStrategy());
    }
    builder.setRetryHandler(
            new ExtendedHttpRequestRetryHandler(preferences.getInteger("http.connections.retry")));
    if (!preferences.getBoolean("http.compression.enable")) {
        builder.disableContentCompression();
    }
    builder.setRequestExecutor(new LoggingHttpRequestExecutor(listener));
    // Always register HTTP for possible use with proxy. Contains a number of protocol properties such as the
    // default port and the socket factory to be used to create the java.net.Socket instances for the given protocol
    builder.setConnectionManager(this.pool(this.registry().build()));
    builder.setDefaultAuthSchemeRegistry(RegistryBuilder.<AuthSchemeProvider>create()
            .register(AuthSchemes.BASIC,
                    new BasicSchemeFactory(
                            Charset.forName(preferences.getProperty("http.credentials.charset"))))
            .register(AuthSchemes.DIGEST,
                    new DigestSchemeFactory(
                            Charset.forName(preferences.getProperty("http.credentials.charset"))))
            .register(AuthSchemes.NTLM, new NTLMSchemeFactory())
            .register(AuthSchemes.SPNEGO, new SPNegoSchemeFactory())
            .register(AuthSchemes.KERBEROS, new KerberosSchemeFactory()).build());
    return builder;
}

From source file:org.apache.maven.wagon.providers.http.AbstractHttpClientWagonFixed.java

private static CloseableHttpClient createClient() {
    return HttpClientBuilder.create() //
            .useSystemProperties() //
            .disableConnectionState() //
            .setConnectionManager(httpClientConnectionManager) //
            //Using Custom Default Schema Registry
            .setDefaultAuthSchemeRegistry(RegistryBuilder.<AuthSchemeProvider>create()
                    .register(AuthSchemes.BASIC, new BasicSchemeFactory())
                    .register(AuthSchemes.DIGEST, new DigestSchemeFactory())
                    .register(AuthSchemes.NTLM, new NTLMSchemeFactory())
                    //Using Custom SPNEGO Factory & FORCE strip port
                    //Kerberos Error: Server not found in Kerberos database (7) - LOOKING_UP_SERVER
                    .register(AuthSchemes.SPNEGO, new SPNegoSchemeFactory(true))
                    .register(AuthSchemes.KERBEROS, new KerberosSchemeFactory(true)).build())
            .build();//from  w  ww .  j  a va 2s.com
}