From 689e3de7a4d6cc95cd98ffb031fa70c170f8a0bf Mon Sep 17 00:00:00 2001 From: Nanne Baars Date: Sat, 19 Oct 2019 19:19:22 +0200 Subject: [PATCH] Final changes for splitting SQL WebGoat and lessons --- .../org/owasp/webgoat/DatabaseInitialization.java | 14 +++++++++----- .../org/owasp/webgoat/HSQLDBDatabaseConfig.java | 5 +++-- .../java/org/owasp/webwolf/MvcConfiguration.java | 8 -------- .../src/main/java/org/owasp/webwolf/WebWolf.java | 11 +++++++++++ .../main/resources/application-webwolf.properties | 1 + .../webwolf/mailbox/MailboxControllerTest.java | 2 ++ 6 files changed, 26 insertions(+), 15 deletions(-) diff --git a/webgoat-container/src/main/java/org/owasp/webgoat/DatabaseInitialization.java b/webgoat-container/src/main/java/org/owasp/webgoat/DatabaseInitialization.java index 17e8087a2..4ed32e4e6 100644 --- a/webgoat-container/src/main/java/org/owasp/webgoat/DatabaseInitialization.java +++ b/webgoat-container/src/main/java/org/owasp/webgoat/DatabaseInitialization.java @@ -2,6 +2,7 @@ package org.owasp.webgoat; import org.flywaydb.core.Flyway; import org.owasp.webgoat.service.RestartLessonService; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.DependsOn; @@ -18,16 +19,19 @@ import java.util.Map; public class DatabaseInitialization { private final DataSource dataSource; + private String driverClassName; - public DatabaseInitialization(DataSource dataSource) { + public DatabaseInitialization(DataSource dataSource, + @Value("${spring.datasource.driver-class-name}") String driverClassName) { this.dataSource = dataSource; + this.driverClassName = driverClassName; } @Bean(initMethod = "migrate") public Flyway flyWayContainer() { return Flyway - .configure().configuration( - Map.of("driver", "org.hsqldb.jdbc.JDBCDriver")) + .configure() + .configuration(Map.of("driver", driverClassName)) .dataSource(dataSource) .schemas("container") .locations("db/container") @@ -38,8 +42,8 @@ public class DatabaseInitialization { @DependsOn("flyWayContainer") public Flyway flywayLessons() { return Flyway - .configure().configuration( - Map.of("driver", "org.hsqldb.jdbc.JDBCDriver")) + .configure() + .configuration(Map.of("driver", driverClassName)) .dataSource(dataSource) .load(); } diff --git a/webgoat-server/src/main/java/org/owasp/webgoat/HSQLDBDatabaseConfig.java b/webgoat-server/src/main/java/org/owasp/webgoat/HSQLDBDatabaseConfig.java index 652c7afa8..dae45e32a 100644 --- a/webgoat-server/src/main/java/org/owasp/webgoat/HSQLDBDatabaseConfig.java +++ b/webgoat-server/src/main/java/org/owasp/webgoat/HSQLDBDatabaseConfig.java @@ -47,9 +47,10 @@ public class HSQLDBDatabaseConfig { @Bean @DependsOn("hsqlStandalone") @Primary - public DataSource dataSource(@Value("${spring.datasource.url}") String url) { + public DataSource dataSource(@Value("${spring.datasource.url}") String url, + @Value("${spring.datasource.driver-class-name}") String driverClassName) { DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource(url); - driverManagerDataSource.setDriverClassName("org.hsqldb.jdbc.JDBCDriver"); + driverManagerDataSource.setDriverClassName(driverClassName); return driverManagerDataSource; } } diff --git a/webwolf/src/main/java/org/owasp/webwolf/MvcConfiguration.java b/webwolf/src/main/java/org/owasp/webwolf/MvcConfiguration.java index 67b739d44..7c491a95f 100644 --- a/webwolf/src/main/java/org/owasp/webwolf/MvcConfiguration.java +++ b/webwolf/src/main/java/org/owasp/webwolf/MvcConfiguration.java @@ -64,12 +64,4 @@ public class MvcConfiguration implements WebMvcConfigurer { file.mkdirs(); } } - - @Bean - @Primary - public DataSource dataSource(@Value("${spring.datasource.url}") String url) { - DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource(url); - driverManagerDataSource.setDriverClassName("org.hsqldb.jdbc.JDBCDriver"); - return driverManagerDataSource; - } } \ No newline at end of file diff --git a/webwolf/src/main/java/org/owasp/webwolf/WebWolf.java b/webwolf/src/main/java/org/owasp/webwolf/WebWolf.java index 2acaf315f..bb624dfd4 100644 --- a/webwolf/src/main/java/org/owasp/webwolf/WebWolf.java +++ b/webwolf/src/main/java/org/owasp/webwolf/WebWolf.java @@ -23,10 +23,14 @@ package org.owasp.webwolf; import org.owasp.webwolf.requests.WebWolfTraceRepository; +import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringApplication; import org.springframework.boot.actuate.trace.http.HttpTraceRepository; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; +import org.springframework.jdbc.datasource.DriverManagerDataSource; + +import javax.sql.DataSource; @SpringBootApplication public class WebWolf { @@ -40,4 +44,11 @@ public class WebWolf { System.setProperty("spring.config.name", "application-webwolf"); SpringApplication.run(WebWolf.class, args); } + + @Bean + public DataSource dataSource(@Value("${spring.datasource.url}") String url, @Value("${spring.datasource.driver-class-name}") String driverClassName) { + DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource(url); + driverManagerDataSource.setDriverClassName(driverClassName); + return driverManagerDataSource; + } } diff --git a/webwolf/src/main/resources/application-webwolf.properties b/webwolf/src/main/resources/application-webwolf.properties index 3c9164a44..755be1dc8 100644 --- a/webwolf/src/main/resources/application-webwolf.properties +++ b/webwolf/src/main/resources/application-webwolf.properties @@ -8,6 +8,7 @@ server.servlet.session.cookie.name=WEBWOLFSESSION server.servlet.session.timeout=6000 spring.datasource.url=jdbc:hsqldb:hsql://${WEBGOAT_HOST:127.0.0.1}:${WEBGOAT_HSQLPORT:9001}/webgoat +spring.datasource.driver-class-name=org.hsqldb.jdbc.JDBCDriver spring.jpa.properties.hibernate.default_schema=CONTAINER spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.HSQLDialect spring.jpa.hibernate.ddl-auto=update diff --git a/webwolf/src/test/java/org/owasp/webwolf/mailbox/MailboxControllerTest.java b/webwolf/src/test/java/org/owasp/webwolf/mailbox/MailboxControllerTest.java index 620d74d10..3b3a85308 100644 --- a/webwolf/src/test/java/org/owasp/webwolf/mailbox/MailboxControllerTest.java +++ b/webwolf/src/test/java/org/owasp/webwolf/mailbox/MailboxControllerTest.java @@ -35,6 +35,7 @@ import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.http.MediaType; import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.web.servlet.MockMvc; @@ -49,6 +50,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. @RunWith(SpringRunner.class) @WebMvcTest(MailboxController.class) +@ActiveProfiles({"test", "webwolf"}) public class MailboxControllerTest { @Autowired