Add a HTTP and a HTML header with the version of ctbrec

This commit is contained in:
0xboobface 2020-05-29 20:21:13 +02:00
parent 258334b637
commit 7f661c3dc1
3 changed files with 33 additions and 1 deletions

View File

@ -29,6 +29,7 @@
<filtering>true</filtering>
<includes>
<include>version</include>
<include>html/static/index.html</include>
</includes>
</resource>
</resources>

View File

@ -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" });

View File

@ -7,8 +7,9 @@
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="CTB Recorder is a free recording software for Chaturbate">
<meta name="author" content="">
<meta name="version" content="${project.version}">
<title>CTB Recorder</title>
<title>CTB Recorder ${project.version}</title>
<!-- Bootstrap core CSS -->
<link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">