Example usage for org.apache.hadoop.security.alias CredentialProviderFactory CREDENTIAL_PROVIDER_PATH

List of usage examples for org.apache.hadoop.security.alias CredentialProviderFactory CREDENTIAL_PROVIDER_PATH

Introduction

In this page you can find the example usage for org.apache.hadoop.security.alias CredentialProviderFactory CREDENTIAL_PROVIDER_PATH.

Prototype

String CREDENTIAL_PROVIDER_PATH

To view the source code for org.apache.hadoop.security.alias CredentialProviderFactory CREDENTIAL_PROVIDER_PATH.

Click Source Link

Usage

From source file:CustomAuthenticator.java

License:Apache License

public static char[] getPassword(String credentialProvider, String alias) throws IOException {
    Configuration conf = new Configuration();
    conf.set(CredentialProviderFactory.CREDENTIAL_PROVIDER_PATH, credentialProvider);
    return conf.getPassword(alias);
}

From source file:org.apache.atlas.CredentialProviderUtilityIT.java

License:Apache License

@Test
public void testEnterValidValues() throws Exception {
    Path testPath = null;//from ww w  . j a va2 s .  co m
    try {
        testPath = new Path(Files.createTempDirectory("tempproviders").toString(), "test.jks");
    } catch (IOException e) {
        e.printStackTrace();
    }
    new File(testPath.toUri().getPath()).delete();
    final Path finalTestPath = testPath;
    CredentialProviderUtility.textDevice = new CredentialProviderUtility.TextDevice() {
        @Override
        public void printf(String fmt, Object... params) {
            System.out.print(String.format(fmt, params));
        }

        public String readLine(String fmt, Object... args) {
            return finalTestPath.toString();
        }

        @Override
        public char[] readPassword(String fmt, Object... args) {
            return defaultPass;
        }
    };

    CredentialProviderUtility.main(new String[] {});

    String providerUrl = JavaKeyStoreProvider.SCHEME_NAME + "://file/" + testPath.toUri();
    Configuration conf = new Configuration(false);

    conf.set(CredentialProviderFactory.CREDENTIAL_PROVIDER_PATH, providerUrl);

    CredentialProvider provider = CredentialProviderFactory.getProviders(conf).get(0);

    CredentialProvider.CredentialEntry entry = provider
            .getCredentialEntry(SecurityProperties.KEYSTORE_PASSWORD_KEY);
    assertCredentialEntryCorrect(entry);
    entry = provider.getCredentialEntry(SecurityProperties.TRUSTSTORE_PASSWORD_KEY);
    assertCredentialEntryCorrect(entry);
    entry = provider.getCredentialEntry(SecurityProperties.SERVER_CERT_PASSWORD_KEY);
    assertCredentialEntryCorrect(entry);
}

From source file:org.apache.atlas.CredentialProviderUtilityIT.java

License:Apache License

@Test
public void testEnterEmptyValues() throws Exception {
    Path testPath = null;// www . j  av a  2  s  . com
    try {
        testPath = new Path(Files.createTempDirectory("tempproviders").toString(), "test.jks");
    } catch (IOException e) {
        e.printStackTrace();
    }
    new File(testPath.toUri().getPath()).delete();
    final Path finalTestPath = testPath;
    CredentialProviderUtility.textDevice = new CredentialProviderUtility.TextDevice() {

        private Random random = new Random();

        @Override
        public void printf(String fmt, Object... params) {
            System.out.print(String.format(fmt, params));
        }

        public String readLine(String fmt, Object... args) {
            return finalTestPath.toString();
        }

        @Override
        public char[] readPassword(String fmt, Object... args) {
            List<char[]> responses = new ArrayList<>();
            responses.add(new char[0]);
            responses.add(defaultPass);

            int size = responses.size();
            int item = random.nextInt(size);
            return responses.get(item);
        }
    };

    CredentialProviderUtility.main(new String[] {});

    String providerUrl = JavaKeyStoreProvider.SCHEME_NAME + "://file/" + testPath.toUri();
    Configuration conf = new Configuration(false);

    conf.set(CredentialProviderFactory.CREDENTIAL_PROVIDER_PATH, providerUrl);

    CredentialProvider provider = CredentialProviderFactory.getProviders(conf).get(0);

    CredentialProvider.CredentialEntry entry = provider
            .getCredentialEntry(SecurityProperties.KEYSTORE_PASSWORD_KEY);
    assertCredentialEntryCorrect(entry);
    entry = provider.getCredentialEntry(SecurityProperties.TRUSTSTORE_PASSWORD_KEY);
    assertCredentialEntryCorrect(entry);
    entry = provider.getCredentialEntry(SecurityProperties.SERVER_CERT_PASSWORD_KEY);
    assertCredentialEntryCorrect(entry);
}

