Verhalten bei Seiten mit in die URL's enkodierter Session-ID korrigiert
[percentcodec] / cachecontrol / src / main / java / de / halbekunst / juplo / cachecontrol / CacheControlInterceptor.java
index 5133044..641bda3 100644 (file)
@@ -52,8 +52,23 @@ public class CacheControlInterceptor implements HandlerInterceptor {
       if (!cacheable.isGenerateCacheHeaders(request))
         return true;
 
+      String url = null;
+      if (log.isDebugEnabled()) {
+        if (request.getQueryString() == null) {
+          url = request.getRequestURI();
+        }
+        else {
+          StringBuilder builder = new StringBuilder();
+          builder.append(request.getRequestURI());
+          builder.append('?');
+          builder.append(request.getQueryString());
+          url = builder.toString();
+        }
+      }
+
       int cacheSeconds = cacheable.getCacheSeconds(request);
       if (cacheSeconds < 0) {
+        log.debug("{}: caching disabled!", url);
         response.setDateHeader(HEADER_DATE, now);
         response.setDateHeader(HEADER_EXPIRES, 0);
         response.addHeader(HEADER_PRAGMA, "no-cache");
@@ -106,22 +121,25 @@ public class CacheControlInterceptor implements HandlerInterceptor {
          * negative Werte für Last-Modified zurückliefert.
          */
         if (log.isDebugEnabled())
-          log.debug("Not modified since {}: {}", new Date(ifModifiedSince), request.getRequestURI());
+          log.debug("{}: Not modified since {}", url, new Date(ifModifiedSince));
 
         if (ifNoneMatch == null) {
           /** Neue Anfrage oder HTTP/1.0 Client! */
-          log.debug("ETag nicht gesetzt: 304 {}", request.getRequestURI());
+          log.debug("{}: ETag nicht gesetzt -> 304", url);
           response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
           return false;
         }
       }
 
       if (ifNoneMatch != null && ifNoneMatch.equals(eTag)) {
-        log.debug("{}: ETag {} not changed -> 304 ", request.getRequestURI(), ifNoneMatch);
+        log.debug("{}: ETag {} not changed -> 304 ", url, ifNoneMatch);
         response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);
         return false;
       }
 
+
+      log.debug("{}: first up!", url);
+
       /** HTTP/1.1-Caching-Header richtig setzen!! */
       response.setDateHeader(HEADER_LAST_MODIFIED, lastModified);
 
@@ -133,7 +151,6 @@ public class CacheControlInterceptor implements HandlerInterceptor {
        * Browser gecached werden!
        */
       if (request.isRequestedSessionIdFromURL()) {
-        cacheSeconds = 0;
         cacheControl.put("private", null);
       }
 
@@ -160,7 +177,7 @@ public class CacheControlInterceptor implements HandlerInterceptor {
          * <code>Expires</code>-Header für HTTP/1.0-Clients setzen.
          */
         cacheControl.put("max-age", Integer.toString(cacheSeconds));
-        response.setDateHeader(HEADER_EXPIRES, (now + cacheSeconds * 1000));
+        response.setDateHeader(HEADER_EXPIRES, (now + (long)cacheSeconds * 1000));
       }
 
       StringBuilder builder = new StringBuilder();