From: markt Date: Sun, 6 Feb 2011 20:30:38 +0000 (+0000) Subject: It isn't working. Add some debug logging. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=f23fd3966da24a9e86876acdb227f0d804675406;p=tomcat7.0 It isn't working. Add some debug logging. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1067747 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/catalina/valves/CrawlerSessionManagerValve.java b/java/org/apache/catalina/valves/CrawlerSessionManagerValve.java index e4fc4b500..6af847d16 100644 --- a/java/org/apache/catalina/valves/CrawlerSessionManagerValve.java +++ b/java/org/apache/catalina/valves/CrawlerSessionManagerValve.java @@ -31,6 +31,8 @@ import javax.servlet.http.HttpSession; import org.apache.catalina.LifecycleException; import org.apache.catalina.connector.Request; import org.apache.catalina.connector.Response; +import org.apache.juli.logging.Log; +import org.apache.juli.logging.LogFactory; /** * Web crawlers can trigger the creation of many thousands of sessions as they @@ -41,6 +43,9 @@ import org.apache.catalina.connector.Response; */ public class CrawlerSessionManagerValve extends ValveBase { + private static final Log log = + LogFactory.getLog(CrawlerSessionManagerValve.class); + private Map uaIpSessionInfo = new ConcurrentHashMap(); @@ -110,6 +115,12 @@ public class CrawlerSessionManagerValve extends ValveBase { SessionInfo sessionInfo = null; String clientIp = null; + if (log.isDebugEnabled()) { + log.debug(request.hashCode() + ": ClientIp=" + + request.getRemoteAddr() + ", RequestedSessionId=" + + request.getRequestedSessionId()); + } + // If the incoming request has a session ID, no action is required if (request.getRequestedSessionId() == null) { @@ -117,10 +128,21 @@ public class CrawlerSessionManagerValve extends ValveBase { Enumeration uaHeaders = request.getHeaders("user-agent"); while (!isBot && uaMatcher != null && uaHeaders.hasMoreElements()) { + String uaHeader = uaHeaders.nextElement(); uaMatcher.reset(uaHeader); + + if (log.isDebugEnabled()) { + log.debug(request.hashCode() + ": UserAgent=" + uaHeader); + } + if (uaMatcher.matches()) { isBot = true; + + if (log.isDebugEnabled()) { + log.debug(request.hashCode() + + ": Bot found. UserAgent=" + uaHeader); + } } } @@ -130,6 +152,11 @@ public class CrawlerSessionManagerValve extends ValveBase { sessionInfo = uaIpSessionInfo.get(clientIp); if (sessionInfo != null) { request.setRequestedSessionId(sessionInfo.getSessionId()); + + if (log.isDebugEnabled()) { + log.debug(request.hashCode() + + ": SessionID=" + sessionInfo.getSessionId()); + } } } } @@ -143,9 +170,20 @@ public class CrawlerSessionManagerValve extends ValveBase { if (s != null) { uaIpSessionInfo.put(clientIp, new SessionInfo(s.getId())); s.setMaxInactiveInterval(sessionInactiveInterval); + + if (log.isDebugEnabled()) { + log.debug(request.hashCode() + + ": New bot session. SessionID=" + s.getId()); + } } } else { sessionInfo.access(); + + if (log.isDebugEnabled()) { + log.debug(request.hashCode() + + ": Bot session accessed. SessionID=" + + sessionInfo.getSessionId()); + } } } }