Skip to content

Commit 8dd8c05

Browse files
committed
Fix header-based proxy auth crash and improve Dockerfile
- Guard updateLastConnectionDate() against null auth token when authenticated via X-Authenticated-User header (fixes sismics#786) - Bump default JVM heap to -Xms512m/-Xmx2g with G1GC tuning - Use shell-form CMD so JAVA_OPTIONS env var is expanded by the JVM - Modernize Dockerfile: key=value ENV format, COPY over ADD, clean up Jetty tarball after extraction Made-with: Cursor
1 parent 17cf68f commit 8dd8c05

2 files changed

Lines changed: 16 additions & 16 deletions

File tree

Dockerfile

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
FROM ubuntu:22.04
2-
LABEL maintainer="b.gamard@sismics.com"
32

4-
# Run Debian in non interactive mode
5-
ENV DEBIAN_FRONTEND noninteractive
3+
ENV DEBIAN_FRONTEND=noninteractive
64

7-
# Configure env
8-
ENV LANG C.UTF-8
9-
ENV LC_ALL C.UTF-8
10-
ENV JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64/
11-
ENV JAVA_OPTIONS -Dfile.encoding=UTF-8 -Xmx1g
12-
ENV JETTY_VERSION 11.0.20
13-
ENV JETTY_HOME /opt/jetty
5+
ENV LANG=C.UTF-8
6+
ENV LC_ALL=C.UTF-8
7+
ENV JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/
8+
ENV JAVA_OPTIONS="-Dfile.encoding=UTF-8 -Xms512m -Xmx2g -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
9+
ENV JETTY_VERSION=11.0.20
10+
ENV JETTY_HOME=/opt/jetty
1411

1512
# Install packages
1613
RUN apt-get update && \
@@ -54,6 +51,7 @@ RUN dpkg-reconfigure -f noninteractive tzdata
5451
RUN wget -nv -O /tmp/jetty.tar.gz \
5552
"https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-home/${JETTY_VERSION}/jetty-home-${JETTY_VERSION}.tar.gz" \
5653
&& tar xzf /tmp/jetty.tar.gz -C /opt \
54+
&& rm /tmp/jetty.tar.gz \
5755
&& mv /opt/jetty* /opt/jetty \
5856
&& useradd jetty -U -s /bin/false \
5957
&& chown -R jetty:jetty /opt/jetty \
@@ -67,9 +65,9 @@ RUN mkdir /app && \
6765
cd /app && \
6866
java -jar /opt/jetty/start.jar --add-modules=server,http,webapp,deploy
6967

70-
ADD docs.xml /app/webapps/docs.xml
71-
ADD docs-web/target/docs-web-*.war /app/webapps/docs.war
68+
COPY docs.xml /app/webapps/docs.xml
69+
COPY docs-web/target/docs-web-*.war /app/webapps/docs.war
7270

7371
WORKDIR /app
7472

75-
CMD ["java", "-jar", "/opt/jetty/start.jar"]
73+
CMD java ${JAVA_OPTIONS} -jar /opt/jetty/start.jar

docs-web/src/main/java/com/sismics/docs/rest/resource/UserResource.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -588,10 +588,12 @@ public Response info() {
588588
response.add("is_default_password", Constants.DEFAULT_ADMIN_PASSWORD.equals(adminUser.getPassword()));
589589
}
590590
} else {
591-
// Update the last connection date
591+
// Update the last connection date (null when authenticated via header/proxy)
592592
String authToken = getAuthToken();
593-
AuthenticationTokenDao authenticationTokenDao = new AuthenticationTokenDao();
594-
authenticationTokenDao.updateLastConnectionDate(authToken);
593+
if (authToken != null) {
594+
AuthenticationTokenDao authenticationTokenDao = new AuthenticationTokenDao();
595+
authenticationTokenDao.updateLastConnectionDate(authToken);
596+
}
595597

596598
// Build the response
597599
response.add("anonymous", false);

0 commit comments

Comments
 (0)