From 9d89994a759f888b3b4490ba33d15d4ee3ff46ba Mon Sep 17 00:00:00 2001 From: Simon Brandhof Date: Tue, 17 May 2016 11:02:51 +0200 Subject: [PATCH] Add definition of property sonar.jdbc.password so that its type is set to PropertyType.PASSWORD. --- .../ComputeEngineContainerImplTest.java | 2 +- .../core/config/CorePropertyDefinitions.java | 6 +++++ .../config/CorePropertyDefinitionsTest.java | 27 +++++++++++++++++++ 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/server/sonar-ce/src/test/java/org/sonar/ce/container/ComputeEngineContainerImplTest.java b/server/sonar-ce/src/test/java/org/sonar/ce/container/ComputeEngineContainerImplTest.java index 66d1080984f..81ec0f8e478 100644 --- a/server/sonar-ce/src/test/java/org/sonar/ce/container/ComputeEngineContainerImplTest.java +++ b/server/sonar-ce/src/test/java/org/sonar/ce/container/ComputeEngineContainerImplTest.java @@ -102,7 +102,7 @@ public class ComputeEngineContainerImplTest { + 22 // level 1 + 45 // content of DaoModule + 1 // content of EsSearchModule - + 56 // content of CorePropertyDefinitions + + 57 // content of CorePropertyDefinitions + 1 // content of CePropertyDefinitions ); assertThat(picoContainer.getParent().getParent().getParent().getParent()).isNull(); diff --git a/sonar-core/src/main/java/org/sonar/core/config/CorePropertyDefinitions.java b/sonar-core/src/main/java/org/sonar/core/config/CorePropertyDefinitions.java index fd46e85fae0..3369492cdc9 100644 --- a/sonar-core/src/main/java/org/sonar/core/config/CorePropertyDefinitions.java +++ b/sonar-core/src/main/java/org/sonar/core/config/CorePropertyDefinitions.java @@ -28,6 +28,8 @@ import org.sonar.api.PropertyType; import org.sonar.api.config.PropertyDefinition; import org.sonar.api.resources.Qualifiers; +import static org.sonar.api.database.DatabaseProperties.PROP_PASSWORD; + public class CorePropertyDefinitions { /* Time machine periods */ @@ -57,6 +59,10 @@ public class CorePropertyDefinitions { defs.addAll(PurgeProperties.all()); defs.addAll(ImmutableList.of( + PropertyDefinition.builder(PROP_PASSWORD) + .type(PropertyType.PASSWORD) + .hidden() + .build(), PropertyDefinition.builder(CoreProperties.SERVER_BASE_URL) .name("Server base URL") .description("HTTP URL of this SonarQube server, such as http://yourhost.yourdomain/sonar. This value is used i.e. to create links in emails.") diff --git a/sonar-core/src/test/java/org/sonar/core/config/CorePropertyDefinitionsTest.java b/sonar-core/src/test/java/org/sonar/core/config/CorePropertyDefinitionsTest.java index 4e3e2550cde..3791869abe1 100644 --- a/sonar-core/src/test/java/org/sonar/core/config/CorePropertyDefinitionsTest.java +++ b/sonar-core/src/test/java/org/sonar/core/config/CorePropertyDefinitionsTest.java @@ -19,10 +19,16 @@ */ package org.sonar.core.config; +import com.google.common.base.Optional; +import com.google.common.base.Predicate; import java.util.List; +import javax.annotation.Nonnull; import org.junit.Test; +import org.sonar.api.PropertyType; import org.sonar.api.config.PropertyDefinition; +import org.sonar.api.database.DatabaseProperties; +import static com.google.common.collect.FluentIterable.from; import static org.assertj.core.api.Assertions.assertThat; public class CorePropertyDefinitionsTest { @@ -31,4 +37,25 @@ public class CorePropertyDefinitionsTest { List defs = CorePropertyDefinitions.all(); assertThat(defs.size()).isGreaterThan(9); } + + @Test + public void jdbc_password_property_has_password_type() { + List defs = CorePropertyDefinitions.all(); + Optional prop = from(defs).filter(new HasKeyPredicate(DatabaseProperties.PROP_PASSWORD)).first(); + assertThat(prop.isPresent()).isTrue(); + assertThat(prop.get().type()).isEqualTo(PropertyType.PASSWORD); + } + + private final class HasKeyPredicate implements Predicate { + private final String key; + + HasKeyPredicate(String key) { + this.key = key; + } + + @Override + public boolean apply(@Nonnull PropertyDefinition input) { + return key.equals(input.key()); + } + } } -- 2.39.5