luehe       2003/07/21 12:05:51

  Modified:    catalina/src/share/org/apache/catalina Context.java
                        Host.java
               catalina/src/share/org/apache/catalina/core
                        StandardContext.java StandardHost.java
                        StandardWrapperValve.java mbeans-descriptors.xml
  Log:
  Added support for X-Powered-By response header, as defined by the
  Servlet 2.4 and JSP 2.0 specs.
  
  The Servlet 2.4 spec defines a special
  
    X-Powered-By: Servlet/2.4
  
  header, which containers may add to servlet-generated responses. This
  is complemented by the JSP 2.0 spec, which defines a
  
    X-Powered-By: JSP/2.0
  
  header to be added (on an optional basis) to responses utilizing JSP
  technology.
  
  The goal of these headers is to aid in gathering statistical data
  about the use of Servlet and JSP technology
  
  Revision  Changes    Path
  1.7       +27 -4     
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/Context.java
  
  Index: Context.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/Context.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- Context.java      19 May 2003 21:56:28 -0000      1.6
  +++ Context.java      21 Jul 2003 19:05:50 -0000      1.7
  @@ -427,6 +427,29 @@
       public void setWrapperClass(String wrapperClass);
   
   
  +    /**
  +     * Indicates whether the generation of an X-Powered-By response header for
  +     * servlet-generated responses is enabled or disabled for this Context.
  +     *
  +     * <p> Unless explicitly set on this Context, this method returns the
  +     * X-Powered-By setting of the Host with which this Context is associated.
  +     * 
  +     * @return true if generation of X-Powered-By response header is enabled,
  +     * false otherwise
  +     */
  +    public boolean isXpoweredBy();
  +
  +
  +    /**
  +     * Enables or disables the generation of an X-Powered-By header (with value
  +     * Servlet/2.4) for all servlet-generated responses from this Context.
  +     *
  +     * @param xpoweredBy true if generation of X-Powered-By response header is
  +     * to be enabled, false otherwise
  +     */
  +    public void setXpoweredBy(boolean xpoweredBy);
  +
  +
       // --------------------------------------------------------- Public Methods
   
   
  
  
  
  1.5       +25 -4     
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/Host.java
  
  Index: Host.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/Host.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Host.java 15 Jun 2003 13:03:11 -0000      1.4
  +++ Host.java 21 Jul 2003 19:05:50 -0000      1.5
  @@ -227,6 +227,27 @@
       public void setXmlNamespaceAware(boolean xmlNamespaceAware);
   
   
  +    /**
  +     * Indicates whether the generation of an X-Powered-By response header for
  +     * servlet-generated responses is enabled or disabled for this Host.
  +     *
  +     * @return true if generation of X-Powered-By response header is enabled,
  +     * false otherwise
  +     */
  +    public boolean isXpoweredBy();
  +
  +
  +    /**
  +     * Enables or disables the generation of an X-Powered-By header (with value
  +     * Servlet/2.4) for all servlet-generated responses from contexts
  +     * registered with this Host.
  +     *
  +     * @param xpoweredBy true if generation of X-Powered-By response header is
  +     * to be enabled, false otherwise
  +     */
  +    public void setXpoweredBy(boolean xpoweredBy);
  +
  +
       // --------------------------------------------------------- Public Methods
   
   
  
  
  
  1.72      +57 -3     
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardContext.java
  
  Index: StandardContext.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardContext.java,v
  retrieving revision 1.71
  retrieving revision 1.72
  diff -u -r1.71 -r1.72
  --- StandardContext.java      20 Jul 2003 14:52:17 -0000      1.71
  +++ StandardContext.java      21 Jul 2003 19:05:50 -0000      1.72
  @@ -276,6 +276,18 @@
       private boolean distributable = false;
   
   
  +    /*
  +     * Enables/disables generation of X-Powered-By response header
  +     */
  +    private boolean xpoweredBy;
  +
  +
  +    /*
  +     * Indicates whether setter for X-Powered-By property was explicitly called
  +     */
  +    private boolean xpoweredBySetterCalled;
  +
  +
       /**
        * The document root for this web application.
        */
  @@ -1600,7 +1612,6 @@
        * @param errorPage The error page definition to be added
        */
       public void addErrorPage(ErrorPage errorPage) {
  -
           // Validate the input parameters
           if (errorPage == null)
               throw new IllegalArgumentException
  @@ -2176,7 +2187,6 @@
        * @param errorCode Error code to look up
        */
       public ErrorPage findErrorPage(int errorCode) {
  -
           if (errorCode == 200) {
               return (okErrorPage);
           } else {
  @@ -4364,6 +4374,50 @@
               }
           }
   
  +    }
  +
  +
  +    /**
  +     * Indicates whether the generation of an X-Powered-By response header for
  +     * servlet-generated responses is enabled or disabled for this Context.
  +     *
  +     * <p> Unless explicitly set on this Context, this method returns the
  +     * X-Powered-By setting of the Host with which this Context is associated.
  +     *
  +     * @return true if generation of X-Powered-By response header is enabled,
  +     * false otherwise
  +     */
  +    public boolean isXpoweredBy() {
  +
  +     boolean ret = false; 
  +
  +     if (xpoweredBySetterCalled) {
  +         ret = this.xpoweredBy;
  +     } else {
  +         Host host = (Host) getParent();
  +         if (host != null) {
  +             ret = host.isXpoweredBy();
  +         }
  +     }
  +
  +        return ret;
  +    }
  +
  +
  +    /**
  +     * Enables or disables the generation of an X-Powered-By header (with value
  +     * Servlet/2.4) for all servlet-generated responses from this Context.
  +     *
  +     * @param xpoweredBy true if generation of X-Powered-By response header is
  +     * to be enabled, false otherwise
  +     */
  +    public void setXpoweredBy(boolean xpoweredBy) {
  +        boolean oldXpoweredBy = this.xpoweredBy;
  +        this.xpoweredBy = xpoweredBy;
  +        support.firePropertyChange("xpoweredBy",
  +                                   new Boolean(oldXpoweredBy),
  +                                   new Boolean(this.xpoweredBy));
  +     this.xpoweredBySetterCalled = true;
       }
   
   
  
  
  
  1.20      +33 -1     
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardHost.java
  
  Index: StandardHost.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardHost.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- StandardHost.java 19 Jul 2003 14:30:07 -0000      1.19
  +++ StandardHost.java 21 Jul 2003 19:05:51 -0000      1.20
  @@ -218,6 +218,12 @@
        private boolean xmlNamespaceAware = false;
   
   
  +    /*
  +     * Enables/disables generation of X-Powered-By response header
  +     */
  +    private boolean xpoweredBy;
  +
  +
       // ------------------------------------------------------------- Properties
   
   
  @@ -554,6 +560,32 @@
   
           this.workDir = workDir;
       }
  +
  +
  +    /**
  +     * Indicates whether the generation of an X-Powered-By response header for
  +     * servlet-generated responses is enabled or disabled for this Host.
  +     *
  +     * @return true if generation of X-Powered-By response header is enabled,
  +     * false otherwise
  +     */
  +    public boolean isXpoweredBy() {
  +     return xpoweredBy;
  +    }
  +
  +
  +    /**
  +     * Enables or disables the generation of an X-Powered-By header (with value
  +     * Servlet/2.4) for all servlet-generated responses from contexts
  +     * registered with this Host.
  +     *
  +     * @param xpoweredBy true if generation of X-Powered-By response header is
  +     * to be enabled, false otherwise
  +     */
  +    public void setXpoweredBy(boolean xpoweredBy) {
  +     this.xpoweredBy = xpoweredBy;
  +    }
  +
   
       // --------------------------------------------------------- Public Methods
   
  
  
  
  1.17      +4 -2      
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardWrapperValve.java
  
  Index: StandardWrapperValve.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/StandardWrapperValve.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- StandardWrapperValve.java 18 Jul 2003 22:26:15 -0000      1.16
  +++ StandardWrapperValve.java 21 Jul 2003 19:05:51 -0000      1.17
  @@ -85,7 +85,6 @@
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
   
  -
   /**
    * Valve that implements the default basic behavior for the
    * <code>StandardWrapper</code> container implementation.
  @@ -247,6 +246,9 @@
           // Call the filter chain for this request
           // NOTE: This also calls the servlet's service() method
           try {
  +         if (request.getContext().isXpoweredBy()) {
  +             hres.addHeader("X-Powered-By", "Servlet/2.4");
  +         }
               String jspFile = wrapper.getJspFile();
               if (jspFile != null)
                   hreq.setAttribute(Globals.JSP_FILE_ATTR, jspFile);
  
  
  
  1.18      +8 -0      
jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/mbeans-descriptors.xml
  
  Index: mbeans-descriptors.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/catalina/src/share/org/apache/catalina/core/mbeans-descriptors.xml,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- mbeans-descriptors.xml    15 Jun 2003 13:03:35 -0000      1.17
  +++ mbeans-descriptors.xml    21 Jul 2003 19:05:51 -0000      1.18
  @@ -110,6 +110,10 @@
       <attribute name="crossContext"
                  description="Should we allow the ServletContext.getContext() method 
to access the context of other web applications in this server?"
                  type="boolean"/>
  +
  +    <attribute name="xpoweredBy"
  +               description="Enables/disables X-Powered-By header for 
servlet-generated responses"
  +               type="boolean"/>
         
       <attribute name="debug"
                  description="The debugging detail level for this component"
  @@ -477,6 +481,10 @@
         
       <attribute name="xmlValidation"
                  description="Attribute value used to turn on/off XML validation"
  +               type="boolean"/>
  +
  +    <attribute name="xpoweredBy"
  +               description="Enables/disables X-Powered-By header for 
servlet-generated responses"
                  type="boolean"/>
         
       <attribute name="children"
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to