package org.onap.aai.babel;
import java.io.IOException;
+import org.eclipse.jetty.util.security.Password;
import org.hamcrest.Description;
import org.hamcrest.TypeSafeMatcher;
import org.junit.Before;
@Rule
public ExpectedException expectedEx = ExpectedException.none();
+ /**
+ * Initialize System Properties.
+ */
@Before
public void init() {
System.setProperty("APP_HOME", ".");
public void testApplicationStarts() {
System.setProperty("KEY_STORE_PASSWORD", "password");
BabelApplication.main(new String[] {});
+ BabelApplication.exit();
+ }
+
+ @Test
+ public void testApplicationStartsWithObfuscatedPassword() {
+ System.setProperty("KEY_STORE_PASSWORD", Password.obfuscate("password"));
+ BabelApplication.main(new String[] {});
+ BabelApplication.exit();
}
@Test
BabelApplication.main(new String[] {});
}
+ /**
+ * This test asserts that if the KEY_STORE_PASSWORD System Property is set (and is not empty) then the value is
+ * passed to Jetty, debobfuscated, and used to open the key store, even if the resulting password value is actually
+ * an empty string.
+ */
+ @Test
+ public void testApplicationWithBlankObfuscatedKeyStorePassword() {
+ // Note that "OBF:" is correctly deobfuscated and results in an empty string.
+ System.setProperty("KEY_STORE_PASSWORD", "OBF:");
+ final CauseMatcher expectedCause = new CauseMatcher(IOException.class, "password was incorrect");
+ expectedEx.expectCause(expectedCause);
+ BabelApplication.main(new String[] {});
+ }
+
private static class CauseMatcher extends TypeSafeMatcher<Throwable> {
private final Class<? extends Throwable> type;