Skip to content

Commit a259a3d

Browse files
author
Omur
committed
embedded driver
1 parent 51c1f6f commit a259a3d

File tree

3 files changed

+52
-5
lines changed

3 files changed

+52
-5
lines changed

jdk_21_maven/em/embedded/rest-gui/webgoat/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@
3030
<artifactId>jackson-datatype-jsr310</artifactId>
3131
<version>2.17.0</version>
3232
</dependency>
33+
<dependency>
34+
<groupId>com.h2database</groupId>
35+
<artifactId>h2</artifactId>
36+
<version>1.4.195</version>
37+
</dependency>
3338
</dependencies>
3439

3540

jdk_21_maven/em/embedded/rest-gui/webgoat/src/main/java/em/embedded/webgoat/EmbeddedEvoMasterController.java

Lines changed: 42 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,21 @@
11
package em.embedded.webgoat;
22

3+
import org.evomaster.client.java.controller.AuthUtils;
34
import org.evomaster.client.java.controller.EmbeddedSutController;
45
import org.evomaster.client.java.controller.InstrumentedSutStarter;
56
import org.evomaster.client.java.controller.api.dto.auth.AuthenticationDto;
67
import org.evomaster.client.java.controller.api.dto.SutInfoDto;
8+
import org.evomaster.client.java.controller.api.dto.database.schema.DatabaseType;
79
import org.evomaster.client.java.sql.DbSpecification;
810
import org.evomaster.client.java.controller.problem.ProblemInfo;
911
import org.evomaster.client.java.controller.problem.RestProblem;
1012
import org.owasp.webgoat.server.StartWebGoat;
11-
import org.springframework.boot.SpringApplication;
1213
import org.springframework.context.ConfigurableApplicationContext;
14+
import java.sql.Connection;
15+
import org.springframework.jdbc.core.JdbcTemplate;
1316

14-
import java.util.Collections;
17+
import java.sql.SQLException;
18+
import java.util.Arrays;
1519
import java.util.List;
1620
import java.util.Map;
1721

@@ -36,6 +40,8 @@ public static void main(String[] args) {
3640

3741

3842
private ConfigurableApplicationContext ctx;
43+
private Connection sqlConnection;
44+
private List<DbSpecification> dbSpecification;
3945

4046

4147
public EmbeddedEvoMasterController() {
@@ -53,12 +59,38 @@ public String startSut() {
5359

5460
app.main(new String[]{
5561
"--server.port=0",
56-
"--spring.profiles.active=dev"
62+
"--spring.profiles.active=dev",
63+
"--spring.datasource.driver-class-name=org.h2.Driver",
64+
"--spring.datasource.url=jdbc:h2:mem:testdb;INIT=CREATE SCHEMA IF NOT EXISTS CONTAINER;DB_CLOSE_DELAY=-1;",
65+
"--spring.jpa.database-platform=org.hibernate.dialect.H2Dialect",
66+
"--spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true",
67+
"--spring.datasource.username=sa",
68+
"--spring.datasource.password",
69+
"--spring.jpa.properties.jakarta.persistence.schema-generation.scripts.action=none",
70+
"--spring.sql.init.mode=never"
5771
});
5872

5973

6074
ctx = (ConfigurableApplicationContext) app.getApplicationContext();
6175

76+
if (sqlConnection != null) {
77+
try {
78+
sqlConnection.close();
79+
} catch (SQLException e) {
80+
e.printStackTrace();
81+
}
82+
}
83+
JdbcTemplate jdbc = ctx.getBean(JdbcTemplate.class);
84+
85+
try {
86+
sqlConnection = jdbc.getDataSource().getConnection();
87+
} catch (SQLException e) {
88+
e.printStackTrace();
89+
}
90+
dbSpecification = Arrays.asList(new DbSpecification(DatabaseType.H2, sqlConnection)
91+
.withInitSqlOnResourcePath("/data.sql"));
92+
93+
6294
return "http://localhost:" + getSutPort();
6395
}
6496

@@ -93,16 +125,21 @@ public void resetStateOfSUT() {
93125

94126
@Override
95127
public List<DbSpecification> getDbSpecifications() {
96-
return null;
128+
return dbSpecification;
97129
}
98130

99131

132+
100133
@Override
101134
public List<AuthenticationDto> getInfoForAuthentication() {
102-
return null;
135+
136+
return Arrays.asList(
137+
AuthUtils.getForDefaultSpringFormLogin("user1", "testuser", "testuser", "/WebGoat/login"),
138+
AuthUtils.getForDefaultSpringFormLogin("user2", "testuser2", "testuser", "/WebGoat/login"));
103139
}
104140

105141

142+
106143
@Override
107144
public ProblemInfo getProblemInfo() {
108145
return new RestProblem(
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
INSERT INTO CONTAINER.WEB_GOAT_USER (PASSWORD, ROLE, USERNAME) VALUES ('testuser', 'WEBGOAT_USER', 'testuser');
2+
INSERT INTO CONTAINER.WEB_GOAT_USER (PASSWORD, ROLE, USERNAME) VALUES ('testuser', 'WEBGOAT_USER', 'testuser2');
3+
4+
INSERT INTO CONTAINER.USER_PROGRESS (ID, USERNAME) VALUES (1, 'testuser');
5+
INSERT INTO CONTAINER.USER_PROGRESS (ID, USERNAME) VALUES (2, 'testuser2');

0 commit comments

Comments
 (0)