You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ma...@apache.org on 2015/03/08 11:00:22 UTC
incubator-ranger git commit: RANGER-294: Update CredentialShell usage
to support non-interactive mode
Repository: incubator-ranger
Updated Branches:
refs/heads/master 895ac2b19 -> 3aba25302
RANGER-294: Update CredentialShell usage to support non-interactive mode
Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/3aba2530
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/3aba2530
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/3aba2530
Branch: refs/heads/master
Commit: 3aba2530211bfce6a5cd4bd373b8f7e50abe7fe5
Parents: 895ac2b
Author: Madhan Neethiraj <ma...@apache.org>
Authored: Sat Mar 7 10:47:23 2015 -0800
Committer: Madhan Neethiraj <ma...@apache.org>
Committed: Sat Mar 7 10:47:23 2015 -0800
----------------------------------------------------------------------
.../apache/ranger/credentialapi/buildks.java | 43 +++++++++++++++++++-
.../credentialapi/TestCredentialReader.java | 39 +-----------------
.../ranger/credentialapi/Testbuildks.java | 43 ++------------------
3 files changed, 47 insertions(+), 78 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3aba2530/credentialbuilder/src/main/java/org/apache/ranger/credentialapi/buildks.java
----------------------------------------------------------------------
diff --git a/credentialbuilder/src/main/java/org/apache/ranger/credentialapi/buildks.java b/credentialbuilder/src/main/java/org/apache/ranger/credentialapi/buildks.java
index 25be1d6..b4c856b 100644
--- a/credentialbuilder/src/main/java/org/apache/ranger/credentialapi/buildks.java
+++ b/credentialbuilder/src/main/java/org/apache/ranger/credentialapi/buildks.java
@@ -21,6 +21,7 @@
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
+import java.lang.reflect.Field;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.security.alias.CredentialShell;
@@ -92,12 +93,13 @@ public class buildks {
}else{
try{
System.out.println("Alias already exist!! will try to delete first.");
+ boolean isSilentMode = true;
String argsDelete[]=new String[4];
argsDelete[0]="delete";
argsDelete[1]=alias;
argsDelete[2]=providerOption;
argsDelete[3]=providerPath;
- returnCode=deleteCredential(argsDelete);
+ returnCode=deleteCredential(argsDelete, isSilentMode);
if(returnCode==0){
returnCode=createKeyStore(args);
}
@@ -249,11 +251,23 @@ public class buildks {
return returnCode;
}
- public int deleteCredential(String args[]){
+ public int deleteCredential(String args[], boolean isSilentMode){
int returnCode=-1;
try{
if(args!=null && args.length==4)
{
+ // for non-interactive, insert argument "-f" if needed
+ if(isSilentMode && isCredentialShellInteractiveEnabled()) {
+ String[] updatedArgs = new String[5];
+ updatedArgs[0] = args[0];
+ updatedArgs[1] = args[1];
+ updatedArgs[2] = "-f";
+ updatedArgs[3] = args[2];
+ updatedArgs[4] = args[3];
+
+ args = updatedArgs;
+ }
+
//display command which need to be executed or entered
displayCommand(args);
}else{
@@ -430,4 +444,29 @@ public class buildks {
}
return isValid;
}
+
+ private static boolean isCredentialShellInteractiveEnabled() {
+ boolean ret = false ;
+
+ String fieldName = "interactive" ;
+
+ CredentialShell cs = new CredentialShell() ;
+
+ try {
+ Field interactiveField = cs.getClass().getDeclaredField(fieldName) ;
+
+ if (interactiveField != null) {
+ interactiveField.setAccessible(true);
+ ret = interactiveField.getBoolean(cs) ;
+ System.out.println("FOUND value of [" + fieldName + "] field in the Class [" + cs.getClass().getName() + "] = [" + ret + "]") ;
+ }
+ } catch (Throwable e) {
+ System.out.println("Unable to find the value of [" + fieldName + "] field in the Class [" + cs.getClass().getName() + "]. Skiping -f option") ;
+ e.printStackTrace();
+ ret = false;
+ }
+
+ return ret ;
+
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3aba2530/credentialbuilder/src/test/java/org/apache/ranger/credentialapi/TestCredentialReader.java
----------------------------------------------------------------------
diff --git a/credentialbuilder/src/test/java/org/apache/ranger/credentialapi/TestCredentialReader.java b/credentialbuilder/src/test/java/org/apache/ranger/credentialapi/TestCredentialReader.java
index 8dc64a7..5a8857c 100644
--- a/credentialbuilder/src/test/java/org/apache/ranger/credentialapi/TestCredentialReader.java
+++ b/credentialbuilder/src/test/java/org/apache/ranger/credentialapi/TestCredentialReader.java
@@ -45,46 +45,11 @@ public class TestCredentialReader {
assertTrue(password,"PassworD123".equals(password));
//delete after use
- String[] argsdeleteCommand = null ;
-
- if (isCredentialShellInteractiveEnabled()) {
- argsdeleteCommand = new String[] {"delete", "TestCredential2", "-f", "-provider", "jceks://file@/" + keystoreFile};
- }
- else {
- argsdeleteCommand = new String[] {"delete", "TestCredential2", "-provider", "jceks://file@/" + keystoreFile};
- }
+ String[] argsdeleteCommand = new String[] {"delete", "TestCredential2", "-provider", "jceks://file@/" + keystoreFile};
buildks buildksOBJ=new buildks();
- buildksOBJ.deleteCredential(argsdeleteCommand);
+ buildksOBJ.deleteCredential(argsdeleteCommand, true);
}
- private static boolean isCredentialShellInteractiveEnabled() {
- boolean ret = false ;
-
- String fieldName = "interactive" ;
-
- CredentialShell cs = new CredentialShell() ;
-
- try {
- Field interactiveField = cs.getClass().getDeclaredField(fieldName) ;
-
- if (interactiveField != null) {
- interactiveField.setAccessible(true);
- ret = interactiveField.getBoolean(cs) ;
- System.out.println("FOUND value of [" + fieldName + "] field in the Class [" + cs.getClass().getName() + "] = [" + ret + "]") ;
- }
- } catch (Throwable e) {
- System.out.println("Unable to find the value of [" + fieldName + "] field in the Class [" + cs.getClass().getName() + "]. Skiping -f option") ;
- e.printStackTrace();
- ret = false;
- }
-
- return ret ;
-
- }
-
-
-
-
}
http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/3aba2530/credentialbuilder/src/test/java/org/apache/ranger/credentialapi/Testbuildks.java
----------------------------------------------------------------------
diff --git a/credentialbuilder/src/test/java/org/apache/ranger/credentialapi/Testbuildks.java b/credentialbuilder/src/test/java/org/apache/ranger/credentialapi/Testbuildks.java
index f336186..a2ff824 100644
--- a/credentialbuilder/src/test/java/org/apache/ranger/credentialapi/Testbuildks.java
+++ b/credentialbuilder/src/test/java/org/apache/ranger/credentialapi/Testbuildks.java
@@ -48,18 +48,10 @@ public class Testbuildks {
assertTrue(pw.equals("PassworD123"));
boolean getCredentialPassed = pw.equals("PassworD123");
- String[] argsDeleteCommand = null ;
-
- if (isCredentialShellInteractiveEnabled()) {
- argsDeleteCommand = new String[] {"delete", "TestCredential1", "-f", "-provider", "jceks://file@/" +keystoreFile };
-
- }
- else {
- argsDeleteCommand = new String[] {"delete", "TestCredential1", "-provider", "jceks://file@/" +keystoreFile };
-
- }
-
- int rc3=buildksOBJ.deleteCredential(argsDeleteCommand);
+ String[] argsDeleteCommand = new String[] {"delete", "TestCredential1", "-provider", "jceks://file@/" +keystoreFile };
+ boolean isSilentMode = true;
+
+ int rc3=buildksOBJ.deleteCredential(argsDeleteCommand, isSilentMode);
assertEquals(0, rc3);
assertTrue(rc3==0);
@@ -90,31 +82,4 @@ public class Testbuildks {
tTestbuildks.testBuildKSsuccess();
}*/
-
- private static boolean isCredentialShellInteractiveEnabled() {
- boolean ret = false ;
-
- String fieldName = "interactive" ;
-
- CredentialShell cs = new CredentialShell() ;
-
- try {
- Field interactiveField = cs.getClass().getDeclaredField(fieldName) ;
-
- if (interactiveField != null) {
- interactiveField.setAccessible(true);
- ret = interactiveField.getBoolean(cs) ;
- System.out.println("FOUND value of [" + fieldName + "] field in the Class [" + cs.getClass().getName() + "] = [" + ret + "]") ;
- }
- } catch (Throwable e) {
- System.out.println("Unable to find the value of [" + fieldName + "] field in the Class [" + cs.getClass().getName() + "]. Skiping -f option") ;
- e.printStackTrace();
- ret = false;
- }
-
- return ret ;
-
- }
-
-
}