Browse Source

Respect custom username/password properties

Fix a bug in `DataSourceInitializationConfiguration` that was stopping
custom username/password properties from being applied.

Fixes gh-26676
pull/26677/head
Phillip Webb 5 years ago
parent
commit
e55948456f
  1. 2
      spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceInitializationConfiguration.java
  2. 7
      spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/DataSourceInitializationIntegrationTests.java

2
spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jdbc/DataSourceInitializationConfiguration.java

@ -64,7 +64,7 @@ class DataSourceInitializationConfiguration { @@ -64,7 +64,7 @@ class DataSourceInitializationConfiguration {
private static DataSource determineDataSource(Supplier<DataSource> dataSource, String username, String password) {
if (StringUtils.hasText(username) && StringUtils.hasText(password)) {
DataSourceBuilder.derivedFrom(dataSource.get()).type(SimpleDriverDataSource.class).username(username)
return DataSourceBuilder.derivedFrom(dataSource.get()).type(SimpleDriverDataSource.class).username(username)
.password(password).build();
}
return dataSource.get();

7
spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jdbc/DataSourceInitializationIntegrationTests.java

@ -198,7 +198,9 @@ class DataSourceInitializationIntegrationTests { @@ -198,7 +198,9 @@ class DataSourceInitializationIntegrationTests {
"spring.datasource.schema-username:admin", "spring.datasource.schema-password:admin")
.run((context) -> {
assertThat(context).hasFailed();
assertThat(context.getStartupFailure()).isInstanceOf(BeanCreationException.class);
assertThat(context.getStartupFailure()).isInstanceOf(BeanCreationException.class)
.hasMessageContaining("invalid authorization specification");
context.getStartupFailure().printStackTrace();
});
}
@ -212,7 +214,8 @@ class DataSourceInitializationIntegrationTests { @@ -212,7 +214,8 @@ class DataSourceInitializationIntegrationTests {
"spring.datasource.data-username:admin", "spring.datasource.data-password:admin")
.run((context) -> {
assertThat(context).hasFailed();
assertThat(context.getStartupFailure()).isInstanceOf(BeanCreationException.class);
assertThat(context.getStartupFailure()).isInstanceOf(BeanCreationException.class)
.hasMessageContaining("invalid authorization specification");
});
}

Loading…
Cancel
Save