Example usage for org.apache.hadoop.security Credentials Credentials

List of usage examples for org.apache.hadoop.security Credentials Credentials

Introduction

In this page you can find the example usage for org.apache.hadoop.security Credentials Credentials.

Prototype

public Credentials() 

Source Link

Document

Create an empty credentials instance.

Usage

From source file:org.apache.storm.common.HadoopCredentialUtil.java

License:Apache License

private static Credentials doGetCredentials(CredentialKeyProvider provider, Map<String, String> credentials,
        String configKey) {/* ww w .j  av  a  2s  .  c om*/
    Credentials credential = null;
    String credentialKey = provider.getCredentialKey(configKey);
    if (credentials != null && credentials.containsKey(credentialKey)) {
        try {
            byte[] credBytes = DatatypeConverter.parseBase64Binary(credentialKey);
            ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(credBytes));

            credential = new Credentials();
            credential.readFields(in);
        } catch (Exception e) {
            LOG.error("Could not obtain credentials from credentials map.", e);
        }
    }
    return credential;
}

From source file:org.apache.storm.hbase.security.AutoHBase.java

License:Apache License

@SuppressWarnings("unchecked")
protected Object getCredentials(Map<String, String> credentials) {
    Credentials credential = null;//w ww . j a  v  a 2s.c o  m
    if (credentials != null && credentials.containsKey(getCredentialKey())) {
        try {
            byte[] credBytes = DatatypeConverter.parseBase64Binary(credentials.get(getCredentialKey()));
            ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(credBytes));

            credential = new Credentials();
            credential.readFields(in);
            LOG.info("Got hbase credentials from credentials Map.");
        } catch (Exception e) {
            LOG.error("Could not obtain credentials from credentials map.", e);
        }
    }
    return credential;
}

From source file:org.apache.tajo.yarn.command.LaunchCommand.java

License:Apache License

private void setupSecurityTokens(ContainerLaunchContext amContainer, FileSystem fs) throws IOException {
    if (UserGroupInformation.isSecurityEnabled()) {
        Credentials credentials = new Credentials();
        String tokenRenewer = conf.get(YarnConfiguration.RM_PRINCIPAL);
        if (tokenRenewer == null || tokenRenewer.length() == 0) {
            throw new IOException("Can't get Master Kerberos principal for the RM to use as renewer");
        }//from  ww w . j a v  a 2 s  .  c o m

        // For now, only getting tokens for the default file-system.
        final Token<?> tokens[] = fs.addDelegationTokens(tokenRenewer, credentials);
        if (tokens != null) {
            for (Token<?> token : tokens) {
                LOG.info("Got dt for " + fs.getUri() + "; " + token);
            }
        }
        DataOutputBuffer dob = new DataOutputBuffer();
        credentials.writeTokenStorageToStream(dob);
        ByteBuffer fsTokens = ByteBuffer.wrap(dob.getData(), 0, dob.getLength());
        amContainer.setTokens(fsTokens);
    }
}

From source file:org.apache.tez.client.LocalClient.java

License:Apache License

