From 7f661c3dc1737f72df7f30d9174c7a51cbea005a Mon Sep 17 00:00:00 2001
From: 0xboobface <0xboobface@gmail.com>
Date: Fri, 29 May 2020 20:21:13 +0200
Subject: [PATCH] Add a HTTP and a HTML header with the version of ctbrec
---
server/pom.xml | 1 +
.../ctbrec/recorder/server/HttpServer.java | 30 +++++++++++++++++++
.../src/main/resources/html/static/index.html | 3 +-
3 files changed, 33 insertions(+), 1 deletion(-)
diff --git a/server/pom.xml b/server/pom.xml
index ef915478..9de7ab1b 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -29,6 +29,7 @@
true
version
+ html/static/index.html
diff --git a/server/src/main/java/ctbrec/recorder/server/HttpServer.java b/server/src/main/java/ctbrec/recorder/server/HttpServer.java
index da8fe60e..95c38fbf 100644
--- a/server/src/main/java/ctbrec/recorder/server/HttpServer.java
+++ b/server/src/main/java/ctbrec/recorder/server/HttpServer.java
@@ -7,10 +7,17 @@ import java.io.InputStreamReader;
import java.net.BindException;
import java.net.URL;
import java.util.ArrayList;
+import java.util.EnumSet;
import java.util.List;
import java.util.Optional;
+import javax.servlet.DispatcherType;
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -28,6 +35,7 @@ import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.server.handler.HandlerList;
import org.eclipse.jetty.server.handler.SecuredRedirectHandler;
+import org.eclipse.jetty.servlet.FilterHolder;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.util.security.Constraint;
@@ -193,6 +201,7 @@ public class HttpServer {
ServletContextHandler defaultContext = new ServletContextHandler(ServletContextHandler.SESSIONS);
defaultContext.setContextPath(contextPath);
+ addHttpHeaderFilter(defaultContext);
RecorderServlet recorderServlet = new RecorderServlet(recorder, sites);
ServletHolder holder = new ServletHolder(recorderServlet);
@@ -255,6 +264,27 @@ public class HttpServer {
}
}
+ private void addHttpHeaderFilter(ServletContextHandler defaultContext) {
+ FilterHolder httpHeaderFilter = new FilterHolder(new Filter() {
+ @Override
+ public void init(FilterConfig filterConfig) throws ServletException {
+ // noop
+ }
+
+ @Override
+ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
+ ((HttpServletResponse)response).addHeader("Server", "CTB Recorder/" + getVersion());
+ chain.doFilter(request, response);
+ }
+
+ @Override
+ public void destroy() {
+ // noop
+ }
+ });
+ defaultContext.addFilter(httpHeaderFilter, "/*", EnumSet.of(DispatcherType.REQUEST, DispatcherType.INCLUDE));
+ }
+
private static final SecurityHandler basicAuth(String username, String password, String realm) {
UserStore userStore = new UserStore();
userStore.addUser(username, Credential.getCredential(password), new String[] { "user" });
diff --git a/server/src/main/resources/html/static/index.html b/server/src/main/resources/html/static/index.html
index faecf4a3..f37e7bca 100644
--- a/server/src/main/resources/html/static/index.html
+++ b/server/src/main/resources/html/static/index.html
@@ -7,8 +7,9 @@
+
-
CTB Recorder
+CTB Recorder ${project.version}