100 lines
2.5 KiB
Java
100 lines
2.5 KiB
Java
|
|
package org.owasp.webgoat.lessons;
|
|
|
|
import java.sql.Connection;
|
|
import java.sql.SQLException;
|
|
import org.owasp.webgoat.session.CreateDB;
|
|
import org.owasp.webgoat.session.DatabaseUtilities;
|
|
import org.owasp.webgoat.session.LessonTracker;
|
|
import org.owasp.webgoat.session.RandomLessonTracker;
|
|
import org.owasp.webgoat.session.WebSession;
|
|
|
|
|
|
public abstract class RandomLessonAdapter extends LessonAdapter
|
|
{
|
|
|
|
public abstract String[] getStages();
|
|
|
|
public void setStage(WebSession s, String stage)
|
|
{
|
|
getLessonTracker(s).setStage(stage);
|
|
try
|
|
{
|
|
Connection connection = DatabaseUtilities.getConnection(s);
|
|
|
|
CreateDB db = new CreateDB();
|
|
db.makeDB(connection);
|
|
System.out.println("Successfully refreshed the database.");
|
|
|
|
} catch (SQLException sqle)
|
|
{
|
|
System.out.println("Error refreshing the database!");
|
|
sqle.printStackTrace();
|
|
}
|
|
}
|
|
|
|
public String getStage(WebSession s)
|
|
{
|
|
return getLessonTracker(s).getStage();
|
|
}
|
|
|
|
public void setStageComplete(WebSession s, String stage)
|
|
{
|
|
RandomLessonTracker lt = getLessonTracker(s);
|
|
lt.setStageComplete(stage, true);
|
|
if (lt.getCompleted())
|
|
{
|
|
s.setMessage("Congratulations, you have completed this lab");
|
|
}
|
|
else
|
|
{
|
|
s.setMessage("You have completed Stage " + (lt.getStageNumber(stage) + 1) + ": " + stage + ".");
|
|
if (!stage.equals(lt.getStage()))
|
|
s.setMessage(" Welcome to Stage " + (lt.getStageNumber(lt.getStage()) + 1) + ": " + lt.getStage());
|
|
}
|
|
try
|
|
{
|
|
Connection connection = DatabaseUtilities.getConnection(s);
|
|
|
|
CreateDB db = new CreateDB();
|
|
db.makeDB(connection);
|
|
System.out.println("Successfully refreshed the database.");
|
|
|
|
} catch (SQLException sqle)
|
|
{
|
|
System.out.println("Error refreshing the database!");
|
|
sqle.printStackTrace();
|
|
}
|
|
}
|
|
|
|
public boolean isStageComplete(WebSession s, String stage)
|
|
{
|
|
return getLessonTracker(s).hasCompleted(stage);
|
|
}
|
|
|
|
@Override
|
|
public RandomLessonTracker getLessonTracker(WebSession s)
|
|
{
|
|
return (RandomLessonTracker) super.getLessonTracker(s);
|
|
}
|
|
|
|
@Override
|
|
public RandomLessonTracker getLessonTracker(WebSession s, AbstractLesson lesson)
|
|
{
|
|
return (RandomLessonTracker) super.getLessonTracker(s, lesson);
|
|
}
|
|
|
|
@Override
|
|
public RandomLessonTracker getLessonTracker(WebSession s, String userNameOverride)
|
|
{
|
|
return (RandomLessonTracker) super.getLessonTracker(s, userNameOverride);
|
|
}
|
|
|
|
@Override
|
|
public LessonTracker createLessonTracker()
|
|
{
|
|
return new RandomLessonTracker(getStages());
|
|
}
|
|
|
|
}
|