From source file:org.apache.atlas.CredentialProviderUtilityIT.java

License:Apache License

@Test
public void testEnterMismatchedValues() throws Exception {
    Path testPath = null;/*  www  . java2  s .  c  om*/
    try {
        testPath = new Path(Files.createTempDirectory("tempproviders").toString(), "test.jks");
    } catch (IOException e) {
        e.printStackTrace();
    }
    new File(testPath.toUri().getPath()).delete();
    final Path finalTestPath = testPath;
    CredentialProviderUtility.textDevice = new CredentialProviderUtility.TextDevice() {

        int i = 0;

        @Override
        public void printf(String fmt, Object... params) {
            System.out.print(String.format(fmt, params));
        }

        public String readLine(String fmt, Object... args) {
            return finalTestPath.toString();
        }

        @Override
        public char[] readPassword(String fmt, Object... args) {
            List<char[]> responses = new ArrayList<>();
            responses.add(defaultPass);
            responses.add(new char[] { 'b', 'a', 'd', 'p', 'a', 's', 's' });
            responses.add(defaultPass);

            int item = i % 3;
            i++;
            return responses.get(item);
        }
    };

    CredentialProviderUtility.main(new String[] {});

    String providerUrl = JavaKeyStoreProvider.SCHEME_NAME + "://file/" + testPath.toUri();
    Configuration conf = new Configuration(false);

    conf.set(CredentialProviderFactory.CREDENTIAL_PROVIDER_PATH, providerUrl);

    CredentialProvider provider = CredentialProviderFactory.getProviders(conf).get(0);

    CredentialProvider.CredentialEntry entry = provider
            .getCredentialEntry(SecurityProperties.KEYSTORE_PASSWORD_KEY);
    assertCredentialEntryCorrect(entry);
    entry = provider.getCredentialEntry(SecurityProperties.TRUSTSTORE_PASSWORD_KEY);
    assertCredentialEntryCorrect(entry);
    entry = provider.getCredentialEntry(SecurityProperties.SERVER_CERT_PASSWORD_KEY);
    assertCredentialEntryCorrect(entry);
}

From source file:org.apache.atlas.CredentialProviderUtilityIT.java

License:Apache License