protected Thread createDAGAppMaster(final ApplicationSubmissionContext appContext) {
    Thread thread = new Thread(new Runnable() {
        @Override/*from   w ww .j ava2  s  .c o m*/
        public void run() {
            try {
                ApplicationId appId = appContext.getApplicationId();

                // Set up working directory for DAGAppMaster
                Path staging = TezCommonUtils.getTezSystemStagingPath(conf, appId.toString());
                Path userDir = TezCommonUtils.getTezSystemStagingPath(conf, appId.toString() + "_wd");
                LOG.info("Using working directory: " + userDir.toUri().getPath());

                FileSystem fs = FileSystem.get(conf);
                // copy data from staging directory to working directory to simulate the resource localizing
                FileUtil.copy(fs, staging, fs, userDir, false, conf);
                // Prepare Environment
                Path logDir = new Path(userDir, "localmode-log-dir");
                Path localDir = new Path(userDir, "localmode-local-dir");
                fs.mkdirs(logDir);
                fs.mkdirs(localDir);

                UserGroupInformation.setConfiguration(conf);
                // Add session specific credentials to the AM credentials.
                ByteBuffer tokens = appContext.getAMContainerSpec().getTokens();

                Credentials amCredentials;
                if (tokens != null) {
                    amCredentials = TezCommonUtils.parseCredentialsBytes(tokens.array());
                } else {
                    amCredentials = new Credentials();
                }

                // Construct, initialize, and start the DAGAppMaster
                ApplicationAttemptId applicationAttemptId = ApplicationAttemptId.newInstance(appId, 0);
                ContainerId cId = ContainerId.newInstance(applicationAttemptId, 1);
                String currentHost = InetAddress.getLocalHost().getHostName();
                int nmPort = YarnConfiguration.DEFAULT_NM_PORT;
                int nmHttpPort = YarnConfiguration.DEFAULT_NM_WEBAPP_PORT;
                long appSubmitTime = System.currentTimeMillis();

                dagAppMaster = createDAGAppMaster(applicationAttemptId, cId, currentHost, nmPort, nmHttpPort,
                        new SystemClock(), appSubmitTime, isSession, userDir.toUri().getPath(),
                        new String[] { localDir.toUri().getPath() }, new String[] { logDir.toUri().getPath() },
                        amCredentials, UserGroupInformation.getCurrentUser().getShortUserName());
                clientHandler = new DAGClientHandler(dagAppMaster);
                DAGAppMaster.initAndStartAppMaster(dagAppMaster, conf);

            } catch (Throwable t) {
                LOG.fatal("Error starting DAGAppMaster", t);
                if (dagAppMaster != null) {
                    dagAppMaster.stop();
                }
                amFailException = t;
            }
        }
    });

    thread.setName("DAGAppMaster Thread");
    LOG.info("DAGAppMaster thread has been created");

    return thread;
}

From source file:org.apache.tez.client.TestTezClientUtils.java

License:Apache License

/**
 * /*from  w  ww  . j  a v  a 2 s .  c  o  m*/
 */
@Test(timeout = 5000)
public void validateSetTezJarLocalResourcesNotDefined() throws Exception {

    TezConfiguration conf = new TezConfiguration(false);
    Credentials credentials = new Credentials();
    try {
        Map<String, LocalResource> resources = new HashMap<String, LocalResource>();
        TezClientUtils.setupTezJarsLocalResources(conf, credentials, resources);
        Assert.fail("Expected TezUncheckedException");
    } catch (TezUncheckedException e) {
        Assert.assertTrue(e.getMessage().contains("Invalid configuration of tez jars"));
    }
}

From source file:org.apache.tez.client.TestTezClientUtils.java

License:Apache License

@Test(timeout = 5000)
public void validateSetTezJarLocalResourcesDefinedButEmpty() throws Exception {
    File emptyDir = new File(TEST_ROOT_DIR, "emptyDir");
    emptyDir.deleteOnExit();//from w w  w  .  j av a 2s  .c  o  m
    Assert.assertTrue(emptyDir.mkdirs());
    TezConfiguration conf = new TezConfiguration();
    conf.set(TezConfiguration.TEZ_LIB_URIS, emptyDir.toURI().toURL().toString());
    Credentials credentials = new Credentials();
    try {
        Map<String, LocalResource> resources = new HashMap<String, LocalResource>();
        TezClientUtils.setupTezJarsLocalResources(conf, credentials, resources);
        Assert.fail("Expected TezUncheckedException");
    } catch (TezUncheckedException e) {
        Assert.assertTrue(e.getMessage().contains("No files found in locations"));
    }
}

From source file:org.apache.tez.client.TestTezClientUtils.java

License:Apache License

/**
 * //from   w w w  . ja va 2s  .com
 */
