SLING-3048 - remove JCR session info from MDC, contributed by Chetan Mehrotra, thanks!
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1532326 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/extensions/mdc/internal/MDCInsertingFilter.java b/src/main/java/org/apache/sling/extensions/mdc/internal/MDCInsertingFilter.java
index 3f68a90..fcb8145 100644
--- a/src/main/java/org/apache/sling/extensions/mdc/internal/MDCInsertingFilter.java
+++ b/src/main/java/org/apache/sling/extensions/mdc/internal/MDCInsertingFilter.java
@@ -116,34 +116,34 @@
}
private void insertIntoMDC(ServletRequest request) {
- MDC.put(REQUEST_REMOTE_HOST_MDC_KEY, request.getRemoteHost());
+ nullSafePut(REQUEST_REMOTE_HOST_MDC_KEY, request.getRemoteHost());
if (request instanceof HttpServletRequest) {
HttpServletRequest httpRequest = (HttpServletRequest) request;
- MDC.put(REQUEST_REQUEST_URI, httpRequest.getRequestURI());
+ nullSafePut(REQUEST_REQUEST_URI, httpRequest.getRequestURI());
StringBuffer requestURL = httpRequest.getRequestURL();
if (requestURL != null) {
- MDC.put(REQUEST_REQUEST_URL, requestURL.toString());
+ nullSafePut(REQUEST_REQUEST_URL, requestURL.toString());
}
- MDC.put(REQUEST_QUERY_STRING, httpRequest.getQueryString());
- MDC.put(REQUEST_USER_AGENT_MDC_KEY, httpRequest.getHeader("User-Agent"));
- MDC.put(REQUEST_X_FORWARDED_FOR, httpRequest.getHeader("X-Forwarded-For"));
+ nullSafePut(REQUEST_QUERY_STRING, httpRequest.getQueryString());
+ nullSafePut(REQUEST_USER_AGENT_MDC_KEY, httpRequest.getHeader("User-Agent"));
+ nullSafePut(REQUEST_X_FORWARDED_FOR, httpRequest.getHeader("X-Forwarded-For"));
for(String paramName : parameterNames){
- MDC.put(paramName,httpRequest.getParameter(paramName));
+ nullSafePut(paramName,httpRequest.getParameter(paramName));
}
for(String headerName :headerNames){
- MDC.put(headerName, httpRequest.getHeader(headerName));
+ nullSafePut(headerName, httpRequest.getHeader(headerName));
}
Cookie[] cookies = httpRequest.getCookies();
if(cookies != null){
for(Cookie c : cookies){
if(cookieNames.contains(c.getName())){
- MDC.put(c.getName(),c.getValue());
+ nullSafePut(c.getName(),c.getValue());
}
}
}
@@ -211,6 +211,12 @@
}
}
+ private void nullSafePut(String key,String value){
+ if(key != null && value != null){
+ MDC.put(key,value);
+ }
+ }
+
private static Set<String> toTrimmedValues(Map<String,Object> config,String propName){
String[] values = PropertiesUtil.toStringArray(config.get(propName),EMPTY_VALUE);
Set<String> result = new HashSet<String>(values.length);
diff --git a/src/main/java/org/apache/sling/extensions/mdc/internal/SlingMDCFilter.java b/src/main/java/org/apache/sling/extensions/mdc/internal/SlingMDCFilter.java
index 9b3044b..1b3c1a5 100644
--- a/src/main/java/org/apache/sling/extensions/mdc/internal/SlingMDCFilter.java
+++ b/src/main/java/org/apache/sling/extensions/mdc/internal/SlingMDCFilter.java
@@ -37,7 +37,6 @@
private static final String[] DEFAULT_KEY_NAMES = {
SLING_USER,
- JCR_SESSION_ID
};
public void init(FilterConfig filterConfig) throws ServletException {
@@ -67,11 +66,6 @@
if(rr.getUserID() != null){
MDC.put(SLING_USER,rr.getUserID());
}
-
- Session session = rr.adaptTo(Session.class);
- if(session != null){
- MDC.put(JCR_SESSION_ID,session.toString());
- }
}
public void destroy() {