@Test
public void testOverwriteValues() throws Exception {
    Path testPath = null;//ww  w  .jav a2s  .co m
    try {
        testPath = new Path(Files.createTempDirectory("tempproviders").toString(), "test.jks");
    } catch (IOException e) {
        e.printStackTrace();
    }
    new File(testPath.toUri().getPath()).delete();
    final Path finalTestPath = testPath;
    CredentialProviderUtility.textDevice = new CredentialProviderUtility.TextDevice() {
        @Override
        public void printf(String fmt, Object... params) {
            System.out.print(String.format(fmt, params));
        }

        public String readLine(String fmt, Object... args) {
            return finalTestPath.toString();
        }

        @Override
        public char[] readPassword(String fmt, Object... args) {
            return defaultPass;
        }
    };

    CredentialProviderUtility.main(new String[] {});

    // now attempt to overwrite values
    CredentialProviderUtility.textDevice = new CredentialProviderUtility.TextDevice() {

        int i = 0;

        @Override
        public void printf(String fmt, Object... params) {
            System.out.print(String.format(fmt, params));
        }

        public String readLine(String fmt, Object... args) {
            return i++ == 0 ? finalTestPath.toString() : "y";
        }

        @Override
        public char[] readPassword(String fmt, Object... args) {
            return new char[] { 'n', 'e', 'w', 'p', 'a', 's', 's' };
        }
    };

    CredentialProviderUtility.main(new String[] {});

    String providerUrl = JavaKeyStoreProvider.SCHEME_NAME + "://file/" + testPath.toUri();
    Configuration conf = new Configuration(false);

    conf.set(CredentialProviderFactory.CREDENTIAL_PROVIDER_PATH, providerUrl);

    CredentialProvider provider = CredentialProviderFactory.getProviders(conf).get(0);

    char[] newpass = "newpass".toCharArray();
    CredentialProvider.CredentialEntry entry = provider
            .getCredentialEntry(SecurityProperties.KEYSTORE_PASSWORD_KEY);
    assertCredentialEntryCorrect(entry, newpass);
    entry = provider.getCredentialEntry(SecurityProperties.TRUSTSTORE_PASSWORD_KEY);
    assertCredentialEntryCorrect(entry, newpass);
    entry = provider.getCredentialEntry(SecurityProperties.SERVER_CERT_PASSWORD_KEY);
    assertCredentialEntryCorrect(entry, newpass);
}

From source file:org.apache.atlas.security.SecureClientUtils.java

License:Apache License

public static void persistSSLClientConfiguration(org.apache.commons.configuration.Configuration clientConfig)
        throws AtlasException, IOException {
    //trust settings
    Configuration configuration = new Configuration(false);
    File sslClientFile = getSSLClientFile();
    if (!sslClientFile.exists()) {
        configuration.set("ssl.client.truststore.type", "jks");
        configuration.set("ssl.client.truststore.location", clientConfig.getString(TRUSTSTORE_FILE_KEY));
        if (clientConfig.getBoolean(CLIENT_AUTH_KEY, false)) {
            // need to get client key properties
            configuration.set("ssl.client.keystore.location", clientConfig.getString(KEYSTORE_FILE_KEY));
            configuration.set("ssl.client.keystore.type", "jks");
        }/*from w  w w  .  j av  a 2 s.c  o m*/
        // add the configured credential provider
        configuration.set(CredentialProviderFactory.CREDENTIAL_PROVIDER_PATH,
                clientConfig.getString(CERT_STORES_CREDENTIAL_PROVIDER_PATH));
        String hostnameVerifier = clientConfig.getString(SSLFactory.SSL_HOSTNAME_VERIFIER_KEY);
        if (hostnameVerifier != null) {
            configuration.set(SSLFactory.SSL_HOSTNAME_VERIFIER_KEY, hostnameVerifier);
        }

        configuration.writeXml(new FileWriter(sslClientFile));
    }
}

From source file:org.apache.atlas.util.CredentialProviderUtility.java

License:Apache License

/**\
 * Returns a credential provider for the entered JKS path.
 * @param textDevice the system console.
 * @return the Credential provider//ww w.  ja va 2 s. com
 * @throws IOException
 */
private static CredentialProvider getCredentialProvider(TextDevice textDevice) throws IOException {
    String providerPath = textDevice.readLine("Please enter the full path to the credential provider:");
    File file = new File(providerPath);
    if (file.exists()) {
        textDevice.printf("%s already exists.  You will need to specify whether existing entries should be "
                + "overwritten " + "(default is 'yes')\n", providerPath);
    }
    String providerURI = JavaKeyStoreProvider.SCHEME_NAME + "://file/" + providerPath;
    Configuration conf = new Configuration(false);
    conf.set(CredentialProviderFactory.CREDENTIAL_PROVIDER_PATH, providerURI);
    return CredentialProviderFactory.getProviders(conf).get(0);
}

From source file:org.apache.atlas.web.security.BaseSSLAndKerberosTest.java

License:Apache License

protected void setupCredentials() throws Exception {
    Configuration conf = new Configuration(false);

    File file = new File(jksPath.toUri().getPath());
    file.delete();// w ww .ja  v a 2s . c o  m
    conf.set(CredentialProviderFactory.CREDENTIAL_PROVIDER_PATH, providerUrl);

    CredentialProvider provider = CredentialProviderFactory.getProviders(conf).get(0);

    // create new aliases
    try {

        char[] storepass = { 'k', 'e', 'y', 'p', 'a', 's', 's' };
        provider.createCredentialEntry(SecurityProperties.KEYSTORE_PASSWORD_KEY, storepass);

        char[] trustpass = { 'k', 'e', 'y', 'p', 'a', 's', 's' };
        provider.createCredentialEntry(SecurityProperties.TRUSTSTORE_PASSWORD_KEY, trustpass);

        char[] trustpass2 = { 'k', 'e', 'y', 'p', 'a', 's', 's' };
        provider.createCredentialEntry("ssl.client.truststore.password", trustpass2);

        char[] certpass = { 'k', 'e', 'y', 'p', 'a', 's', 's' };
        provider.createCredentialEntry(SecurityProperties.SERVER_CERT_PASSWORD_KEY, certpass);

        // write out so that it can be found in checks
        provider.flush();
    } catch (Exception e) {
        e.printStackTrace();
        throw e;
    }
}

From source file:org.apache.atlas.web.security.SSLTest.java

License:Apache License

protected void setupCredentials() throws Exception {
    Configuration conf = new Configuration(false);

    File file = new File(jksPath.toUri().getPath());
    file.delete();/*from   w w  w.  j av a  2 s .  c  o m*/
    conf.set(CredentialProviderFactory.CREDENTIAL_PROVIDER_PATH, providerUrl);

    CredentialProvider provider = CredentialProviderFactory.getProviders(conf).get(0);

    // create new aliases
    try {

        char[] storepass = { 'k', 'e', 'y', 'p', 'a', 's', 's' };
        provider.createCredentialEntry(KEYSTORE_PASSWORD_KEY, storepass);

        char[] trustpass = { 'k', 'e', 'y', 'p', 'a', 's', 's' };
        provider.createCredentialEntry(TRUSTSTORE_PASSWORD_KEY, trustpass);

        char[] trustpass2 = { 'k', 'e', 'y', 'p', 'a', 's', 's' };
        provider.createCredentialEntry("ssl.client.truststore.password", trustpass2);

        char[] certpass = { 'k', 'e', 'y', 'p', 'a', 's', 's' };
        provider.createCredentialEntry(SERVER_CERT_PASSWORD_KEY, certpass);

        // write out so that it can be found in checks
        provider.flush();
    } catch (Exception e) {
        e.printStackTrace();
        throw e;
    }
}

From source file:org.apache.atlas.web.service.SecureEmbeddedServer.java

License:Apache License

/**
 * Retrieves a password from a configured credential provider or prompts for the password and stores it in the
 * configured credential provider.// w w  w  .ja va  2  s .  c  om
 * @param config application configuration
 * @param key the key/alias for the password.
 * @return the password.
 * @throws IOException
 */
private String getPassword(org.apache.commons.configuration.Configuration config, String key)
        throws IOException {

    String password;

    String provider = config.getString(CERT_STORES_CREDENTIAL_PROVIDER_PATH);
    if (provider != null) {
        LOG.info("Attempting to retrieve password from configured credential provider path");
        Configuration c = new Configuration();
        c.set(CredentialProviderFactory.CREDENTIAL_PROVIDER_PATH, provider);
        CredentialProvider credentialProvider = CredentialProviderFactory.getProviders(c).get(0);
        CredentialProvider.CredentialEntry entry = credentialProvider.getCredentialEntry(key);
        if (entry == null) {
            throw new IOException(String.format("No credential entry found for %s. "
                    + "Please create an entry in the configured credential provider", key));
        } else {
            password = String.valueOf(entry.getCredential());
        }

    } else {
        throw new IOException(
                "No credential provider path configured for storage of certificate store passwords");
    }

    return password;
}