- Basic overview of all the assignments needed to be solved in a lesson - Clicking on a link will jump to the correct page with the assignment - Lesson completed also updates lesson overview immediately
224 lines
10 KiB
HTML
224 lines
10 KiB
HTML
<!DOCTYPE html>
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org"
|
|
xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
|
|
<head>
|
|
<meta http-equiv="Expires" CONTENT="0"/>
|
|
<meta http-equiv="Pragma" CONTENT="no-cache"/>
|
|
<meta http-equiv="Cache-Control" CONTENT="no-cache"/>
|
|
<meta http-equiv="Cache-Control" CONTENT="no-store"/>
|
|
|
|
<!--[if lt IE 7]>
|
|
<id class="no-js lt-ie9 lt-ie8 lt-ie7"/> <![endif]-->
|
|
<!--[if IE 7]>
|
|
<id class="no-js lt-ie9 lt-ie8"/> <![endif]-->
|
|
<!--[if IE 8]>
|
|
<id class="no-js lt-ie9"/> <![endif]-->
|
|
<!--[if gt IE 8]><!-->
|
|
|
|
<!-- CSS -->
|
|
<link rel="shortcut icon" th:href="@{/images/favicon.ico}" type="image/x-icon"/>
|
|
<link rel="stylesheet" type="text/css" th:href="@{/css/main.css}"/>
|
|
<link rel="stylesheet" type="text/css" th:href="@{/plugins/bootstrap/css/bootstrap.min.css}"/>
|
|
<link rel="stylesheet" type="text/css" th:href="@{/css/font-awesome.min.css}"/>
|
|
<link rel="stylesheet" type="text/css" th:href="@{/css/animate.css}"/>
|
|
<link rel="stylesheet" type="text/css" th:href="@{/css/coderay.css}"/>
|
|
<!-- end of CSS -->
|
|
|
|
<!-- JS -->
|
|
|
|
<script src="js/modernizr-2.6.2.min.js"/>
|
|
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
|
<!--[if lt IE 9]>
|
|
<script src="js/html5shiv.js"/>
|
|
<script src="js/respond.min.js"/>
|
|
<![endif]-->
|
|
|
|
<!-- Require.js used to load js asynchronously -->
|
|
<script src="js/libs/require.min.js" data-main="js/main.js"/>
|
|
<meta http-equiv="Content-Type" content="text/id; charset=ISO-8859-1"/>
|
|
<title>WebGoat</title>
|
|
</head>
|
|
<body>
|
|
|
|
<script id="assignmentTemplate" type="text/template">
|
|
<![CDATA[
|
|
<!-- CDATA is necessary otherwise we get into trouble with the strict HTML5 validation (Thymeleaf) -->
|
|
<strong><a href="#" data-id=<%= assignment.path %>><%= assignment.name %></a></strong> (<%= solved %>)
|
|
<!-- ]]> -->
|
|
</script>
|
|
|
|
<section id="container">
|
|
<header id="header">
|
|
<!--logo start-->
|
|
<div class="brand">
|
|
<a th:href="@{/welcome.mvc}" class="logo"><span>Web</span>Goat</a>
|
|
</div>
|
|
<!--logo end-->
|
|
<div class="toggle-navigation toggle-left">
|
|
<button type="button" class="btn btn-default" id="toggle-menu" data-toggle="tooltip" data-placement="right"
|
|
title="Toggle Navigation">
|
|
<i class="fa fa-bars"></i>
|
|
</button>
|
|
</div><!--toggle navigation end-->
|
|
<div id="lesson-title-wrapper">
|
|
|
|
</div><!--lesson title end-->
|
|
<div class="user-nav pull-right" id="user-and-info-nav" style="margin-right: 75px;">
|
|
<div class="dropdown" style="display:inline">
|
|
<button type="button" data-toggle="dropdown" class="btn btn-default dropdown-toggle" id="user-menu">
|
|
<i class="fa fa-user"></i> <span class="caret"></span>
|
|
</button>
|
|
<ul class="dropdown-menu dropdown-menu-left">
|
|
<li role="presentation"><a role="menuitem" tabindex="-1" th:href="@{/login(logout)}">Logout</a></li>
|
|
<li role="presentation" class="divider"></li>
|
|
<li role="presentation" class="disabled"><a role="menuitem" tabindex="-1" href="#">User: <span
|
|
th:text="${#authentication.name}"></span></a>
|
|
</li>
|
|
<li role="presentation" class="disabled"><a role="menuitem" tabindex="-1" href="#">Role:
|
|
<span sec:authorize="hasRole('WEBGOAT_USER')">User</span>
|
|
<span sec:authorize="hasRole('WEBGOAT_ADMIN')">Admin</span>
|
|
</a>
|
|
</li>
|
|
<li role="presentation" class="divider"></li>
|
|
<li role="presentation"><a role="menuitem" tabindex="-1" href="#developer-controls">Show developer
|
|
controls</a></li>
|
|
<li role="presentation" class="disabled"><a role="menuitem" tabindex="-1" href="#">Version: <span
|
|
th:text="${@environment.getProperty('webgoat.build.version')}"></span></a>
|
|
</li>
|
|
<li role="presentation" class="disabled"><a role="menuitem" tabindex="-1" href="#">Build:
|
|
<span th:text="${@environment.getProperty('webgoat.build.number')}"></span></a></li>
|
|
|
|
</ul>
|
|
</div>
|
|
<button type="button" id="about-button" class="btn btn-default right_nav_button" title="About WebGoat"
|
|
data-toggle="modal" data-target="#about-modal">
|
|
<i class="fa fa-info"></i>
|
|
</button>
|
|
<a href="mailto:${contactEmail}?Subject=Webgoat%20feedback" target="_top">
|
|
<button type="button" class="btn btn-default right_nav_button" data-toggle="tooltip" title="Contact Us">
|
|
<i class="fa fa-envelope"></i>
|
|
</button>
|
|
</a>
|
|
|
|
|
|
</div>
|
|
</header>
|
|
|
|
<aside class="sidebar">
|
|
<div id="menu-container"></div>
|
|
</aside>
|
|
<!--sidebar left end-->
|
|
|
|
<!--main content start-->
|
|
<section class="main-content-wrapper">
|
|
<section id="main-content"> <!--ng-controller="goatLesson"-->
|
|
<div class="row">
|
|
<div class="col-md-8">
|
|
<!--<div class="col-md-12" align="left">-->
|
|
<!---->
|
|
<!--<!– hints moved into lesson template –>-->
|
|
<!--</div>-->
|
|
<div class="col-md-12" align="left">
|
|
<div id="lesson-content-wrapper" class="panel">
|
|
<div class="" id="error-notification-container">
|
|
<div class="" id="error-notification">
|
|
<i class="fa fa-exclamation-circle" /> There was an unexpected error. Please try again.
|
|
</div>
|
|
</div>
|
|
<div class="" id="help-controls">
|
|
<button class="btn btn-primary btn-xs btn-danger help-button" id="show-source-button">
|
|
<i class="fa fa-code" />
|
|
</button>
|
|
<button class="btn btn-primary btn-xs btn-danger help-button" id="show-hints-button">Show Hints
|
|
</button>
|
|
<!--<button class="btn btn-primary btn-xs btn-danger help-button" id="show-attack-button">-->
|
|
<!--Attack It-->
|
|
<!--</button>-->
|
|
<button class="btn btn-primary btn-xs btn-danger help-button" id="show-lesson-overview-button">Lesson overview
|
|
</button>
|
|
<button class="btn btn-xs help-button" id="restart-lesson-button">
|
|
Reset Lesson
|
|
</button>
|
|
</div>
|
|
|
|
<div class="lesson-hint" id="lesson-hint-container">
|
|
<!--<h4>Hints</h4>-->
|
|
<div class="panel">
|
|
<div id="message" class="info" th:utext="${message}"></div>
|
|
<div class="panel-body" id="lesson-hint">
|
|
<span class="glyphicon-class glyphicon glyphicon-circle-arrow-left"
|
|
id="show-prev-hint"></span>
|
|
<span class="glyphicon-class glyphicon glyphicon-circle-arrow-right"
|
|
id="show-next-hint"></span>
|
|
<br/>
|
|
<span id="lesson-hint-content"></span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="lesson-hint" id="lesson-overview-container">
|
|
<div class="panel">
|
|
<div class="panel-body" id="lesson-overview"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="lesson-content">
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="lesson-helps-wrapper" class="panel">
|
|
|
|
|
|
|
|
<div class="lesson-help" id="lesson-plan-row">
|
|
<div class="col-md-12">
|
|
<h4>Lesson Plan</h4>
|
|
|
|
<div class="panel">
|
|
<div class="panel-body" id="lesson-plan-content">
|
|
<!-- allowing jQuery to handle this one -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="lesson-help" id="lesson-solution-row">
|
|
<div class="col-md-12">
|
|
<h4>Lesson Solution</h4>
|
|
|
|
<div class="panel">
|
|
<div class="panel-body" id="lesson-solution-content">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="lesson-help" id="lesson-source-row">
|
|
<div class="col-md-12">
|
|
<h4>Lesson Source Code</h4>
|
|
|
|
<div class="panel">
|
|
<div class="panel-body" id="lesson-source-content">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</section>
|
|
|
|
</section>
|
|
|
|
|
|
<!-- About WebGoat Modal -->
|
|
<div class="modal" id="about-modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
|
|
<div class="modal-dialog modal-lg">
|
|
<div class="modal-content" th:replace="about :: about"></div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
|
|
|
|
</html>
|