mirror of
https://github.com/spring-projects/spring-boot.git
synced 2026-10-04 08:19:50 +00:00
Improve null-safety of module/spring-boot-jdbc
See gh-46926
This commit is contained in:
+1
-1
@@ -93,7 +93,7 @@ public final class DataSourceBuilder<T extends DataSource> {
|
||||
|
||||
private final @Nullable ClassLoader classLoader;
|
||||
|
||||
private final Map<DataSourceProperty, String> values = new HashMap<>();
|
||||
private final Map<DataSourceProperty, @Nullable String> values = new HashMap<>();
|
||||
|
||||
private @Nullable Class<T> type;
|
||||
|
||||
|
||||
+12
-2
@@ -37,9 +37,19 @@ class ClickHouseEnvironment {
|
||||
private final String database;
|
||||
|
||||
ClickHouseEnvironment(Map<String, @Nullable String> env) {
|
||||
this.username = env.getOrDefault("CLICKHOUSE_USER", "default");
|
||||
this.username = extractUsername(env);
|
||||
this.password = extractPassword(env);
|
||||
this.database = env.getOrDefault("CLICKHOUSE_DB", "default");
|
||||
this.database = extractDatabase(env);
|
||||
}
|
||||
|
||||
private static String extractDatabase(Map<String, @Nullable String> env) {
|
||||
String result = env.get("CLICKHOUSE_DB");
|
||||
return (result != null) ? result : "default";
|
||||
}
|
||||
|
||||
private static String extractUsername(Map<String, @Nullable String> env) {
|
||||
String result = env.get("CLICKHOUSE_USER");
|
||||
return (result != null) ? result : "default";
|
||||
}
|
||||
|
||||
private String extractPassword(Map<String, @Nullable String> env) {
|
||||
|
||||
+4
-1
@@ -47,7 +47,10 @@ class MariaDbEnvironment {
|
||||
|
||||
private String extractUsername(Map<String, @Nullable String> env) {
|
||||
String user = env.get("MARIADB_USER");
|
||||
return (user != null) ? user : env.getOrDefault("MYSQL_USER", "root");
|
||||
if (user == null) {
|
||||
user = env.get("MYSQL_USER");
|
||||
}
|
||||
return (user != null) ? user : "root";
|
||||
}
|
||||
|
||||
private String extractPassword(Map<String, @Nullable String> env) {
|
||||
|
||||
+6
-1
@@ -40,11 +40,16 @@ class MySqlEnvironment {
|
||||
private final String database;
|
||||
|
||||
MySqlEnvironment(Map<String, @Nullable String> env) {
|
||||
this.username = env.getOrDefault("MYSQL_USER", "root");
|
||||
this.username = extractUsername(env);
|
||||
this.password = extractPassword(env);
|
||||
this.database = extractDatabase(env);
|
||||
}
|
||||
|
||||
private static String extractUsername(Map<String, @Nullable String> env) {
|
||||
String result = env.get("MYSQL_USER");
|
||||
return (result != null) ? result : "root";
|
||||
}
|
||||
|
||||
private String extractPassword(Map<String, @Nullable String> env) {
|
||||
Assert.state(!env.containsKey("MYSQL_RANDOM_ROOT_PASSWORD"), "MYSQL_RANDOM_ROOT_PASSWORD is not supported");
|
||||
boolean allowEmpty = env.containsKey("MYSQL_ALLOW_EMPTY_PASSWORD") || env.containsKey("ALLOW_EMPTY_PASSWORD");
|
||||
|
||||
+12
-2
@@ -37,9 +37,19 @@ class OracleEnvironment {
|
||||
private final String database;
|
||||
|
||||
OracleEnvironment(Map<String, @Nullable String> env, String defaultDatabase) {
|
||||
this.username = env.getOrDefault("APP_USER", "system");
|
||||
this.username = extractUsername(env);
|
||||
this.password = extractPassword(env);
|
||||
this.database = env.getOrDefault("ORACLE_DATABASE", defaultDatabase);
|
||||
this.database = extractDatabase(env, defaultDatabase);
|
||||
}
|
||||
|
||||
private static String extractDatabase(Map<String, @Nullable String> env, String defaultDatabase) {
|
||||
String result = env.get("ORACLE_DATABASE");
|
||||
return (result != null) ? result : defaultDatabase;
|
||||
}
|
||||
|
||||
private static String extractUsername(Map<String, @Nullable String> env) {
|
||||
String result = env.get("APP_USER");
|
||||
return (result != null) ? result : "system";
|
||||
}
|
||||
|
||||
private String extractPassword(Map<String, @Nullable String> env) {
|
||||
|
||||
+3
-2
@@ -57,8 +57,9 @@ class PostgresEnvironment {
|
||||
|
||||
private String extract(Map<String, @Nullable String> env, String[] keys, String defaultValue) {
|
||||
for (String key : keys) {
|
||||
if (env.containsKey(key)) {
|
||||
return env.get(key);
|
||||
String value = env.get(key);
|
||||
if (value != null) {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
return defaultValue;
|
||||
|
||||
Reference in New Issue
Block a user