diff --git a/src/main/java/com/okta/tools/awscli.java b/src/main/java/com/okta/tools/awscli.java index 81ce441..3e949df 100644 --- a/src/main/java/com/okta/tools/awscli.java +++ b/src/main/java/com/okta/tools/awscli.java @@ -148,10 +148,8 @@ private static String oktaAuthntication() throws ClientProtocolException, JSONEx oktaPassword = new String(console.readPassword("Password: ")); } else { // hack to be able to debug in an IDE System.out.print("Password: "); - oktaUsername = "john"; oktaPassword = scanner.next(); - oktaPassword = "ctkQesDGLULiVyFPVFxuCfLzWX(7"; } responseAuthenticate = authnticateCredentials(oktaUsername, oktaPassword); @@ -413,9 +411,7 @@ private static AssumeRoleWithSAMLResult assumeAWSRole(String resultSAML) { //use user credentials to assume AWS role AWSSecurityTokenServiceClient stsClient = new AWSSecurityTokenServiceClient(awsCreds); - - - + AssumeRoleWithSAMLRequest assumeRequest = new AssumeRoleWithSAMLRequest() .withPrincipalArn(principalArn) .withRoleArn(roleArn) @@ -452,6 +448,12 @@ private static void GetRoleToAssume(String roleName) { } if (managedPolicies.size() >= 1) //we prioritize managed policies over inline policies { + List lstManagedPolicies = new ArrayList(); + + for (AttachedPolicy managedPolicy: managedPolicies) { + lstManagedPolicies.add(managedPolicy.getPolicyName()); + } + logger.debug("Managed Policies: " + managedPolicies.toString()); //TODO: handle more than 1 policy (ask the user to choose it?) AttachedPolicy attachedPolicy = managedPolicies.get(0); @@ -488,6 +490,26 @@ else if (inlinePolicies.size() >= 1) //if we only have one policy, then use it b } + private static String SelectPolicy(List lstPolicies) { + String strSelectedPolicy = null; + + System.out.println("\nPlease select a policy: "); + + //Gather list of policies for the selected role + int i = 1; + for (String strPolicyName: lstPolicies) + { + System.out.println("[ " + i + " ]: " + strPolicyName); + i++; + } + + + //Prompt user for policy selection + int selection = numSelection(lstPolicies.size()); + + return strSelectedPolicy; + } + private static String ProcessPolicyDocument(String policyDoc) { String strRoleToAssume = null;