diff --git a/webgoat-container/src/main/java/org/owasp/webgoat/lessons/AbstractLesson.java b/webgoat-container/src/main/java/org/owasp/webgoat/lessons/AbstractLesson.java index 4ec41095e..2307f484e 100644 --- a/webgoat-container/src/main/java/org/owasp/webgoat/lessons/AbstractLesson.java +++ b/webgoat-container/src/main/java/org/owasp/webgoat/lessons/AbstractLesson.java @@ -676,6 +676,12 @@ public abstract class AbstractLesson extends Screen implements ComparablesetCurrentAction.

* diff --git a/webgoat-container/src/main/java/org/owasp/webgoat/lessons/LessonAdapter.java b/webgoat-container/src/main/java/org/owasp/webgoat/lessons/LessonAdapter.java index e5afea907..9afd0d90d 100644 --- a/webgoat-container/src/main/java/org/owasp/webgoat/lessons/LessonAdapter.java +++ b/webgoat-container/src/main/java/org/owasp/webgoat/lessons/LessonAdapter.java @@ -111,6 +111,14 @@ public abstract class LessonAdapter extends AbstractLesson { return false; } + /** + * Initiates lesson restart functionality. Lessons should override this for + * lesson specific actions + */ + public void restartLesson() { + // Do Nothing - called when restart lesson is pressed. Each lesson can do something + } + private final static Integer DEFAULT_RANKING = new Integer(1000); /** diff --git a/webgoat-container/src/main/java/org/owasp/webgoat/session/WebSession.java b/webgoat-container/src/main/java/org/owasp/webgoat/session/WebSession.java index d750b4272..77cca26a8 100644 --- a/webgoat-container/src/main/java/org/owasp/webgoat/session/WebSession.java +++ b/webgoat-container/src/main/java/org/owasp/webgoat/session/WebSession.java @@ -1126,6 +1126,7 @@ public class WebSession { public void restartLesson(int lessonId) { AbstractLesson al = getLesson(lessonId); System.out.println("Restarting lesson: " + al); + al.restartLesson(); al.getLessonTracker(this).setCompleted(false); if (al instanceof SequentialLessonAdapter) { SequentialLessonAdapter sla = (SequentialLessonAdapter) al;