Author: michiel
Date: 2009-09-23 14:37:12 +0200 (Wed, 23 Sep 2009)
New Revision: 38807

Modified:
   mmbase/trunk/core/src/main/java/org/mmbase/framework/FrameworkFilter.java
Log:
avoid adding too much X-Powered-By headers

Modified: 
mmbase/trunk/core/src/main/java/org/mmbase/framework/FrameworkFilter.java
===================================================================
--- mmbase/trunk/core/src/main/java/org/mmbase/framework/FrameworkFilter.java   
2009-09-23 12:19:54 UTC (rev 38806)
+++ mmbase/trunk/core/src/main/java/org/mmbase/framework/FrameworkFilter.java   
2009-09-23 12:37:12 UTC (rev 38807)
@@ -50,7 +50,7 @@
     /**
      * MMBase needs to be started first to be able to load config
      */
-    private static MMBase mmbase;
+    private MMBase mmbase;
     private Thread initThread;
 
     /**
@@ -86,7 +86,7 @@
 
     public void setMMBase(MMBase mm) {
         mmbase = mm;
-        // logging is not completey initialized, replace logger instance too
+        // logging is not coxmpletey initialized, replace logger instance too
         log = Logging.getLoggerInstance(FrameworkFilter.class);
     }
 
@@ -162,6 +162,13 @@
         try {
 
             if (request instanceof HttpServletRequest) {
+
+                if (mmbase == null) {
+                    if (log.isDebugEnabled()) log.debug("Still waiting for 
MMBase (not initialized)");
+                    chained++;
+                    chain.doFilter(request, response);
+                    return;
+                }
                 HttpServletRequest req = (HttpServletRequest) request;
                 HttpServletResponse res = (HttpServletResponse) response;
                 String ip = req.getHeader("X-Forwarded-For");
@@ -169,16 +176,8 @@
                     ip = req.getRemoteAddr();
                 }
                 Logging.getMDC().put("IP", ip);
-                res.addHeader("X-Powered-By", org.mmbase.Version.get());
 
-                if (mmbase == null) {
-                    if (log.isDebugEnabled()) log.debug("Still waiting for 
MMBase (not initialized)");
-                    chained++;
-                    chain.doFilter(request, response);
-                    return;
-                }
 
-
                 if (log.isTraceEnabled()) {
                     log.trace("Request URI: " + req.getRequestURI());
                     log.trace("Request URL: " + req.getRequestURL());
@@ -229,6 +228,10 @@
                     if (forwardUrl != null && !forwardUrl.equals("")) {
                         res.setHeader("X-MMBase-forward", forwardUrl);
                         req.setAttribute(PARAMS_KEY, frameworkParameters);
+                        if 
(req.getAttribute(org.mmbase.Version.class.getName()) == null) {
+                            
req.setAttribute(org.mmbase.Version.class.getName(), org.mmbase.Version.get());
+                            res.addHeader("X-Powered-By", 
org.mmbase.Version.get());
+                        }
                         /*
                          * RequestDispatcher: If the path begins with a "/" it 
is interpreted
                          * as relative to the current context root.

_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to