* better check on host and port for password reset and make context roots more flexible * spotless applied * removed hardcoded /WebGoat from js * removed hardcoded /WebGoat from js * fix spotless * fix scoreboard * upgrade WebWolf bootstrap version and icons and templates - part 1 * fixed more bootstrap 5 style issues and context path issues * organized WebSecurityConfig based on latest conventions and added basic support for oauth (more work needed) * spotless applied * added mock bean * requires updates to properties - commented for now * requires updates to properties - commented for now * oauth secrets through env values * user creation after oauth login * integration test against non default context paths * adjusted StartupMessage * add global model element username * conditionally show login oauth links * fixed WebWolf login --------- Co-authored-by: René Zubcevic <rene@Mac-mini-van-Rene.local>
78 lines
2.2 KiB
Java
78 lines
2.2 KiB
Java
package org.owasp.webgoat;
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
|
|
|
import io.restassured.RestAssured;
|
|
import java.util.HashMap;
|
|
import java.util.Map;
|
|
import org.junit.jupiter.api.Test;
|
|
|
|
public class WebWolfIntegrationTest extends IntegrationTest {
|
|
|
|
@Test
|
|
public void runTests() {
|
|
startLesson("WebWolfIntroduction");
|
|
|
|
// Assignment 3
|
|
Map<String, Object> params = new HashMap<>();
|
|
params.put("email", this.getUser() + "@webgoat.org");
|
|
checkAssignment(url("WebWolf/mail/send"), params, false);
|
|
|
|
String responseBody =
|
|
RestAssured.given()
|
|
.when()
|
|
.relaxedHTTPSValidation()
|
|
.cookie("WEBWOLFSESSION", getWebWolfCookie())
|
|
.get(webWolfUrl("mail"))
|
|
.then()
|
|
.extract()
|
|
.response()
|
|
.getBody()
|
|
.asString();
|
|
|
|
String uniqueCode = responseBody.replace("%20", " ");
|
|
uniqueCode =
|
|
uniqueCode.substring(
|
|
21 + uniqueCode.lastIndexOf("your unique code is: "),
|
|
uniqueCode.lastIndexOf("your unique code is: ") + (21 + this.getUser().length()));
|
|
params.clear();
|
|
params.put("uniqueCode", uniqueCode);
|
|
checkAssignment(url("WebWolf/mail"), params, true);
|
|
|
|
// Assignment 4
|
|
RestAssured.given()
|
|
.when()
|
|
.relaxedHTTPSValidation()
|
|
.cookie("JSESSIONID", getWebGoatCookie())
|
|
.queryParams(params)
|
|
.get(url("WebWolf/landing/password-reset"))
|
|
.then()
|
|
.statusCode(200);
|
|
RestAssured.given()
|
|
.when()
|
|
.relaxedHTTPSValidation()
|
|
.cookie("WEBWOLFSESSION", getWebWolfCookie())
|
|
.queryParams(params)
|
|
.get(webWolfUrl("landing"))
|
|
.then()
|
|
.statusCode(200);
|
|
responseBody =
|
|
RestAssured.given()
|
|
.when()
|
|
.relaxedHTTPSValidation()
|
|
.cookie("WEBWOLFSESSION", getWebWolfCookie())
|
|
.get(webWolfUrl("requests"))
|
|
.then()
|
|
.extract()
|
|
.response()
|
|
.getBody()
|
|
.asString();
|
|
assertTrue(responseBody.contains(uniqueCode));
|
|
params.clear();
|
|
params.put("uniqueCode", uniqueCode);
|
|
checkAssignment(url("WebWolf/landing"), params, true);
|
|
|
|
checkResults("/WebWolf");
|
|
}
|
|
}
|