You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by sw...@apache.org on 2013/11/16 00:08:41 UTC

git commit: AMBARI-3780. Ambari password file should tolerate newlines. (swagle)

Updated Branches:
  refs/heads/trunk 8bd015a72 -> 05cb1b7d6


AMBARI-3780. Ambari password file should tolerate newlines. (swagle)


Project: http://git-wip-us.apache.org/repos/asf/incubator-ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ambari/commit/05cb1b7d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ambari/tree/05cb1b7d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ambari/diff/05cb1b7d

Branch: refs/heads/trunk
Commit: 05cb1b7d6f1e796b196994609cbac0710c86b224
Parents: 8bd015a
Author: Siddharth Wagle <sw...@hortonworks.com>
Authored: Fri Nov 15 15:03:13 2013 -0800
Committer: Siddharth Wagle <sw...@hortonworks.com>
Committed: Fri Nov 15 15:08:10 2013 -0800

----------------------------------------------------------------------
 .../server/configuration/Configuration.java     |  3 ++-
 .../server/configuration/ConfigurationTest.java | 27 +++++++++++++++++++-
 2 files changed, 28 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/05cb1b7d/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java b/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java
index 027f585..b92441b 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/configuration/Configuration.java
@@ -27,6 +27,7 @@ import org.apache.ambari.server.security.encryption.CredentialProvider;
 import org.apache.ambari.server.utils.ShellCommandUtil;
 import org.apache.commons.io.FileUtils;
 import org.apache.commons.lang.RandomStringUtils;
+import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import java.io.File;
@@ -649,6 +650,7 @@ public class Configuration {
       String password;
       try {
         password = FileUtils.readFileToString(new File(filePath));
+        password = StringUtils.chomp(password);
       } catch (IOException e) {
         throw new RuntimeException("Unable to read database password", e);
       }
@@ -848,5 +850,4 @@ public class Configuration {
     
     return value.split(",");
   }
-
 }

http://git-wip-us.apache.org/repos/asf/incubator-ambari/blob/05cb1b7d/ambari-server/src/test/java/org/apache/ambari/server/configuration/ConfigurationTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/configuration/ConfigurationTest.java b/ambari-server/src/test/java/org/apache/ambari/server/configuration/ConfigurationTest.java
index 73552f3..8da66f4 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/configuration/ConfigurationTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/configuration/ConfigurationTest.java
@@ -31,6 +31,7 @@ import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
+import org.junit.rules.TemporaryFolder;
 import org.junit.runner.RunWith;
 import org.powermock.api.easymock.PowerMock;
 import org.powermock.api.support.membermodification.MemberMatcher;
@@ -43,6 +44,8 @@ import static org.powermock.api.easymock.PowerMock.replayAll;
 import static org.powermock.api.easymock.PowerMock.verifyAll;
 
 import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
 import java.io.IOException;
 import java.lang.reflect.Method;
 import java.util.Map;
@@ -52,7 +55,7 @@ import java.util.Properties;
 @RunWith(PowerMockRunner.class)
 @PrepareForTest({ Configuration.class })
 public class ConfigurationTest {
-
+  public TemporaryFolder temp = new TemporaryFolder();
   private Injector injector;
 
   @Inject
@@ -62,10 +65,12 @@ public class ConfigurationTest {
   public void setup() throws Exception {
     injector = Guice.createInjector(new InMemoryDefaultTestModule());
     injector.injectMembers(this);
+    temp.create();
   }
 
   @After
   public void teardown() throws AmbariException {
+    temp.delete();
   }
 
   /**
@@ -206,6 +211,26 @@ public class ConfigurationTest {
     Configuration conf = new Configuration(ambariProperties);
     Assert.assertEquals(conf.getLocalDatabaseUrl(), Configuration.JDBC_LOCAL_URL.concat("ambaritestdatabase"));
   }
+
+  @Test
+  public void testNoNewlineInPassword() throws Exception {
+    Properties ambariProperties = new Properties();
+    File f = temp.newFile("password.dat");
+    FileOutputStream fos = new FileOutputStream(f);
+    fos.write("ambaritest\r\n".getBytes());
+    fos.close();
+    String passwordFile = temp.getRoot().getAbsolutePath()
+      + System.getProperty("file.separator") + "password.dat";
+
+    ambariProperties.setProperty(Configuration.SERVER_JDBC_USER_PASSWD_KEY,
+      passwordFile);
+
+    Configuration conf = new Configuration(ambariProperties);
+    PowerMock.stub(PowerMock.method(Configuration.class,
+      "readPasswordFromStore")).toReturn(null);
+
+    Assert.assertEquals("ambaritest", conf.getDatabasePassword());
+  }
   
   @Test
   public void testGetAmbariProperties() throws Exception {