Repository: james-project
Updated Branches:
  refs/heads/master db6dd056c -> 3138d60e3


Add logs of http JMAP requests on /jmap endpoint


Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/3138d60e
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/3138d60e
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/3138d60e

Branch: refs/heads/master
Commit: 3138d60e35ef155b61fbcfa9332a6f67cbffb6ae
Parents: db6dd05
Author: Antoine Duprat <adup...@linagora.com>
Authored: Thu May 11 15:07:13 2017 +0200
Committer: Antoine Duprat <adup...@linagora.com>
Committed: Thu May 11 15:28:04 2017 +0200

----------------------------------------------------------------------
 server/protocols/jmap/pom.xml                       | 10 ++++++++++
 .../main/java/org/apache/james/jmap/JMAPServer.java | 16 ++++++++++++++++
 2 files changed, 26 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/3138d60e/server/protocols/jmap/pom.xml
----------------------------------------------------------------------
diff --git a/server/protocols/jmap/pom.xml b/server/protocols/jmap/pom.xml
index e27d982..cf74ca9 100644
--- a/server/protocols/jmap/pom.xml
+++ b/server/protocols/jmap/pom.xml
@@ -372,6 +372,16 @@
                     <artifactId>slf4j-simple</artifactId>
                     <scope>test</scope>
                 </dependency>
+                <dependency>
+                    <groupId>org.zalando</groupId>
+                    <artifactId>logbook-core</artifactId>
+                    <version>1.2.1</version>
+                </dependency>
+                <dependency>
+                    <groupId>org.zalando</groupId>
+                    <artifactId>logbook-servlet</artifactId>
+                    <version>1.2.1</version>
+                </dependency>
             </dependencies>
             <build>
                 <plugins>

http://git-wip-us.apache.org/repos/asf/james-project/blob/3138d60e/server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPServer.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPServer.java 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPServer.java
index a6ac629..5d7ad49 100644
--- a/server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPServer.java
+++ b/server/protocols/jmap/src/main/java/org/apache/james/jmap/JMAPServer.java
@@ -20,6 +20,7 @@
 package org.apache.james.jmap;
 
 import static org.apache.james.jmap.BypassAuthOnRequestMethod.bypass;
+import static org.zalando.logbook.HeaderFilters.authorization;
 
 import java.util.Optional;
 
@@ -32,11 +33,18 @@ import org.apache.james.http.jetty.Configuration;
 import org.apache.james.http.jetty.Configuration.Builder;
 import org.apache.james.http.jetty.JettyHttpServer;
 import org.apache.james.lifecycle.api.Configurable;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.zalando.logbook.DefaultHttpLogWriter;
+import org.zalando.logbook.DefaultHttpLogWriter.Level;
+import org.zalando.logbook.Logbook;
+import org.zalando.logbook.servlet.LogbookFilter;
 
 import com.github.fge.lambdas.Throwing;
 
 public class JMAPServer implements Configurable {
 
+    private static final Logger HTTP_JMAP_LOGGER = 
LoggerFactory.getLogger("http.jmap");
     private final Optional<JettyHttpServer> server;
 
     @Inject
@@ -55,6 +63,7 @@ public class JMAPServer implements Configurable {
                         .with(jmapServlet)
                     .filter(JMAPUrls.JMAP)
                         .with(new 
AllowAllCrossOriginRequests(bypass(authenticationFilter).on("OPTIONS").only()))
+                        .and(new LogbookFilter(logbook()))
                         .and(userProvisioningFilter)
                         .and(defaultMailboxesProvisioningFilter)
                         .only()
@@ -84,6 +93,13 @@ public class JMAPServer implements Configurable {
         return builder;
     }
 
+    private Logbook logbook() {
+        return Logbook.builder()
+                .headerFilter(authorization())
+                .writer(new DefaultHttpLogWriter(HTTP_JMAP_LOGGER, 
Level.DEBUG))
+                .build();
+    }
+
     @Override
     public void configure(HierarchicalConfiguration config) throws 
ConfigurationException {
         
server.ifPresent(Throwing.consumer(JettyHttpServer::start).sneakyThrow());


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to