Commit 7ddff892 authored by adam's avatar adam

Adds logging http requests

parent cef823e0
...@@ -8,6 +8,7 @@ import com.telephoners.krakyournet.ctf.commands.PurgeDatabaseCommand; ...@@ -8,6 +8,7 @@ import com.telephoners.krakyournet.ctf.commands.PurgeDatabaseCommand;
import com.telephoners.krakyournet.ctf.commands.RegisterTasksCommand; import com.telephoners.krakyournet.ctf.commands.RegisterTasksCommand;
import com.telephoners.krakyournet.ctf.commands.RegisterTeamsCommand; import com.telephoners.krakyournet.ctf.commands.RegisterTeamsCommand;
import com.telephoners.krakyournet.ctf.core.ApplicationConfiguration; import com.telephoners.krakyournet.ctf.core.ApplicationConfiguration;
import com.telephoners.krakyournet.ctf.logging.LoggingFilter;
import com.telephoners.krakyournet.ctf.modules.ApplicationModule; import com.telephoners.krakyournet.ctf.modules.ApplicationModule;
import com.telephoners.krakyournet.ctf.beans.User; import com.telephoners.krakyournet.ctf.beans.User;
import com.telephoners.krakyournet.ctf.repositories.UsersRepository; import com.telephoners.krakyournet.ctf.repositories.UsersRepository;
...@@ -67,6 +68,10 @@ public class CTFApplication extends Application<ApplicationConfiguration> ...@@ -67,6 +68,10 @@ public class CTFApplication extends Application<ApplicationConfiguration>
environment.jersey().register(new AuthValueFactoryProvider.Binder<>(User.class)); environment.jersey().register(new AuthValueFactoryProvider.Binder<>(User.class));
} }
private void registerFilters(Environment environment){
environment.jersey().register(new LoggingFilter());
}
@Override @Override
public void run(ApplicationConfiguration applicationConfiguration, Environment environment) throws Exception public void run(ApplicationConfiguration applicationConfiguration, Environment environment) throws Exception
{ {
...@@ -75,6 +80,7 @@ public class CTFApplication extends Application<ApplicationConfiguration> ...@@ -75,6 +80,7 @@ public class CTFApplication extends Application<ApplicationConfiguration>
registerAdmins(applicationConfiguration); registerAdmins(applicationConfiguration);
registerResources(environment); registerResources(environment);
registerAuthFeatures(environment); registerAuthFeatures(environment);
registerFilters(environment);
} }
private void registerAdmins(ApplicationConfiguration applicationConfiguration) private void registerAdmins(ApplicationConfiguration applicationConfiguration)
......
package com.telephoners.krakyournet.ctf.logging;
import com.google.common.base.Charsets;
import com.google.common.io.CharStreams;
import com.google.inject.Singleton;
import com.telephoners.krakyournet.ctf.beans.User;
import com.telephoners.krakyournet.ctf.resources.SolutionsResource;
import javax.validation.constraints.NotNull;
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.SecurityContext;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Date;
import java.util.StringJoiner;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* Created by adam on 20.03.16.
*/
@Singleton
public class LoggingFilter implements ContainerRequestFilter {
private static final Logger LOG = Logger.getLogger(LoggingFilter.class.getName());
@Override
public void filter(ContainerRequestContext containerRequestContext) throws IOException {
InputStream inputStream = containerRequestContext.getEntityStream();
String requestContent = CharStreams.toString(new InputStreamReader(inputStream, Charsets.UTF_8));
String method = containerRequestContext.getMethod();
SecurityContext securityContext = containerRequestContext.getSecurityContext() ;
String requestURI = containerRequestContext.getUriInfo().getRequestUri().toString();
String logMessage;
if (securityContext.getUserPrincipal() != null) {
String userName = securityContext.getUserPrincipal().getName();
logMessage = method + " " + requestURI + " from " + userName + " with content: " + requestContent;
} else {
logMessage = method + " " + requestURI;
}
LOG.log(Level.INFO, logMessage);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment