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