From bf96b0c57b7c6f9a6a5ab1904c8ccc1c1d912964 Mon Sep 17 00:00:00 2001 From: Stephane Nicoll Date: Mon, 15 Jun 2020 16:19:56 +0200 Subject: [PATCH] Polish "Add support for webAdminPassword property of H2 Console" See gh-21533 --- .../autoconfigure/h2/H2ConsoleAutoConfiguration.java | 9 ++++----- .../boot/autoconfigure/h2/H2ConsoleProperties.java | 5 ++++- .../h2/H2ConsoleAutoConfigurationTests.java | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/h2/H2ConsoleAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/h2/H2ConsoleAutoConfiguration.java index 4b1365e80b..0fd3099629 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/h2/H2ConsoleAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/h2/H2ConsoleAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2019 the original author or authors. + * Copyright 2012-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -32,6 +32,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type; +import org.springframework.boot.autoconfigure.h2.H2ConsoleProperties.Settings; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.web.servlet.ServletRegistrationBean; @@ -62,7 +63,7 @@ public class H2ConsoleAutoConfiguration { String path = properties.getPath(); String urlMapping = path + (path.endsWith("/") ? "*" : "/*"); ServletRegistrationBean registration = new ServletRegistrationBean<>(new WebServlet(), urlMapping); - configureSettings(properties.getSettings(), registration); + configureH2ConsoleSettings(registration, properties.getSettings()); dataSource.ifAvailable((available) -> { try (Connection connection = available.getConnection()) { logger.info("H2 console available at '" + path + "'. Database available at '" @@ -75,15 +76,13 @@ public class H2ConsoleAutoConfiguration { return registration; } - private void configureSettings(H2ConsoleProperties.Settings settings, - ServletRegistrationBean registration) { + private void configureH2ConsoleSettings(ServletRegistrationBean registration, Settings settings) { if (settings.isTrace()) { registration.addInitParameter("trace", ""); } if (settings.isWebAllowOthers()) { registration.addInitParameter("webAllowOthers", ""); } - if (settings.getWebAdminPassword() != null) { registration.addInitParameter("webAdminPassword", settings.getWebAdminPassword()); } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/h2/H2ConsoleProperties.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/h2/H2ConsoleProperties.java index 34ca09ebd2..d17ccfabbb 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/h2/H2ConsoleProperties.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/h2/H2ConsoleProperties.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2019 the original author or authors. + * Copyright 2012-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -77,6 +77,9 @@ public class H2ConsoleProperties { */ private boolean webAllowOthers = false; + /** + * Password to access preferences and tools of H2 Console. + */ private String webAdminPassword; public boolean isTrace() { diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/h2/H2ConsoleAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/h2/H2ConsoleAutoConfigurationTests.java index 6752affedc..c5e8ce5d37 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/h2/H2ConsoleAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/h2/H2ConsoleAutoConfigurationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2019 the original author or authors. + * Copyright 2012-2020 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License.