MCPcopy Index your code
hub / github.com/WebGoat/WebGoat

github.com/WebGoat/WebGoat @v2025.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2025.3 ↗ · + Follow
2,483 symbols 8,040 edges 464 files 201 documented · 8% 9 cross-repo links updated 4d agov2025.3 · 2025-03-11★ 9,19434 open issues

Browse by type

Functions 2,092 Types & classes 391
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Multi language support in WebGoat

WebGoat is mainly written in English, but it does support multiple languages.

Default language selection

  1. Current supported languages are: en, fr, de, nl
  2. The primary language is based on the language setting of the browser.
  3. If the language is not in the list of supported language, the language is English
  4. Once logged in, you can switch between the supported languages using a language dropdown menu on the main page
  5. After switching a language you are back at the Introduction page

Adding a new language

The following steps are required when you want to add a new language

  1. Update main_new.html
  2. Add the parts for showing the flag and providing the correct value for the flag= parameter 2.
  3. Add a flag image to src/main/resources/webgoat/static/css/img
  4. See the main_new.html for a link to download flag resources
  5. Add a welcome page to the introduction lesson
  6. Copy Introduction_.adoc to Introduction_es.adoc (if in this case you want to add Spanish)
  7. Add a highlighted section that explains that most parts of WebGoat will still be in English and invite people to translate parts where it would be valuable
  8. Translate the main labels
  9. Copy messages.properties to messages_es.properties (if in this case you want to add Spanish)
  10. Translate the label values
  11. Optionally translate lessons by
  12. Adding lang specifc adoc files in documentation folder of the lesson
  13. Adding WebGoatLabels.properties of a specific language if you want to
  14. Run mvn clean to see if the LabelAndHintIntegration test passes
  15. Run WebGoat and verify that your own language and the other languages work as expected

If you only want to translate more for a certain language, you only need to do step 4-8

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 1,170
Function 922
Class 377
Interface 11
Enum 3

Languages

Java63%
TypeScript37%

Modules by API surface

src/main/resources/webgoat/static/js/libs/ace.js199 symbols
src/main/resources/webgoat/static/plugins/bootstrap-wysihtml5/js/wysihtml5-0.3.0.js172 symbols
src/main/resources/webgoat/static/js/libs/jquery.min.js83 symbols
src/main/resources/webgoat/static/js/jquery/jquery-1.10.2.min.js74 symbols
src/main/resources/webgoat/static/js/libs/underscore-min.js66 symbols
src/main/resources/webgoat/static/js/libs/jquery-2.1.4.min.js64 symbols
src/main/resources/webgoat/static/js/libs/jquery-ui-1.10.4.js52 symbols
src/main/resources/webgoat/static/js/libs/require.min.js31 symbols
src/main/resources/webgoat/static/js/modernizr.min.js22 symbols
src/main/java/org/owasp/webgoat/lessons/challenges/challenge7/MD5.java20 symbols
src/main/resources/webgoat/static/js/libs/backbone-min.js18 symbols
src/main/resources/webgoat/static/js/libs/jquery-ui.min.js17 symbols

Dependencies from manifests, versioned

cglib:cglib-nodep
com.auth0:java-jwt4.5.0 · 1×
com.auth0:jwks-rsa0.22.1 · 1×
com.github.terma:javaniotcpproxy1.6 · 1×
com.nulab-inc:zxcvbn
com.sun.xml.bind:jaxb-impl
com.thoughtworks.xstream:xstream
io.github.bonigarcia:webdrivermanager

For agents

$ claude mcp add WebGoat \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page