* refactor: modernize code * refactor: move to Tomcat * chore: bump to Spring Boot 3.3.3 * refactor: use Testcontainers to run integration tests * refactor: lesson/assignment progress * chore: format code * refactor: first step into removing base class for assignment Always been a bit of an ugly construction, as none of the dependencies are clear. The constructors are hidden due to autowiring the base class. This PR removes two of the fields. As a bonus we now wire the authentication principal directly in the controllers. * refactor: use authentication principal directly. * refactor: pass lesson to the endpoints No more need to get the current lesson set in a session. The lesson is now passed to the endpoints. * fix: Testcontainers cannot run on Windows host in Github actions. Since we have Windows specific paths let's run it standalone for now. We need to run these tests on Docker as well (for now disabled)
41 lines
1.4 KiB
Docker
41 lines
1.4 KiB
Docker
# We need JDK as some of the lessons needs to be able to compile Java code
|
|
FROM docker.io/eclipse-temurin:21-jdk-jammy
|
|
|
|
LABEL name="WebGoat: A deliberately insecure Web Application"
|
|
LABEL maintainer="WebGoat team"
|
|
|
|
RUN \
|
|
useradd -ms /bin/bash webgoat && \
|
|
chgrp -R 0 /home/webgoat && \
|
|
chmod -R g=u /home/webgoat
|
|
|
|
USER webgoat
|
|
|
|
COPY --chown=webgoat target/webgoat-*.jar /home/webgoat/webgoat.jar
|
|
|
|
EXPOSE 8080
|
|
EXPOSE 9090
|
|
|
|
ENV TZ=Europe/Amsterdam
|
|
|
|
WORKDIR /home/webgoat
|
|
ENTRYPOINT [ "java", \
|
|
"-Duser.home=/home/webgoat", \
|
|
"-Dfile.encoding=UTF-8", \
|
|
"--add-opens", "java.base/java.lang=ALL-UNNAMED", \
|
|
"--add-opens", "java.base/java.util=ALL-UNNAMED", \
|
|
"--add-opens", "java.base/java.lang.reflect=ALL-UNNAMED", \
|
|
"--add-opens", "java.base/java.text=ALL-UNNAMED", \
|
|
"--add-opens", "java.desktop/java.beans=ALL-UNNAMED", \
|
|
"--add-opens", "java.desktop/java.awt.font=ALL-UNNAMED", \
|
|
"--add-opens", "java.base/sun.nio.ch=ALL-UNNAMED", \
|
|
"--add-opens", "java.base/java.io=ALL-UNNAMED", \
|
|
"--add-opens", "java.base/java.util=ALL-UNNAMED", \
|
|
"--add-opens", "java.base/sun.nio.ch=ALL-UNNAMED", \
|
|
"--add-opens", "java.base/java.io=ALL-UNNAMED", \
|
|
"-Drunning.in.docker=true", \
|
|
"-jar", "webgoat.jar", "--server.address", "0.0.0.0" ]
|
|
|
|
HEALTHCHECK --interval=5s --timeout=3s \
|
|
CMD curl --fail http://localhost:8080/WebGoat/actuator/health || exit 1
|