Skip to content

Commit 9e3a591

Browse files
committed
add new tests
1 parent c625867 commit 9e3a591

File tree

2 files changed

+29
-7
lines changed

2 files changed

+29
-7
lines changed

x-pack/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/exporter/http/HttpExporterIT.java

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,6 @@ public class HttpExporterIT extends MonitoringIntegTestCase {
9999
private final boolean watcherAlreadyExists = randomBoolean();
100100
private final Environment environment = TestEnvironment.newEnvironment(Settings.builder().put("path.home", createTempDir()).build());
101101
private final String userName = "elasticuser";
102-
private final String pass = "elasticpass";
103-
private final String pass2 = "anotherpassword";
104-
private final String authHeaderValue = Base64.encode(userName + ":" + pass);
105-
private final String authHeaderValue2 = Base64.encode(userName + ":" + pass2);
106102

107103
private MockWebServer webServer;
108104

@@ -137,7 +133,7 @@ protected boolean ignoreExternalCluster() {
137133
}
138134

139135
private Settings.Builder secureSettings(String password) {
140-
mockSecureSettings.setString("xpack.monitoring.exporters._http.secure_auth_password", password);
136+
mockSecureSettings.setString("xpack.monitoring.exporters._http.auth.secure_password", password);
141137
return baseSettings().setSecureSettings(mockSecureSettings);
142138
}
143139

@@ -172,7 +168,14 @@ public void testExport() throws Exception {
172168
}
173169

174170
public void testSecureSetting() throws Exception {
175-
Settings settings = secureSettings(pass).build();
171+
final String securePassword1 = "elasticpass";
172+
final String securePassword2 = "anotherpassword";
173+
final String authHeaderValue = Base64.encode(userName + ":" + securePassword1);
174+
final String authHeaderValue2 = Base64.encode(userName + ":" + securePassword2);
175+
176+
Settings settings = secureSettings(securePassword1)
177+
.put("xpack.monitoring.exporters._http.auth.password", "insecurePassword") // verify this password is not used
178+
.build();
176179
PluginsService pluginsService = internalCluster().getInstances(PluginsService.class).iterator().next();
177180
LocalStateMonitoring localStateMonitoring = pluginsService.filterPlugins(LocalStateMonitoring.class).iterator().next();
178181
localStateMonitoring.getMonitoring().reload(settings);
@@ -188,7 +191,7 @@ public void testSecureSetting() throws Exception {
188191
assertEquals(webServer.takeRequest().getHeader("Authorization").replace("Basic", "").replace(" ", ""), authHeaderValue);
189192
webServer.clearRequests();
190193

191-
settings = secureSettings(pass2).build();
194+
settings = secureSettings(securePassword2).build();
192195
localStateMonitoring.getMonitoring().reload(settings);
193196
enqueueGetClusterVersionResponse(Version.CURRENT);
194197
enqueueSetupResponses(webServer,

x-pack/plugin/monitoring/src/test/java/org/elasticsearch/xpack/monitoring/exporter/http/HttpExporterTests.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import org.elasticsearch.cluster.node.DiscoveryNodes;
1919
import org.elasticsearch.cluster.service.ClusterService;
2020
import org.elasticsearch.common.settings.ClusterSettings;
21+
import org.elasticsearch.common.settings.MockSecureSettings;
2122
import org.elasticsearch.common.settings.Settings;
2223
import org.elasticsearch.common.settings.SettingsException;
2324
import org.elasticsearch.common.unit.TimeValue;
@@ -140,6 +141,24 @@ public void testHostListIsRejectedIfTypeIsNotHttp() {
140141
assertThat(e, hasToString(containsString("[" + prefix + ".host] is set but type is [local]")));
141142
}
142143

144+
public void testSecurePasswordIsRejectedIfTypeIsNotHttp() {
145+
final String prefix = "xpack.monitoring.exporters.example";
146+
final Settings.Builder builder = Settings.builder().put(prefix + ".type", "local");
147+
148+
final String settingName = ".auth.secure_password";
149+
final String settingValue = "securePassword";
150+
MockSecureSettings mockSecureSettings = new MockSecureSettings();
151+
mockSecureSettings.setString(prefix + settingName, settingValue);
152+
153+
builder.setSecureSettings(mockSecureSettings);
154+
155+
final Settings settings = builder.build();
156+
final ClusterSettings clusterSettings =
157+
new ClusterSettings(settings, Set.of(HttpExporter.AUTH_SECURE_PASSWORD_SETTING, Exporter.TYPE_SETTING));
158+
final SettingsException e = expectThrows(SettingsException.class, () -> clusterSettings.validate(settings, true));
159+
assertThat(e, hasToString(containsString("[" + prefix + settingName + "] is set but type is [local]")));
160+
}
161+
143162
public void testInvalidHost() {
144163
final String prefix = "xpack.monitoring.exporters.example";
145164
final String host = "https://example.com:443/";

0 commit comments

Comments
 (0)