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 dae45e32a..791036826 100644 --- a/webgoat-server/src/main/java/org/owasp/webgoat/HSQLDBDatabaseConfig.java +++ b/webgoat-server/src/main/java/org/owasp/webgoat/HSQLDBDatabaseConfig.java @@ -12,6 +12,7 @@ import org.springframework.context.annotation.Primary; import org.springframework.core.annotation.Order; import org.springframework.jdbc.datasource.DriverManagerDataSource; +import javax.annotation.PreDestroy; import javax.sql.DataSource; import java.sql.Driver; import java.util.Map; @@ -28,22 +29,30 @@ public class HSQLDBDatabaseConfig { @Value("${hsqldb.port:9001}") private int hsqldbPort; + private Server server; @Bean(initMethod = "start", destroyMethod = "stop") public Server hsqlStandalone(@Value("${webgoat.server.directory}") String directory, @Value("${hsqldb.silent:true}") boolean silent, - @Value("${hsqldb.trace:false}") boolean trace) { + @Value("${hsqldb.trace:false}") boolean trace, + @Value("${server.address}") String address) { log.info("Starting internal database on port {} ...", hsqldbPort); - Server server = new Server(); + server = new Server(); server.setDatabaseName(0, "webgoat"); server.setDatabasePath(0, directory + "/data/webgoat"); server.setDaemon(true); + server.setAddress(address); server.setTrace(trace); server.setSilent(silent); server.setPort(hsqldbPort); return server; } + @PreDestroy + public void shutdown() { + server.shutdownCatalogs(1); + } + @Bean @DependsOn("hsqlStandalone") @Primary