Repository: incubator-ranger Updated Branches: refs/heads/master 8d694aa3d -> df5a95e1b
RANGER-949 - Some agents improvements Signed-off-by: sneethiraj <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/df5a95e1 Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/df5a95e1 Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/df5a95e1 Branch: refs/heads/master Commit: df5a95e1be8a8b18239cc5fea0646e5c03354bb2 Parents: 8d694aa Author: Colm O hEigeartaigh <[email protected]> Authored: Mon Apr 25 11:46:25 2016 +0100 Committer: sneethiraj <[email protected]> Committed: Mon Jul 11 09:49:32 2016 -0400 ---------------------------------------------------------------------- .../hadoop/utils/RangerCredentialProvider.java | 20 +++++--------- .../utils/RangerCredentialProviderTest.java | 29 +++++++++++++++----- agents-installer/pom.xml | 6 ++-- .../ranger/utils/install/PasswordGenerator.java | 3 +- .../ranger/utils/install/XmlConfigChanger.java | 2 ++ 5 files changed, 36 insertions(+), 24 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/df5a95e1/agents-cred/src/main/java/org/apache/ranger/authorization/hadoop/utils/RangerCredentialProvider.java ---------------------------------------------------------------------- diff --git a/agents-cred/src/main/java/org/apache/ranger/authorization/hadoop/utils/RangerCredentialProvider.java b/agents-cred/src/main/java/org/apache/ranger/authorization/hadoop/utils/RangerCredentialProvider.java index d3faf60..6ac702a 100644 --- a/agents-cred/src/main/java/org/apache/ranger/authorization/hadoop/utils/RangerCredentialProvider.java +++ b/agents-cred/src/main/java/org/apache/ranger/authorization/hadoop/utils/RangerCredentialProvider.java @@ -28,24 +28,18 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -public class RangerCredentialProvider { +public final class RangerCredentialProvider { private static Log LOG = LogFactory.getLog(RangerCredentialProvider.class); - private static volatile RangerCredentialProvider me = null; - + private static final RangerCredentialProvider CRED_PROVIDER = new RangerCredentialProvider(); + + protected RangerCredentialProvider() { + // + } public static RangerCredentialProvider getInstance() { - RangerCredentialProvider result = me; - if ( result == null) { - synchronized(RangerCredentialProvider.class) { - result = me; - if ( result == null){ - me = result = new RangerCredentialProvider(); - } - } - } - return result; + return CRED_PROVIDER; } public char[] getCredentialString(String url, String alias) { http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/df5a95e1/agents-cred/src/test/java/org/apache/ranger/authorization/hadoop/utils/RangerCredentialProviderTest.java ---------------------------------------------------------------------- diff --git a/agents-cred/src/test/java/org/apache/ranger/authorization/hadoop/utils/RangerCredentialProviderTest.java b/agents-cred/src/test/java/org/apache/ranger/authorization/hadoop/utils/RangerCredentialProviderTest.java index 686318b..711e730 100644 --- a/agents-cred/src/test/java/org/apache/ranger/authorization/hadoop/utils/RangerCredentialProviderTest.java +++ b/agents-cred/src/test/java/org/apache/ranger/authorization/hadoop/utils/RangerCredentialProviderTest.java @@ -22,6 +22,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.io.File; +import java.io.IOException; import java.lang.reflect.Field; import java.util.List; @@ -34,19 +35,26 @@ import org.junit.Test; public class RangerCredentialProviderTest { - private final File ksFile = new File(System.getProperty("user.home")+"/testkeystore.jceks") ; - private final String keystoreFile = ksFile.toURI().getPath(); - private String[] argsCreate = {"create", "TestCredential001", "-value", "PassworD123", "-provider", "jceks://file@/" + keystoreFile}; - private String[] argsDelete = {"delete", "TestCredential001", "-provider", "jceks://file@/" + keystoreFile}; - private String url = "jceks://file@/" + keystoreFile; + private final File ksFile; + private final String keystoreFile; + private final String[] argsCreate; + private final String[] argsDelete; + private final String url; RangerCredentialProvider cp = null; List<CredentialProvider> providers = null; - public RangerCredentialProviderTest() { + public RangerCredentialProviderTest() throws IOException { + ksFile = File.createTempFile("testkeystore", "jceks"); + keystoreFile = ksFile.toURI().getPath(); + url = "jceks://file@/" + keystoreFile; + if ( isCredentialShellInteractiveEnabled() ) { argsCreate = new String[] {"create", "TestCredential001", "-f", "-value", "PassworD123", "-provider", "jceks://file@/" + keystoreFile}; argsDelete = new String[] {"delete", "TestCredential001", "-f" , "-provider", "jceks://file@/" + keystoreFile}; + } else { + argsCreate = new String[] {"create", "TestCredential001", "-value", "PassworD123", "-provider", "jceks://file@/" + keystoreFile}; + argsDelete = new String[] {"delete", "TestCredential001", "-provider", "jceks://file@/" + keystoreFile}; } } @@ -87,7 +95,14 @@ public class RangerCredentialProviderTest { assertEquals(0,ret); System.out.println("(1) Number of active Threads : " + Thread.activeCount() ) ; listThreads() ; - } + } + + @After + public void cleanup() throws Exception { + if (ksFile != null && ksFile.exists()) { + ksFile.delete() ; + } + } @Test public void testCredentialProvider() { http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/df5a95e1/agents-installer/pom.xml ---------------------------------------------------------------------- diff --git a/agents-installer/pom.xml b/agents-installer/pom.xml index 97837a8..7cdb563 100644 --- a/agents-installer/pom.xml +++ b/agents-installer/pom.xml @@ -29,9 +29,9 @@ </parent> <dependencies> <dependency> - <groupId>org.apache.hadoop</groupId> - <artifactId>hadoop-client</artifactId> - <version>${hadoop.version}</version> + <groupId>commons-cli</groupId> + <artifactId>commons-cli</artifactId> + <version>${commons.cli.version}</version> </dependency> </dependencies> </project> http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/df5a95e1/agents-installer/src/main/java/org/apache/ranger/utils/install/PasswordGenerator.java ---------------------------------------------------------------------- diff --git a/agents-installer/src/main/java/org/apache/ranger/utils/install/PasswordGenerator.java b/agents-installer/src/main/java/org/apache/ranger/utils/install/PasswordGenerator.java index 3632c1a..0b1bd51 100644 --- a/agents-installer/src/main/java/org/apache/ranger/utils/install/PasswordGenerator.java +++ b/agents-installer/src/main/java/org/apache/ranger/utils/install/PasswordGenerator.java @@ -16,6 +16,7 @@ */ package org.apache.ranger.utils.install; +import java.security.SecureRandom; import java.util.ArrayList; import java.util.Random; @@ -83,7 +84,7 @@ public class PasswordGenerator { int len = getPasswordLength() ; - Random random = new Random() ; + SecureRandom random = new SecureRandom() ; int setSz = all.size(); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/df5a95e1/agents-installer/src/main/java/org/apache/ranger/utils/install/XmlConfigChanger.java ---------------------------------------------------------------------- diff --git a/agents-installer/src/main/java/org/apache/ranger/utils/install/XmlConfigChanger.java b/agents-installer/src/main/java/org/apache/ranger/utils/install/XmlConfigChanger.java index 9d0cbed..dd26dc2 100644 --- a/agents-installer/src/main/java/org/apache/ranger/utils/install/XmlConfigChanger.java +++ b/agents-installer/src/main/java/org/apache/ranger/utils/install/XmlConfigChanger.java @@ -27,6 +27,7 @@ import java.io.FileReader; import java.io.IOException; import java.util.Properties; +import javax.xml.XMLConstants; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; @@ -166,6 +167,7 @@ public class XmlConfigChanger { loadInstallProperties() ; DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance() ; + factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); DocumentBuilder builder = factory.newDocumentBuilder() ; doc = builder.parse(inpFile) ;
