You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by lq...@apache.org on 2016/09/30 14:40:57 UTC

svn commit: r1762920 - in /qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin: HttpManagementUtil.java filter/LoggingFilter.java servlet/rest/RestServlet.java

Author: lquack
Date: Fri Sep 30 14:40:57 2016
New Revision: 1762920

URL: http://svn.apache.org/viewvc?rev=1762920&view=rev
Log:
QPID-7414: [Java Broker] Add URL and user information when logging IllegalConfiguration-, IllegalArgument-, and TimoutExceptions in REST

Modified:
    qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java
    qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/filter/LoggingFilter.java
    qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java

Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java?rev=1762920&r1=1762919&r2=1762920&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/HttpManagementUtil.java Fri Sep 30 14:40:57 2016
@@ -25,12 +25,15 @@ import java.io.OutputStream;
 import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.nio.charset.StandardCharsets;
+import java.security.Principal;
 import java.security.PrivilegedAction;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
 import java.util.zip.GZIPOutputStream;
 
 import javax.security.auth.Subject;
@@ -226,4 +229,41 @@ public class HttpManagementUtil
         }
         return Arrays.asList(pathInfoElements);
     }
+
+    public static String getRequestURL(HttpServletRequest httpRequest)
+    {
+        String url;
+        StringBuilder urlBuilder = new StringBuilder(httpRequest.getRequestURL());
+        String queryString = httpRequest.getQueryString();
+        if (queryString != null)
+        {
+            urlBuilder.append('?').append(queryString);
+        }
+        url = urlBuilder.toString();
+        return url;
+    }
+
+    public static String getRequestPrincipals(HttpServletRequest httpRequest)
+    {
+        HttpSession session = httpRequest.getSession(false);
+        if (session != null)
+        {
+            Subject subject = HttpManagementUtil.getAuthorisedSubject(httpRequest);
+            if (subject != null)
+            {
+
+                Set<Principal> principalSet = subject.getPrincipals();
+                if (!principalSet.isEmpty())
+                {
+                    TreeSet<String> principalNames = new TreeSet();
+                    for (Principal principal : principalSet)
+                    {
+                        principalNames.add(principal.getName());
+                    }
+                    return principalNames.toString();
+                }
+            }
+        }
+        return null;
+    }
 }

Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/filter/LoggingFilter.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/filter/LoggingFilter.java?rev=1762920&r1=1762919&r2=1762920&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/filter/LoggingFilter.java (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/filter/LoggingFilter.java Fri Sep 30 14:40:57 2016
@@ -21,11 +21,7 @@
 package org.apache.qpid.server.management.plugin.filter;
 
 import java.io.IOException;
-import java.security.Principal;
-import java.util.Set;
-import java.util.TreeSet;
 
-import javax.security.auth.Subject;
 import javax.servlet.Filter;
 import javax.servlet.FilterChain;
 import javax.servlet.FilterConfig;
@@ -34,7 +30,6 @@ import javax.servlet.ServletRequest;
 import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
 
 import org.apache.qpid.server.management.plugin.HttpManagementUtil;
 import org.slf4j.Logger;
@@ -61,8 +56,8 @@ public class LoggingFilter implements Fi
         if (LOGGER.isDebugEnabled())
         {
             method = httpRequest.getMethod();
-            user = getRequestPrincipals(httpRequest);
-            url = getRequestURL(httpRequest);
+            user = HttpManagementUtil.getRequestPrincipals(httpRequest);
+            url = HttpManagementUtil.getRequestURL(httpRequest);
             LOGGER.debug("REQUEST  user='{}' method='{}' url='{}'", user, method, url);
         }
         try
@@ -76,7 +71,7 @@ public class LoggingFilter implements Fi
                 if (user == null)
                 {
                     // user might have been set by subsequent filters
-                    user = getRequestPrincipals(httpRequest);
+                    user = HttpManagementUtil.getRequestPrincipals(httpRequest);
                 }
                 String responseStatus = String.valueOf(httpResponse.getStatus());
                 LOGGER.debug("RESPONSE user='{}' method='{}' url='{}' status='{}'", user, method, url, responseStatus);
@@ -90,41 +85,4 @@ public class LoggingFilter implements Fi
     {
         //noop
     }
-
-    private String getRequestURL(HttpServletRequest httpRequest)
-    {
-        String url;
-        StringBuilder urlBuilder = new StringBuilder(httpRequest.getRequestURL());
-        String queryString = httpRequest.getQueryString();
-        if (queryString != null)
-        {
-            urlBuilder.append('?').append(queryString);
-        }
-        url = urlBuilder.toString();
-        return url;
-    }
-
-    private String getRequestPrincipals(HttpServletRequest httpRequest)
-    {
-        HttpSession session = httpRequest.getSession(false);
-        if (session != null)
-        {
-            Subject subject = HttpManagementUtil.getAuthorisedSubject(httpRequest);
-            if (subject != null)
-            {
-
-                Set<Principal> principalSet = subject.getPrincipals();
-                if (!principalSet.isEmpty())
-                {
-                    TreeSet<String> principalNames = new TreeSet();
-                    for (Principal principal : principalSet)
-                    {
-                        principalNames.add(principal.getName());
-                    }
-                    return principalNames.toString();
-                }
-            }
-        }
-        return null;
-    }
 }

