Make handling of ALLOW_EMPTY_PASSWORD consistent

See gh-43790

Signed-off-by: He Zean <realhezean@gmail.com>
This commit is contained in:
He Zean 2025-01-13 20:59:44 +08:00 committed by Andy Wilkinson
parent f2906a0e9c
commit ab8d2ebc8a
2 changed files with 6 additions and 7 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2024 the original author or authors. * Copyright 2012-2025 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -41,7 +41,7 @@ class ClickHouseEnvironment {
} }
private String extractPassword(Map<String, String> env) { private String extractPassword(Map<String, String> env) {
boolean allowEmpty = Boolean.parseBoolean(env.getOrDefault("ALLOW_EMPTY_PASSWORD", Boolean.FALSE.toString())); boolean allowEmpty = env.containsKey("ALLOW_EMPTY_PASSWORD");
String password = env.get("CLICKHOUSE_PASSWORD"); String password = env.get("CLICKHOUSE_PASSWORD");
Assert.state(StringUtils.hasLength(password) || allowEmpty, "No ClickHouse password found"); Assert.state(StringUtils.hasLength(password) || allowEmpty, "No ClickHouse password found");
return (password != null) ? password : ""; return (password != null) ? password : "";

View File

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2024 the original author or authors. * Copyright 2012-2025 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -50,10 +50,9 @@ class ClickHouseEnvironmentTests {
} }
@Test @Test
void getPasswordWhenHasNoPasswordAndAllowEmptyPasswordIsFalse() { void getPasswordWhenHasNoPasswordAndAllowEmptyPasswordIsYes() {
assertThatIllegalStateException() ClickHouseEnvironment environment = new ClickHouseEnvironment(Map.of("ALLOW_EMPTY_PASSWORD", "yes"));
.isThrownBy(() -> new ClickHouseEnvironment(Map.of("ALLOW_EMPTY_PASSWORD", "false"))) assertThat(environment.getPassword()).isEmpty();
.withMessage("No ClickHouse password found");
} }
@Test @Test