@Test(expected = FileNotFoundException.class, timeout = 5000)
public void validateSetTezJarLocalResourcesDefinedNonExistingDirectory() throws Exception {

    TezConfiguration conf = new TezConfiguration();
    conf.set(TezConfiguration.TEZ_LIB_URIS, "file:///foo");
    Credentials credentials = new Credentials();
    Map<String, LocalResource> resources = new HashMap<String, LocalResource>();
    TezClientUtils.setupTezJarsLocalResources(conf, credentials, resources);
}

From source file:org.apache.tez.client.TestTezClientUtils.java

License:Apache License

/**
 *
 *///from   w  w w .  ja v a  2 s.  c  om
@Test(timeout = 5000)
public void validateSetTezJarLocalResourcesDefinedExistingDirectory() throws Exception {
    URL[] cp = ((URLClassLoader) ClassLoader.getSystemClassLoader()).getURLs();
    StringBuffer buffer = new StringBuffer();
    for (URL url : cp) {
        buffer.append(url.toExternalForm());
        buffer.append(",");
    }
    TezConfiguration conf = new TezConfiguration();
    conf.set(TezConfiguration.TEZ_LIB_URIS, buffer.toString());
    Credentials credentials = new Credentials();
    Map<String, LocalResource> localizedMap = new HashMap<String, LocalResource>();
    boolean usingArchive = TezClientUtils.setupTezJarsLocalResources(conf, credentials, localizedMap);
    Assert.assertFalse(usingArchive);
    Set<String> resourceNames = localizedMap.keySet();
    for (URL url : cp) {
        File file = FileUtils.toFile(url);
        if (file.isDirectory()) {
            String[] firList = file.list();
            for (String fileNme : firList) {
                File innerFile = new File(file, fileNme);
                if (!innerFile.isDirectory()) {
                    assertTrue(resourceNames.contains(innerFile.getName()));
                }
                // not supporting deep hierarchies 
            }
        } else {
            assertTrue(resourceNames.contains(file.getName()));
        }
    }
}

From source file:org.apache.tez.client.TestTezClientUtils.java

License:Apache License

/**
 * /*from w w w. ja  va  2 s  .c om*/
 * @throws Exception
 */
@Test(timeout = 5000)
public void validateSetTezJarLocalResourcesDefinedExistingDirectoryIgnored() throws Exception {
    URL[] cp = ((URLClassLoader) ClassLoader.getSystemClassLoader()).getURLs();
    StringBuffer buffer = new StringBuffer();
    for (URL url : cp) {
        buffer.append(url.toExternalForm());
        buffer.append(",");
    }
    TezConfiguration conf = new TezConfiguration();
    conf.set(TezConfiguration.TEZ_LIB_URIS, buffer.toString());
    conf.setBoolean(TezConfiguration.TEZ_IGNORE_LIB_URIS, true);
    Credentials credentials = new Credentials();
    Map<String, LocalResource> localizedMap = new HashMap<String, LocalResource>();
    Assert.assertFalse(TezClientUtils.setupTezJarsLocalResources(conf, credentials, localizedMap));
    assertTrue(localizedMap.isEmpty());
}

From source file:org.apache.tez.client.TestTezClientUtils.java

License:Apache License

/**
 * /*from   ww w  .j  av a  2  s.co  m*/
 * @throws Exception
 */
@Test(timeout = 5000)
public void validateSetTezJarLocalResourcesDefinedExistingDirectoryIgnoredSetToFalse() throws Exception {
    URL[] cp = ((URLClassLoader) ClassLoader.getSystemClassLoader()).getURLs();
    StringBuffer buffer = new StringBuffer();
    for (URL url : cp) {
        buffer.append(url.toExternalForm());
        buffer.append(",");
    }
    TezConfiguration conf = new TezConfiguration();
    conf.set(TezConfiguration.TEZ_LIB_URIS, buffer.toString());
    conf.setBoolean(TezConfiguration.TEZ_IGNORE_LIB_URIS, false);
    Credentials credentials = new Credentials();
    Map<String, LocalResource> localizedMap = new HashMap<String, LocalResource>();
    Assert.assertFalse(TezClientUtils.setupTezJarsLocalResources(conf, credentials, localizedMap));
    assertFalse(localizedMap.isEmpty());
}