Example usage for org.apache.http.impl.auth KerberosSchemeFactory KerberosSchemeFactory

List of usage examples for org.apache.http.impl.auth KerberosSchemeFactory KerberosSchemeFactory

Introduction

In this page you can find the example usage for org.apache.http.impl.auth KerberosSchemeFactory KerberosSchemeFactory.

Prototype

public KerberosSchemeFactory(final boolean stripPort) 

Source Link

Usage

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//from   w  ww. j a  v  a2s  . c o m
                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/*  www  .  j  a va2  s .  c  o 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: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();//w  ww . j  a  v  a 2s.  co m
}