/** * Main program. * * @param args * Command line arguments * @throws Exception */ public static void main(String[] args) throws Exception { int res = ToolRunner.run(new Configuration(), new CredentialShell(), args); System.exit(res); } }
ToolRunner.printGenericCommandUsage(getErr()); return 1; return 1; setSubCommand(new CreateCommand(args[++i])); } else if (args[i].equals("delete")) { if (i == args.length - 1) { return 1; setSubCommand(new DeleteCommand(args[++i])); } else if (args[i].equals("list")) { setSubCommand(new ListCommand()); } else if (args[i].equals("-provider")) { if (i == args.length - 1) { getConf().set(CredentialProviderFactory.CREDENTIAL_PROVIDER_PATH, args[++i]); } else if (args[i].equals("-f") || (args[i].equals("-force"))) { value = args[++i]; } else if (args[i].equals("-help")) { printShellUsage(); return 0; } else { ToolRunner.printGenericCommandUsage(getErr()); return 1;
protected char[] promptForCredential() throws IOException { PasswordReader c = getPasswordReader(); if (c == null) { throw new IOException("No console available for prompting user."); } char[] cred = null; boolean noMatch; do { char[] newPassword1 = c.readPassword("Enter alias password: "); char[] newPassword2 = c.readPassword("Enter alias password again: "); noMatch = !Arrays.equals(newPassword1, newPassword2); if (noMatch) { if (newPassword1 != null) { Arrays.fill(newPassword1, ' '); } c.format("Passwords don't match. Try again.%n"); } else { cred = newPassword1; } if (newPassword2 != null) { Arrays.fill(newPassword2, ' '); } } while (noMatch); return cred; }
protected CredentialProvider getCredentialProvider() { CredentialProvider prov = null; List<CredentialProvider> providers; try { providers = CredentialProviderFactory.getProviders(getConf()); if (userSuppliedProvider) { prov = providers.get(0); } else { for (CredentialProvider p : providers) { if (!p.isTransient()) { prov = p; break; } } } } catch (IOException e) { e.printStackTrace(getErr()); } if (prov == null) { getOut().println(NO_VALID_PROVIDERS); } return prov; }
public void execute() throws IOException, NoSuchAlgorithmException { if (alias.equals("-help")) { doHelp(); return; } warnIfTransientProvider(); try { char[] credential = null; if (value != null) { // testing only credential = value.toCharArray(); } else { credential = promptForCredential(); } provider.createCredentialEntry(alias, credential); provider.flush(); getOut().println(alias + " has been successfully created."); printProviderWritten(); } catch (InvalidParameterException e) { getOut().println("Credential " + alias + " has NOT been created. " + e.getMessage()); throw e; } catch (IOException e) { getOut().println("Credential " + alias + " has NOT been created. " + e.getMessage()); throw e; } }
return returnCode; CredentialShell cs = new CredentialShell(); Configuration conf = new Configuration(); cs.setConf(conf); returnCode= cs.run(toolArgs);
@Test public void testCommandHelpExitsNormally() throws Exception { for (String cmd : Arrays.asList("create", "list", "delete")) { CredentialShell shell = new CredentialShell(); shell.setConf(new Configuration()); assertEquals("Expected help argument on " + cmd + " to return 0", 0, shell.init(new String[] {cmd, "-help"})); } }
@Test public void testPromptForCredentialWithEmptyPasswd() throws Exception { String[] args1 = {"create", "credential1", "-provider", jceksProvider}; ArrayList<String> passwords = new ArrayList<String>(); passwords.add(null); passwords.add("p@ssw0rd"); int rc = 0; CredentialShell shell = new CredentialShell(); shell.setConf(new Configuration()); shell.setPasswordReader(new MockPasswordReader(passwords)); rc = shell.run(args1); assertEquals(outContent.toString(), 1, rc); assertTrue(outContent.toString().contains("Passwords don't match")); }
printCredShellUsage(); ToolRunner.printGenericCommandUsage(System.err); return 1; if (args[i].equals("create")) { if (i == args.length - 1) { printCredShellUsage(); return 1; command = new CreateCommand(alias); if (alias.equals("-help")) { printCredShellUsage(); return 0; printCredShellUsage(); return 1; command = new DeleteCommand(alias); if (alias.equals("-help")) { printCredShellUsage(); return 0; } else if (args[i].equals("-provider")) { if (i == args.length - 1) { printCredShellUsage(); return 1; getConf().set(CredentialProviderFactory.CREDENTIAL_PROVIDER_PATH, args[++i]);
@Override public int run(String[] args) throws Exception { int exitCode = 0; try { exitCode = init(args); if (exitCode != 0) { return exitCode; } if (command.validate()) { command.execute(); } else { exitCode = 1; } } catch (Exception e) { e.printStackTrace(err); return 1; } return exitCode; }
protected CredentialProvider getCredentialProvider() { CredentialProvider prov = null; List<CredentialProvider> providers; try { providers = CredentialProviderFactory.getProviders(getConf()); if (userSuppliedProvider) { prov = providers.get(0); } else { for (CredentialProvider p : providers) { if (!p.isTransient()) { prov = p; break; } } } } catch (IOException e) { e.printStackTrace(err); } if (prov == null) { out.println(NO_VALID_PROVIDERS); } return prov; }
public void execute() throws IOException, NoSuchAlgorithmException { warnIfTransientProvider(); try { char[] credential = null; if (value != null) { // testing only credential = value.toCharArray(); } else { credential = promptForCredential(); } provider.createCredentialEntry(alias, credential); out.println(alias + " has been successfully created."); provider.flush(); printProviderWritten(); } catch (InvalidParameterException e) { out.println(alias + " has NOT been created. " + e.getMessage()); throw e; } catch (IOException e) { out.println(alias + " has NOT been created. " + e.getMessage()); throw e; } }
return returnCode; CredentialShell cs = new CredentialShell(); Configuration conf = new Configuration(); cs.setConf(conf); returnCode= cs.run(toolArgs);
@Test public void testCommandHelpExitsNormally() throws Exception { for (String cmd : Arrays.asList("create", "list", "delete")) { CredentialShell shell = new CredentialShell(); shell.setConf(new Configuration()); assertEquals("Expected help argument on " + cmd + " to return 0", 0, shell.init(new String[] {cmd, "-help"})); } }
@Test public void testPromptForCredentialWithEmptyPasswd() throws Exception { String[] args1 = {"create", "credential1", "-provider", jceksProvider}; ArrayList<String> passwords = new ArrayList<String>(); passwords.add(null); passwords.add("p@ssw0rd"); int rc = 0; CredentialShell shell = new CredentialShell(); shell.setConf(new Configuration()); shell.setPasswordReader(new MockPasswordReader(passwords)); rc = shell.run(args1); assertEquals(outContent.toString(), 1, rc); assertTrue(outContent.toString().contains("Passwords don't match")); }
printCredShellUsage(); ToolRunner.printGenericCommandUsage(System.err); return 1; if (args[i].equals("create")) { if (i == args.length - 1) { printCredShellUsage(); return 1; command = new CreateCommand(alias); if (alias.equals("-help")) { printCredShellUsage(); return 0; printCredShellUsage(); return 1; command = new DeleteCommand(alias); if (alias.equals("-help")) { printCredShellUsage(); return 0; } else if (args[i].equals("-provider")) { if (i == args.length - 1) { printCredShellUsage(); return 1; getConf().set(CredentialProviderFactory.CREDENTIAL_PROVIDER_PATH, args[++i]);
@Override public int run(String[] args) throws Exception { int exitCode = 0; try { exitCode = init(args); if (exitCode != 0) { return exitCode; } if (command.validate()) { command.execute(); } else { exitCode = 1; } } catch (Exception e) { e.printStackTrace(err); return 1; } return exitCode; }
protected CredentialProvider getCredentialProvider() { CredentialProvider provider = null; List<CredentialProvider> providers; try { providers = CredentialProviderFactory.getProviders(getConf()); if (userSuppliedProvider) { provider = providers.get(0); } else { for (CredentialProvider p : providers) { if (!p.isTransient()) { provider = p; break; } } } } catch (IOException e) { e.printStackTrace(err); } return provider; }
public void execute() throws IOException, NoSuchAlgorithmException { warnIfTransientProvider(); try { char[] credential = null; if (value != null) { // testing only credential = value.toCharArray(); } else { credential = promptForCredential(); } provider.createCredentialEntry(alias, credential); out.println(alias + " has been successfully created."); provider.flush(); printProviderWritten(); } catch (InvalidParameterException e) { out.println(alias + " has NOT been created. " + e.getMessage()); throw e; } catch (IOException e) { out.println(alias + " has NOT been created. " + e.getMessage()); throw e; } }
args[4]=providerOption; args[5]=providerPath; CredentialShell cs = new CredentialShell(); Configuration conf = new Configuration(); cs.setConf(conf); returnCode= cs.run(toolArgs);