Modified: qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java
URL: http://svn.apache.org/viewvc/qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java?rev=1762920&r1=1762919&r2=1762920&view=diff
==============================================================================
--- qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java (original)
+++ qpid/java/trunk/broker-plugins/management-http/src/main/java/org/apache/qpid/server/management/plugin/servlet/rest/RestServlet.java Fri Sep 30 14:40:57 2016
@@ -52,6 +52,7 @@ import org.slf4j.LoggerFactory;
 
 import org.apache.qpid.server.configuration.IllegalConfigurationException;
 import org.apache.qpid.server.management.plugin.HttpManagement;
+import org.apache.qpid.server.management.plugin.HttpManagementUtil;
 import org.apache.qpid.server.model.AbstractConfiguredObject;
 import org.apache.qpid.server.model.Broker;
 import org.apache.qpid.server.model.ConfiguredObject;
@@ -550,7 +551,8 @@ public class RestServlet extends Abstrac
             super.service(request, response);
         }
         catch (IllegalArgumentException | IllegalConfigurationException | IllegalStateException | SecurityException
-                | IntegrityViolationException | IllegalStateTransitionException | NoClassDefFoundError  e)
+                | IntegrityViolationException | IllegalStateTransitionException | NoClassDefFoundError
+                | OperationTimeoutException e)
         {
             setResponseStatus(request, response, e);
         }
@@ -1120,7 +1122,11 @@ public class RestServlet extends Abstrac
             }
             else if (e instanceof IllegalConfigurationException || e instanceof IllegalArgumentException)
             {
-                LOGGER.warn(e.getClass().getSimpleName() + " processing request : " + message);
+                LOGGER.warn("{} processing request {} from user '{}': {}",
+                            e.getClass().getSimpleName(),
+                            HttpManagementUtil.getRequestURL(request),
+                            HttpManagementUtil.getRequestPrincipals(request),
+                            message);
                 Throwable t = e;
                 int maxDepth = 10;
                 while ((t = t.getCause()) != null && maxDepth-- != 0)
@@ -1138,11 +1144,16 @@ public class RestServlet extends Abstrac
                 message = "Timeout occurred";
                 if (LOGGER.isDebugEnabled())
                 {
-                    LOGGER.debug(message, e);
+                    LOGGER.debug("Timeout during processing of request {} from user '{}'",
+                                 HttpManagementUtil.getRequestURL(request),
+                                 HttpManagementUtil.getRequestPrincipals(request),
+                                 e);
                 }
                 else
                 {
-                    LOGGER.info(e.getMessage());
+                    LOGGER.info("Timeout during processing of request {} from user '{}'",
+                            HttpManagementUtil.getRequestURL(request),
+                            HttpManagementUtil.getRequestPrincipals(request));
                 }
 
                 responseCode = HttpServletResponse.SC_BAD_GATEWAY;



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org