How rajesh-sangepu/webgoat works
WebGoat is an intentionally vulnerable web application for learning web security and penetration testing. A learner registers or logs in, browses a lesson menu, submits exercise requests, receives feedback, and tracks completion. The source tree also shows WebWolf, a companion application, and lessons spanning authentication, access control, injection, cryptography, and other security topics. The graph highlights the lesson runtime and progress/reporting layers; most lesson-to-container wiring is not shown in the excerpts, so those relationships are omitted or marked unverified.
Main entry points: LessonMenuService.java Lesson menu · ReportCardController.java Progress report · WebWolf.java WebWolf app · Course.java Course catalog
Components 24
Identity and access
- Registration
src/main/java/org/owasp/webgoat/container/users/RegistrationController.java - User service
src/main/java/org/owasp/webgoat/container/users/UserService.java - User repository
src/main/java/org/owasp/webgoat/container/users/UserRepository.java - WebGoat user
src/main/java/org/owasp/webgoat/container/users/WebGoatUser.java
Lesson experience
- Course catalog
src/main/java/org/owasp/webgoat/container/session/Course.java - Lesson categories
src/main/java/org/owasp/webgoat/container/lessons/Category.java - Lesson model
src/main/java/org/owasp/webgoat/container/lessons/Lesson.java - Lesson identifier
src/main/java/org/owasp/webgoat/container/lessons/LessonName.java - Lesson menu
src/main/java/org/owasp/webgoat/container/service/LessonMenuService.java - Lesson progress
src/main/java/org/owasp/webgoat/container/users/LessonProgress.java - User progress
src/main/java/org/owasp/webgoat/container/users/UserProgress.java - Progress repository
src/main/java/org/owasp/webgoat/container/users/UserProgressRepository.java - Progress report
src/main/java/org/owasp/webgoat/container/report/ReportCardController.java - Lesson messages
src/main/java/org/owasp/webgoat/container/i18n/PluginMessages.java
Security exercises
- Assignment endpoints
src/main/java/org/owasp/webgoat/container/assignments/AssignmentEndpoint.java - Exercise feedback
src/main/java/org/owasp/webgoat/container/assignments/AttackResult.java - Flag challenges
src/main/java/org/owasp/webgoat/lessons/challenges/FlagController.java - SQL injection
src/main/java/org/owasp/webgoat/lessons/sqlinjection/advanced/SqlInjectionAdvanced.java - Security lesson set
src/main/java/org/owasp/webgoat/lessons
WebWolf companion
- WebWolf app
src/main/java/org/owasp/webgoat/webwolf/WebWolf.java - Mailbox
src/main/java/org/owasp/webgoat/webwolf/mailbox/MailboxController.java - JWT service
src/main/java/org/owasp/webgoat/webwolf/jwt/JWTController.java - File server
src/main/java/org/owasp/webgoat/webwolf/FileServer.java
Other components
- Learner
Connections 24
- Learner → Registration: registers
- Registration → User service: adds user
src/main/java/org/owasp/webgoat/container/users/RegistrationController.java - User service → User repository: reads and saves
src/main/java/org/owasp/webgoat/container/users/UserService.java - User service → Progress repository: creates progress
src/main/java/org/owasp/webgoat/container/users/UserService.java - Learner → Lesson menu: requests menu
- Lesson menu → Course catalog: reads catalog
src/main/java/org/owasp/webgoat/container/service/LessonMenuService.java - Lesson menu → Progress repository: reads progress
src/main/java/org/owasp/webgoat/container/service/LessonMenuService.java - Course catalog → Lesson categories: uses categories
src/main/java/org/owasp/webgoat/container/session/Course.java - Course catalog → Lesson model: provides lessons
src/main/java/org/owasp/webgoat/container/session/Course.java - Lesson menu → Lesson model: builds menu from
src/main/java/org/owasp/webgoat/container/service/LessonMenuService.java - Lesson menu → Lesson progress: checks completion
src/main/java/org/owasp/webgoat/container/service/LessonMenuService.java - Progress repository → User progress: stores
src/main/java/org/owasp/webgoat/container/users/UserProgressRepository.java - User progress → Lesson progress: tracks lessons
src/main/java/org/owasp/webgoat/container/users/UserProgress.java - Learner → SQL injection: submits exercise
- Learner → Flag challenges: submits flag
- Flag challenges → Exercise feedback: returns feedback
src/main/java/org/owasp/webgoat/lessons/challenges/FlagController.java - Learner → Progress report: views results
- Progress report → Progress repository: reads progress
src/main/java/org/owasp/webgoat/container/report/ReportCardController.java - Progress report → Course catalog: reads course totals
src/main/java/org/owasp/webgoat/container/report/ReportCardController.java - Progress report → Lesson messages: localizes lessons
src/main/java/org/owasp/webgoat/container/report/ReportCardController.java - Learner → WebWolf app: uses companion
- WebWolf app → Mailbox: offers mailbox
- WebWolf app → JWT service: offers JWT tools
- WebWolf app → File server: offers file service