amyroh      02/04/30 10:47:26

  Modified:    catalina/src/share/org/apache/catalina/mbeans
                        StandardServerMBean.java mbeans-descriptors.xml
  Added:       catalina/src/share/org/apache/catalina/mbeans
                        ConnectorMBean.java
  Log:
  Add ServerSocketFactory properties to HttpsConnector.
  
  Revision  Changes    Path
  1.12      +5 -4      
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/StandardServerMBean.java
  
  Index: StandardServerMBean.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/StandardServerMBean.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- StandardServerMBean.java  30 Apr 2002 03:25:22 -0000      1.11
  +++ StandardServerMBean.java  30 Apr 2002 17:47:26 -0000      1.12
  @@ -1,7 +1,7 @@
   /*
  - * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/StandardServerMBean.java,v
 1.11 2002/04/30 03:25:22 amyroh Exp $
  - * $Revision: 1.11 $
  - * $Date: 2002/04/30 03:25:22 $
  + * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/StandardServerMBean.java,v
 1.12 2002/04/30 17:47:26 amyroh Exp $
  + * $Revision: 1.12 $
  + * $Date: 2002/04/30 17:47:26 $
    *
    * ====================================================================
    *
  @@ -109,7 +109,7 @@
    * <code>org.apache.catalina.core.StandardServer</code> component.</p>
    *
    * @author Amy Roh
  - * @version $Revision: 1.11 $ $Date: 2002/04/30 03:25:22 $
  + * @version $Revision: 1.12 $ $Date: 2002/04/30 17:47:26 $
    */
   
   public class StandardServerMBean extends BaseModelMBean {
  @@ -765,6 +765,7 @@
           }          
           writer.println("</ResourceParams>");
           
  +        // Store the ending of this element
           for (int i = 0; i < indent; i++) {
               writer.print(' ');
           }          
  
  
  
  1.51      +29 -9     
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/mbeans-descriptors.xml
  
  Index: mbeans-descriptors.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/mbeans-descriptors.xml,v
  retrieving revision 1.50
  retrieving revision 1.51
  diff -u -r1.50 -r1.51
  --- mbeans-descriptors.xml    30 Apr 2002 03:25:22 -0000      1.50
  +++ mbeans-descriptors.xml    30 Apr 2002 17:47:26 -0000      1.51
  @@ -6,7 +6,7 @@
   <!--
        Descriptions of JMX MBeans for Catalina
   
  -     $Id: mbeans-descriptors.xml,v 1.50 2002/04/30 03:25:22 amyroh Exp $
  +     $Id: mbeans-descriptors.xml,v 1.51 2002/04/30 17:47:26 amyroh Exp $
    -->
   
   <mbeans-descriptors>
  @@ -128,7 +128,7 @@
   
   
   <mbean         name="CoyoteConnector"
  -            className="org.apache.catalina.mbeans.ClassNameMBean"
  +            className="org.apache.catalina.mbeans.ConnectorMBean"
             description="Implementation of a Coyote connector"
                  domain="Catalina"
                   group="Connector"
  @@ -151,6 +151,10 @@
                    type="java.lang.String"
               writeable="false"/>
   
  +    <attribute   name="clientAuth"
  +          description="Should we require client authentication?"
  +                 type="boolean"/>
  +
       <attribute   name="connectionTimeout"
             description="Timeout value on the incoming connection"
                    type="int"/>
  @@ -164,17 +168,17 @@
             description="The debugging detail level for this component"
                    type="int"/>
   
  -    <attribute   name="secret"
  -          description="Authentication secret (I guess ... not in Javadocs)"
  -                 type="java.lang.String"/>
  -
       <attribute   name="enableLookups"
             description="The 'enable DNS lookups' flag for this Connector"
                    type="boolean"/>
   
  -    <attribute   name="redirectPort"
  -          description="The redirect port for non-SSL to SSL redirects"
  -                 type="int"/>
  +    <attribute   name="keystoreFile"
  +          description="Pathname to the key store file to be used"
  +                 type="java.lang.String"/>  
  +
  +    <attribute   name="keystorePass"
  +          description="Password for accessing the key store file"
  +                 type="java.lang.String"/>  
   
       <attribute   name="maxProcessors"
             description="The maximum number of processors allowed"
  @@ -187,10 +191,26 @@
   
       <attribute   name="port"
             description="The port number on which we listen for ajp13 requests"
  +             type="int"/>
  +
  +    <attribute   name="proxyName"
  +          description="Ther Server name to which we should pretend requests to this 
Connector"
  +                 type="java.lang.String"/>             
  +  
  +    <attribute   name="proxyPort"
  +          description="Ther Server port to which we should pretend requests to this 
Connector"
  +                 type="java.lang.String"/>  
  +
  +    <attribute   name="redirectPort"
  +          description="The redirect port for non-SSL to SSL redirects"
                    type="int"/>
   
       <attribute   name="scheme"
             description="Protocol name for this Connector (http, https)"
  +                 type="java.lang.String"/>
  +
  +    <attribute   name="secret"
  +          description="Authentication secret (I guess ... not in Javadocs)"
                    type="java.lang.String"/>
   
       <attribute   name="secure"
  
  
  
  1.1                  
jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/ConnectorMBean.java
  
  Index: ConnectorMBean.java
  ===================================================================
  /*
   * $Header: 
/home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/mbeans/ConnectorMBean.java,v
 1.1 2002/04/30 17:47:26 amyroh Exp $
   * $Revision: 1.1 $
   * $Date: 2002/04/30 17:47:26 $
   *
   * ====================================================================
   *
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 1999 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *    any, must include the following acknowlegement:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowlegement may appear in the software itself,
   *    if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Tomcat", and "Apache Software
   *    Foundation" must not be used to endorse or promote products derived
   *    from this software without prior written permission. For written
   *    permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Group.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   * [Additional notices, if required by prior licensing conditions]
   *
   */
  
  package catalina.src.share.org.apache.catalina.mbeans;
  
  import java.lang.reflect.Method;
  import javax.management.MBeanException;
  import javax.management.RuntimeOperationsException;
  import org.apache.catalina.Connector;
  import org.apache.catalina.Service;
  import org.apache.commons.modeler.BaseModelMBean;
  
  
  /**
   * <p>A <strong>ModelMBean</strong> implementation for the
   * <code>org.apache.coyote.tomcat4.CoyoteConnector</code> component.</p>
   *
   * @author Amy Roh
   * @version $Revision: 1.1 $ $Date: 2002/04/30 17:47:26 $
   */
  
  public class ConnectorMBean extends BaseModelMBean {
  
  
      // ----------------------------------------------------------- Constructors
  
  
      /**
       * Construct a <code>ModelMBean</code> with default
       * <code>ModelMBeanInfo</code> information.
       *
       * @exception MBeanException if the initializer of an object
       *  throws an exception
       * @exception RuntimeOperationsException if an IllegalArgumentException
       *  occurs
       */
      public ConnectorMBean()
          throws MBeanException, RuntimeOperationsException {
  
          super();
  
      }
  
  
      // ------------------------------------------------------------- Attributes
  
  
  
      // ------------------------------------------------------------- Operations
  
      /**
       * Return Client authentication info
       *
       * @exception Exception if an MBean cannot be created or registered
       */
      public boolean getClientAuth()
          throws Exception {
              
          Object clientAuthObj = null;
          Class coyoteConnectorCls = 
Class.forName("org.apache.coyote.tomcat4.CoyoteConnector");
          if (coyoteConnectorCls.isInstance(this.resource)) {
              // get factory
              Class partypes1 [] = new Class[1];
              Method meth1 = coyoteConnectorCls.getMethod("getFactory", partypes1);
              Object arglist1[] = new Object[1];
              Object factory = meth1.invoke(this.resource, arglist1);
              Class coyoteServerSocketFactoryCls = 
Class.forName("org.apache.coyote.tomcat4.CoyoteServerSocketFactory");
              if (coyoteServerSocketFactoryCls.isInstance(factory)) {
                  // get clientAuth
                  Class partypes2 [] = new Class[1];
                  Method meth2 = 
coyoteServerSocketFactoryCls.getMethod("getClientAuth", partypes2);
                  Object arglist2[] = new Object[1];
                  clientAuthObj = meth2.invoke(this.resource, arglist2);
              }
             
          }    
          if (clientAuthObj instanceof Boolean)
              return ((Boolean)clientAuthObj).booleanValue();
          else return false;
      }
      
      /**
       * Set Client authentication info
       *
       * @exception Exception if an MBean cannot be created or registered
       */
      public void setClientAuth(boolean clientAuth)
          throws Exception {
              
          Class coyoteConnectorCls = 
Class.forName("org.apache.coyote.tomcat4.CoyoteConnector");
          if (coyoteConnectorCls.isInstance(this.resource)) {
              // get factory
              Class partypes1 [] = new Class[1];
              Method meth1 = coyoteConnectorCls.getMethod("getFactory", partypes1);
              Object arglist1[] = new Object[1];
              Object factory = meth1.invoke(this.resource, arglist1);
              Class coyoteServerSocketFactoryCls = 
Class.forName("org.apache.coyote.tomcat4.CoyoteServerSocketFactory");
              if (coyoteServerSocketFactoryCls.isInstance(factory)) {
                  // set clientAuth
                  Class partypes2 [] = new Class[1];
                  partypes2[0] = Boolean.TYPE;
                  Method meth2 = 
coyoteServerSocketFactoryCls.getMethod("setClientAuth", partypes2);
                  Object arglist2[] = new Object[1];
                  arglist2[0] = new Boolean(clientAuth);
                  meth2.invoke(this.resource, arglist2);
              }
             
          }    
      }
  
      
      /**
       * Return keystoreFile
       *
       * @exception Exception if an MBean cannot be created or registered
       */
      public String getKeystoreFile()
          throws Exception {
              
          Object keystoreFileObj = null;
          Class coyoteConnectorCls = 
Class.forName("org.apache.coyote.tomcat4.CoyoteConnector");
          if (coyoteConnectorCls.isInstance(this.resource)) {
              // get keystoreFile
              Class partypes1 [] = new Class[1];
              Method meth1 = coyoteConnectorCls.getMethod("getKeystoreFile", 
partypes1);
              Object arglist1[] = new Object[1];
              Object factory = meth1.invoke(this.resource, arglist1);
              Class coyoteServerSocketFactoryCls = 
Class.forName("org.apache.coyote.tomcat4.CoyoteServerSocketFactory");
              if (coyoteServerSocketFactoryCls.isInstance(factory)) {
                  // get keystoreFile
                  Class partypes2 [] = new Class[1];
                  Method meth2 = 
coyoteServerSocketFactoryCls.getMethod("getKeystoreFile", partypes2);
                  Object arglist2[] = new Object[1];
                  keystoreFileObj = meth2.invoke(this.resource, arglist2);
              }
             
          }    
          return keystoreFileObj.toString();
      }
      
      
      /**
       * Set keystoreFile
       *
       * @exception Exception if an MBean cannot be created or registered
       */
      public void setKeystoreFile(String keystoreFile)
          throws Exception {
              
          Class coyoteConnectorCls = 
Class.forName("org.apache.coyote.tomcat4.CoyoteConnector");
          if (coyoteConnectorCls.isInstance(this.resource)) {
              // get factory
              Class partypes1 [] = new Class[1];
              Method meth1 = coyoteConnectorCls.getMethod("getFactory", partypes1);
              Object arglist1[] = new Object[1];
              Object factory = meth1.invoke(this.resource, arglist1);
              Class coyoteServerSocketFactoryCls = 
Class.forName("org.apache.coyote.tomcat4.CoyoteServerSocketFactory");
              if (coyoteServerSocketFactoryCls.isInstance(factory)) {
                  // set keystoreFile
                  Class partypes2 [] = new Class[1];
                  String str = new String();
                  partypes2[0] = str.getClass();
                  Method meth2 = 
coyoteServerSocketFactoryCls.getMethod("setKeystoreFile", partypes2);
                  Object arglist2[] = new Object[1];
                  arglist2[0] = keystoreFile;
                  meth2.invoke(this.resource, arglist2);
              }
             
          }    
      }
      
      
      /**
       * Return keystorePass
       *
       * @exception Exception if an MBean cannot be created or registered
       */
      public String getKeystorePass()
          throws Exception {
              
          Object keystorePassObj = null;
          Class coyoteConnectorCls = 
Class.forName("org.apache.coyote.tomcat4.CoyoteConnector");
          if (coyoteConnectorCls.isInstance(this.resource)) {
              // get factory
              Class partypes1 [] = new Class[1];
              Method meth1 = coyoteConnectorCls.getMethod("getKeystoreFile", 
partypes1);
              Object arglist1[] = new Object[1];
              Object factory = meth1.invoke(this.resource, arglist1);
              Class coyoteServerSocketFactoryCls = 
Class.forName("org.apache.coyote.tomcat4.CoyoteServerSocketFactory");
              if (coyoteServerSocketFactoryCls.isInstance(factory)) {
                  // get keystorePass
                  Class partypes2 [] = new Class[1];
                  Method meth2 = 
coyoteServerSocketFactoryCls.getMethod("getKeystorePass", partypes2);
                  Object arglist2[] = new Object[1];
                  keystorePassObj = meth2.invoke(this.resource, arglist2);
              }
             
          }    
          return keystorePassObj.toString();
      }
      
      
      /**
       * Set keystorePass
       *
       * @exception Exception if an MBean cannot be created or registered
       */
      public void setKeystorePass(String keystorePass)
          throws Exception {
              
          Class coyoteConnectorCls = 
Class.forName("org.apache.coyote.tomcat4.CoyoteConnector");
          if (coyoteConnectorCls.isInstance(this.resource)) {
              // get factory
              Class partypes1 [] = new Class[1];
              Method meth1 = coyoteConnectorCls.getMethod("getFactory", partypes1);
              Object arglist1[] = new Object[1];
              Object factory = meth1.invoke(this.resource, arglist1);
              Class coyoteServerSocketFactoryCls = 
Class.forName("org.apache.coyote.tomcat4.CoyoteServerSocketFactory");
              if (coyoteServerSocketFactoryCls.isInstance(factory)) {
                  // set keystorePass
                  Class partypes2 [] = new Class[1];
                  String str = new String();
                  partypes2[0] = str.getClass();
                  Method meth2 = 
coyoteServerSocketFactoryCls.getMethod("setKeystorePass", partypes2);
                  Object arglist2[] = new Object[1];
                  arglist2[0] = keystorePass;
                  meth2.invoke(this.resource, arglist2);
              }
          }    
      }
      
      
  }
  
  
  

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

Reply via email to