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}