parent
ec8b94f13c
commit
bca83bde5b
|
@ -41,6 +41,8 @@ import org.springframework.security.config.annotation.web.configuration.WebSecur
|
|||
* {@link EnableAutoConfiguration Auto-configuration} for H2's web console.
|
||||
*
|
||||
* @author Andy Wilkinson
|
||||
* @author Marten Deinum
|
||||
* @author Stephane Nicoll
|
||||
* @since 1.3.0
|
||||
*/
|
||||
@Configuration
|
||||
|
@ -62,8 +64,12 @@ public class H2ConsoleAutoConfiguration {
|
|||
String path = this.properties.getPath();
|
||||
String urlMapping = (path.endsWith("/") ? path + "*" : path + "/*");
|
||||
ServletRegistrationBean registration = new ServletRegistrationBean(new WebServlet(), urlMapping);
|
||||
if (properties.getWebAllowOthers()) {
|
||||
registration.addInitParameter("webAllowOthers", "true");
|
||||
H2ConsoleProperties.Settings settings = this.properties.getSettings();
|
||||
if (settings.isTrace()) {
|
||||
registration.addInitParameter("trace", "");
|
||||
}
|
||||
if (settings.isWebAllowOthers()) {
|
||||
registration.addInitParameter("webAllowOthers", "");
|
||||
}
|
||||
return registration;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2015 the original author or authors.
|
||||
* Copyright 2012-2016 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.
|
||||
|
@ -25,6 +25,8 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
|
|||
* Configuration properties for H2's console.
|
||||
*
|
||||
* @author Andy Wilkinson
|
||||
* @author Marten Deinum
|
||||
* @author Stephane Nicoll
|
||||
* @since 1.3.0
|
||||
*/
|
||||
@ConfigurationProperties(prefix = "spring.h2.console")
|
||||
|
@ -42,10 +44,7 @@ public class H2ConsoleProperties {
|
|||
*/
|
||||
private boolean enabled = false;
|
||||
|
||||
/**
|
||||
* Allow remote access.
|
||||
*/
|
||||
private boolean webAllowOthers = false;
|
||||
private final Settings settings = new Settings();
|
||||
|
||||
public String getPath() {
|
||||
return this.path;
|
||||
|
@ -63,11 +62,37 @@ public class H2ConsoleProperties {
|
|||
this.enabled = enabled;
|
||||
}
|
||||
|
||||
public boolean getWebAllowOthers() {
|
||||
return webAllowOthers;
|
||||
public Settings getSettings() {
|
||||
return this.settings;
|
||||
}
|
||||
|
||||
public void setWebAllowOthers(boolean webAllowOthers) {
|
||||
this.webAllowOthers = webAllowOthers;
|
||||
public static class Settings {
|
||||
|
||||
/**
|
||||
* Enable trace output.
|
||||
*/
|
||||
private boolean trace = false;
|
||||
|
||||
/**
|
||||
* Enable remote access.
|
||||
*/
|
||||
private boolean webAllowOthers = false;
|
||||
|
||||
public boolean isTrace() {
|
||||
return this.trace;
|
||||
}
|
||||
|
||||
public void setTrace(boolean trace) {
|
||||
this.trace = trace;
|
||||
}
|
||||
|
||||
public boolean isWebAllowOthers() {
|
||||
return this.webAllowOthers;
|
||||
}
|
||||
|
||||
public void setWebAllowOthers(boolean webAllowOthers) {
|
||||
this.webAllowOthers = webAllowOthers;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,6 @@ import org.junit.rules.ExpectedException;
|
|||
import org.springframework.beans.factory.BeanCreationException;
|
||||
import org.springframework.boot.context.embedded.ServletRegistrationBean;
|
||||
import org.springframework.boot.test.EnvironmentTestUtils;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.mock.web.MockServletContext;
|
||||
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
|
||||
|
||||
|
@ -35,6 +34,8 @@ import static org.assertj.core.api.Assertions.assertThat;
|
|||
* Tests for {@link H2ConsoleAutoConfiguration}
|
||||
*
|
||||
* @author Andy Wilkinson
|
||||
* @author Marten Deinum
|
||||
* @author Stephane Nicoll
|
||||
*/
|
||||
public class H2ConsoleAutoConfigurationTests {
|
||||
|
||||
|
@ -71,6 +72,8 @@ public class H2ConsoleAutoConfigurationTests {
|
|||
assertThat(this.context.getBeansOfType(ServletRegistrationBean.class)).hasSize(1);
|
||||
assertThat(this.context.getBean(ServletRegistrationBean.class).getUrlMappings())
|
||||
.contains("/h2-console/*");
|
||||
assertThat(this.context.getBean(ServletRegistrationBean.class).getInitParameters()).
|
||||
doesNotContainKey("trace");
|
||||
assertThat(this.context.getBean(ServletRegistrationBean.class).getInitParameters()).
|
||||
doesNotContainKey("webAllowOthers");
|
||||
}
|
||||
|
@ -108,17 +111,20 @@ public class H2ConsoleAutoConfigurationTests {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void propertySetsWebAllowOthersInitParameter() {
|
||||
public void customInitParameters() {
|
||||
this.context.register(H2ConsoleAutoConfiguration.class);
|
||||
EnvironmentTestUtils.addEnvironment(this.context,
|
||||
"spring.h2.console.enabled:true", "spring.h2.console.web-allow-others=true");
|
||||
"spring.h2.console.enabled:true",
|
||||
"spring.h2.console.settings.trace=true",
|
||||
"spring.h2.console.settings.webAllowOthers=true");
|
||||
this.context.refresh();
|
||||
assertThat(this.context.getBeansOfType(ServletRegistrationBean.class)).hasSize(1);
|
||||
assertThat(this.context.getBean(ServletRegistrationBean.class).getUrlMappings())
|
||||
.contains("/h2-console/*");
|
||||
assertThat(this.context.getBean(ServletRegistrationBean.class).getInitParameters()).
|
||||
containsEntry("webAllowOthers", "true");
|
||||
|
||||
containsEntry("trace", "");
|
||||
assertThat(this.context.getBean(ServletRegistrationBean.class).getInitParameters()).
|
||||
containsEntry("webAllowOthers", "");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -573,6 +573,8 @@ content into your application; rather pick only the properties that you need.
|
|||
# H2 Web Console ({sc-spring-boot-autoconfigure}/h2/H2ConsoleProperties.{sc-ext}[H2ConsoleProperties])
|
||||
spring.h2.console.enabled=false # Enable the console.
|
||||
spring.h2.console.path=/h2-console # Path at which the console will be available.
|
||||
spring.h2.console.settings.trace=false # Enable trace output.
|
||||
spring.h2.console.settings.web-allow-others=false # Enable remote access.
|
||||
|
||||
# JOOQ ({sc-spring-boot-autoconfigure}/jooq/JooqAutoConfiguration.{sc-ext}[JooqAutoConfiguration])
|
||||
spring.jooq.sql-dialect= # SQLDialect JOOQ used when communicating with the configured datasource. For instance `POSTGRES`
|
||||
|
|
Loading…
Reference in New Issue