cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp WarpConnector.java
pier01/07/19 17:01:00 Modified:catalina/src/share/org/apache/catalina/connector/warp WarpConnector.java Log: New WARP implementation from Jakarta-Tomcat-Connectors Revision ChangesPath 1.12 +356 -233 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp/WarpConnector.java Index: WarpConnector.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp/WarpConnector.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- WarpConnector.java2001/05/09 23:42:17 1.11 +++ WarpConnector.java2001/07/20 00:01:00 1.12 @@ -2,7 +2,7 @@ * * * The Apache Software License, Version 1.1 * * * - * Copyright (c) 1999, 2000 The Apache Software Foundation. * + * Copyright (c) 1999-2001 The Apache Software Foundation. * * All rights reserved.* * * * = * @@ -56,193 +56,171 @@ * = */ package org.apache.catalina.connector.warp; -import java.io.*; -import java.net.*; -import org.apache.catalina.Container; +import java.io.IOException; +import java.net.InetAddress; +import java.net.ServerSocket; +import java.net.Socket; +import java.util.Random; +import java.util.Vector; + import org.apache.catalina.Connector; +import org.apache.catalina.Container; +import org.apache.catalina.Context; +import org.apache.catalina.Lifecycle; +import org.apache.catalina.Lifecycle; +import org.apache.catalina.LifecycleException; +import org.apache.catalina.LifecycleListener; +import org.apache.catalina.Logger; import org.apache.catalina.Request; import org.apache.catalina.Response; import org.apache.catalina.net.DefaultServerSocketFactory; import org.apache.catalina.net.ServerSocketFactory; -import org.apache.catalina.Lifecycle; -import org.apache.catalina.LifecycleEvent; -import org.apache.catalina.LifecycleException; -import org.apache.catalina.LifecycleListener; import org.apache.catalina.util.LifecycleSupport; -import org.apache.catalina.connector.HttpRequestBase; -import org.apache.catalina.connector.HttpResponseBase; -/** - * - * - * @author a href=mailto:[EMAIL PROTECTED];Pier Fumagalli/a - * @author Copyright copy; 1999, 2000 a href=http://www.apache.org;The - * Apache Software Foundation. - * @version CVS $Id: WarpConnector.java,v 1.11 2001/05/09 23:42:17 craigmcc Exp $ - */ public class WarpConnector implements Connector, Lifecycle, Runnable { -// -- CONSTANTS +/* */ +/* Instance variables */ +/* */ + +/* */ +/* Local variables */ + +/** The running thread accepting connections */ +private Thread thread=null; +/** The server socket. */ +private ServerSocket server=null; +/** Our codeWarpLogger/code. */ +private WarpLogger logger=null; +/** Our list of deployed web applications. */ +private Vector applications=new Vector(); +/** The unique ID of this connector instance. */ +protected int uniqueId=-1; -/** Our debug flag status (Used to compile out debugging information). */ -private static final boolean DEBUG=WarpDebug.DEBUG; -/** The descriptive information related to this implementation. */ -private static final String info=WarpConnector/+WarpConstants.VERSION; +/* */ +/* Bean variables */ -// LOCAL VARIABLES - -/** The lifecycle event support for this component. */ -private LifecycleSupport lifecycle=null; -/** The server socket factory for this connector. */ -private ServerSocket socket=null; -/** Wether the start() method was called or not. */ -private boolean started=false; -/** The accept count for the server socket. */ -private int count = 10; -/** Should we enable DNS lookups? */ -private boolean enableLookups = false;
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp WarpConnector.java
craigmcc01/05/09 16:42:19 Modified:catalina/src/conf server.xml catalina/src/share/org/apache/catalina Connector.java catalina/src/share/org/apache/catalina/authenticator AuthenticatorBase.java catalina/src/share/org/apache/catalina/connector/http HttpConnector.java catalina/src/share/org/apache/catalina/connector/http10 HttpConnector.java catalina/src/share/org/apache/catalina/connector/warp WarpConnector.java Log: [Servlet 2.3 PFD2, Section 12.8] If a request is being processed on a non-SSL connection, and is subject to a security-constraint that includes a transport guarantee requiring SSL, automatically redirect the request to a configurable port number (attached to the same Tomcat instance) that is listening on SSL. PR: BugTRAQ #4410795 Revision ChangesPath 1.25 +2 -2 jakarta-tomcat-4.0/catalina/src/conf/server.xml Index: server.xml === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/conf/server.xml,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- server.xml2001/05/08 05:58:43 1.24 +++ server.xml2001/05/09 23:42:04 1.25 @@ -51,7 +51,7 @@ !-- Define a non-SSL HTTP/1.1 Connector on port 8080 -- Connector className=org.apache.catalina.connector.http.HttpConnector port=8080 minProcessors=5 maxProcessors=75 - enableLookups=true + enableLookups=true redirectPort=8443 acceptCount=10 debug=0 connectionTimeout=6/ !-- Note : To disable connection timeouts, set connectionTimeout value to -1 -- @@ -81,7 +81,7 @@ !-- Connector className=org.apache.catalina.connector.http10.HttpConnector port=8082 minProcessors=5 maxProcessors=75 - enableLookups=true + enableLookups=true redirectPort=8443 acceptCount=10 debug=0/ -- 1.5 +20 -4 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/Connector.java Index: Connector.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/Connector.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- Connector.java2001/05/08 05:58:43 1.4 +++ Connector.java2001/05/09 23:42:07 1.5 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/Connector.java,v 1.4 2001/05/08 05:58:43 craigmcc Exp $ - * $Revision: 1.4 $ - * $Date: 2001/05/08 05:58:43 $ + * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/Connector.java,v 1.5 2001/05/09 23:42:07 craigmcc Exp $ + * $Revision: 1.5 $ + * $Date: 2001/05/09 23:42:07 $ * * * @@ -117,7 +117,7 @@ * normative. * * @author Craig R. McClanahan - * @version $Revision: 1.4 $ $Date: 2001/05/08 05:58:43 $ + * @version $Revision: 1.5 $ $Date: 2001/05/09 23:42:07 $ */ public interface Connector { @@ -174,6 +174,22 @@ * Return descriptive information about this Connector implementation. */ public String getInfo(); + + +/** + * Return the port number to which a request should be redirected if + * it comes in on a non-SSL port and is subject to a security constraint + * with a transport guarantee that requires SSL. + */ +public int getRedirectPort(); + + +/** + * Set the redirect port number. + * + * @param redirectPort The redirect port number (non-SSL to SSL) + */ +public void setRedirectPort(int redirectPort); /** 1.11 +98 -32 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/authenticator/AuthenticatorBase.java Index: AuthenticatorBase.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/authenticator/AuthenticatorBase.java,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- AuthenticatorBase.java2001/03/30 21:38:47 1.10 +++ AuthenticatorBase.java2001/05/09 23:42:10 1.11 @@ -1,7 +1,7 @@ /* - * $Header: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/authenticator/AuthenticatorBase.java,v 1.10 2001/03/30 21:38:47 craigmcc Exp $ - * $Revision: 1.10 $ - * $Date: 2001/03/30 21:38:47 $ + * $Header:
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp WarpConnector.java
craigmcc01/05/07 21:12:41 Modified:catalina build.xml catalina/src/conf server.xml catalina/src/share/org/apache/catalina/connector/warp WarpConnector.java Log: Re-enable compiling and starting the Java side of the warp connector. Revision ChangesPath 1.38 +1 -4 jakarta-tomcat-4.0/catalina/build.xml Index: build.xml === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/build.xml,v retrieving revision 1.37 retrieving revision 1.38 diff -u -r1.37 -r1.38 --- build.xml 2001/04/27 00:33:59 1.37 +++ build.xml 2001/05/08 04:12:37 1.38 @@ -106,7 +106,6 @@ classpath=${parser.jar}:${jaxp.jar}:${regexp.jar}:${servlet.jar}:${jcert.jar}:${jnet.jar}:${jsse.jar}:${jmxri.jar} deprecation=off debug=on optimize=off target=1.2 excludes=**/CVS/** - exclude name=**/warp/*.java/ exclude name=**/factory/Tyrex*.java unless=tyrex.present / exclude name=**/factory/ResourceFactory.java @@ -233,11 +232,9 @@ jar jarfile=${catalina.deploy}/server/lib/catalina.jar basedir=${catalina.build}/classes excludes=**/org/apache/naming/**,**/connector/warp/**,org/apache/catalina/startup/Bootstrap.class,org/apache/catalina/loader/StandardClassLoader*.class,org/apache/catalina/loader/Extension.class,org/apache/catalina/loader/Reloader.class / -!-- jar jarfile=${catalina.deploy}/server/lib/warp.jar basedir=${catalina.build}/classes includes=**/connector/warp/** / --- /target @@ -280,7 +277,7 @@ jar jarfile=${catalina.dist}/server/lib/catalina.jar basedir=${catalina.build}/classes excludes=**/org/apache/naming/**,**/connector/warp/** / -jar jarfile=${catalina.dist}/server/lib/catalina.jar +jar jarfile=${catalina.dist}/server/lib/warp.jar basedir=${catalina.build}/classes includes=**/connector/warp/** / 1.23 +1 -14 jakarta-tomcat-4.0/catalina/src/conf/server.xml Index: server.xml === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/conf/server.xml,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- server.xml2001/05/08 03:37:01 1.22 +++ server.xml2001/05/08 04:12:38 1.23 @@ -297,40 +297,27 @@ !-- Define an Apache-Connector Service -- -!-- Service name=Tomcat-Apache --- -!-- Connector className=org.apache.catalina.connector.warp.WarpConnector port=8008 minProcessors=5 maxProcessors=75 + disableLookups=false acceptCount=10 debug=0/ --- !-- Replace localhost with what your Apache ServerName is set to -- -!-- Engine className=org.apache.catalina.connector.warp.WarpEngine name=Apache defaultHost=localhost debug=0 appBase=webapps --- !-- Global logger unless overridden at lower levels -- -!-- Logger className=org.apache.catalina.logger.FileLogger prefix=apache_log. suffix=.txt timestamp=true/ --- !-- Because this Realm is here, an instance will be shared globally -- -!-- Realm className=org.apache.catalina.realm.MemoryRealm / --- -!-- /Engine --- -!-- /Service --- /Server 1.9 +17 -1 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp/WarpConnector.java Index: WarpConnector.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp/WarpConnector.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- WarpConnector.java2001/01/24 23:10:43 1.8 +++ WarpConnector.java2001/05/08 04:12:40 1.9 @@ -78,7 +78,7 @@ * @author a href=mailto:[EMAIL PROTECTED];Pier Fumagalli/a * @author Copyright copy; 1999, 2000 a href=http://www.apache.org;The * Apache Software Foundation. - * @version CVS $Id: WarpConnector.java,v 1.8 2001/01/24 23:10:43 pier Exp $ + * @version CVS $Id: WarpConnector.java,v 1.9 2001/05/08 04:12:40 craigmcc Exp $ */ public class WarpConnector implements Connector, Lifecycle, Runnable { @@ -99,6 +99,8 @@ private boolean started=false; /** The accept count for the server socket. */ private int count = 10; +/** Should we disable DNS lookups? */ +private boolean disableLookups = false; // BEAN PROPERTIES @@ -308,6 +310,20 @@ else this.debug(Setting container +container.getInfo());
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp WarpConnector.java
craigmcc01/05/07 22:58:44 Modified:catalina/docs/config http11.html catalina/src/conf server.xml catalina/src/share/org/apache/catalina Connector.java catalina/src/share/org/apache/catalina/connector/http HttpConnector.java HttpRequestImpl.java catalina/src/share/org/apache/catalina/connector/http10 HttpConnector.java HttpRequestImpl.java catalina/src/share/org/apache/catalina/connector/warp WarpConnector.java Log: Avoid confusing users with a double negative, by changing disableLookups to enableLookups instead. The default in the example config file is still to have lookups enabled, because that is what new Tomcat users expect, but it is easy to turn this off. Submitted by: Roy Fielding [EMAIL PROTECTED] Revision ChangesPath 1.5 +2 -2 jakarta-tomcat-4.0/catalina/docs/config/http11.html Index: http11.html === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/docs/config/http11.html,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- http11.html 2001/05/08 03:42:21 1.4 +++ http11.html 2001/05/08 05:58:43 1.5 @@ -106,9 +106,9 @@ /tr tr -tdcodedisableLookups/code/td +tdcodeenableLookups/code/td td - Set this attribute to codetrue/code to disable DNS lookups of the + Set this attribute to codetrue/code to enable DNS lookups of the remote host name when coderequest.getRemoteHost()/code is called. If lookups are disabled, the remote IP address (as a String) is returned instead. By default, DNS lookups are enabled. 1.24 +11 -4 jakarta-tomcat-4.0/catalina/src/conf/server.xml Index: server.xml === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/conf/server.xml,v retrieving revision 1.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- server.xml2001/05/08 04:12:38 1.23 +++ server.xml2001/05/08 05:58:43 1.24 @@ -40,12 +40,18 @@ * Execute: keytool -genkey -alias tomcat -keyalg RSA with a password value of changeit. + By default, DNS lookups are enabled when a web application calls + request.getRemoteHost(). This can have an adverse impact on + performance, so you can disable it by setting the + enableLookups attribute to false. When DNS lookups are disabled, + request.getRemoteHost() will return the String version of the + IP address of the remote client. -- !-- Define a non-SSL HTTP/1.1 Connector on port 8080 -- Connector className=org.apache.catalina.connector.http.HttpConnector port=8080 minProcessors=5 maxProcessors=75 - disableLookups=false + enableLookups=true acceptCount=10 debug=0 connectionTimeout=6/ !-- Note : To disable connection timeouts, set connectionTimeout value to -1 -- @@ -54,7 +60,7 @@ !-- Connector className=org.apache.catalina.connector.http.HttpConnector port=8443 minProcessors=5 maxProcessors=75 - disableLookups=false + enableLookups=true acceptCount=10 debug=0 scheme=https secure=true Factory className=org.apache.catalina.net.SSLServerSocketFactory clientAuth=false protocol=TLS/ @@ -66,6 +72,7 @@ !-- Connector className=org.apache.catalina.connector.http.HttpConnector port=8081 minProcessors=5 maxProcessors=75 + enableLookups=true acceptCount=10 debug=0 connectionTimeout=6 proxyPort=80/ -- @@ -74,7 +81,7 @@ !-- Connector className=org.apache.catalina.connector.http10.HttpConnector port=8082 minProcessors=5 maxProcessors=75 - disableLookups=false + enableLookups=true acceptCount=10 debug=0/ -- @@ -301,7 +308,7 @@ Connector className=org.apache.catalina.connector.warp.WarpConnector port=8008 minProcessors=5 maxProcessors=75 - disableLookups=false + enableLookups=true acceptCount=10 debug=0/ !-- Replace localhost with what your Apache ServerName is set to -- 1.4 +9 -9 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/Connector.java Index: Connector.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/Connector.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp WarpConnector.java
pier00/12/08 01:42:49 Modified:catalina/src/share/org/apache/catalina/connector/warp WarpConnector.java Log: Host mapping must not be done at Connector level but at Engine level. Revision ChangesPath 1.5 +1 -40 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp/WarpConnector.java Index: WarpConnector.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp/WarpConnector.java,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- WarpConnector.java2000/12/08 02:57:05 1.4 +++ WarpConnector.java2000/12/08 09:42:49 1.5 @@ -78,7 +78,7 @@ * @author a href="mailto:[EMAIL PROTECTED]"Pier Fumagalli/a * @author Copyright copy; 1999, 2000 a href="http://www.apache.org"The * Apache Software Foundation. - * @version CVS $Id: WarpConnector.java,v 1.4 2000/12/08 02:57:05 pier Exp $ + * @version CVS $Id: WarpConnector.java,v 1.5 2000/12/08 09:42:49 pier Exp $ */ public class WarpConnector implements Connector, Lifecycle, Runnable { @@ -114,10 +114,6 @@ private int port=8008; /** The number of concurrent connections we can handle. */ private int acceptcount=10; -/** The root path for web applications. */ -private String appbase=""; -/** The current Host ID. */ -private int hostid=0; // CONSTRUCTOR @@ -176,22 +172,6 @@ } /** - * Set up a virtual host in our Engine and return the associated host ID. - */ -public int setupHost(String name) { -WarpHost host=new WarpHost(); -int id=this.hostid++; - -host.setName(name); -host.setAppBase(this.getAppBase()); -host.setHostID(id); - -this.getContainer().addChild(host); - -return(id); -} - -/** * Begin processing requests via this Connector. */ public void start() throws LifecycleException { @@ -385,25 +365,6 @@ public void setAcceptCount(int acceptcount) { if (DEBUG) this.debug("Setting accept count to "+acceptcount); this.acceptcount=acceptcount; -} - -/** - * Return the application root for this Connector. This can be an absolute - * pathname, a relative pathname, or a URL. - */ -public String getAppBase() { -return (this.appbase); -} - -/** - * Set the application root for this Connector. This can be an absolute - * pathname, a relative pathname, or a URL. - */ -public void setAppBase(String appbase) { -if (appbase==null) return; -if (DEBUG) this.debug("Setting application root to "+appbase); -String old=this.appbase; -this.appbase=appbase; } // -- LOGGING AND DEBUGGING METHODS
cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp WarpConnector.java WarpEngine.java WarpEngineMapper.java WarpEngineValve.java WarpConnection.java WarpConnectionHandler.java WarpConstants.java WarpDebug.java WarpHandler.java WarpRequestHandler.java
pier00/12/07 09:25:33 Modified:catalina/src/share/org/apache/catalina/connector/warp WarpConnection.java WarpConnectionHandler.java WarpConstants.java WarpDebug.java WarpHandler.java WarpRequestHandler.java Added: catalina/src/share/org/apache/catalina/connector/warp WarpConnector.java WarpEngine.java WarpEngineMapper.java WarpEngineValve.java Log: Catalina/Warp integration stage 1: - Added all required Catalina Engine classes (those are nedeed to auto configure Catalina from what's specified in the web server configuration) - Modified all Warp classes to follow Catalina's Lifecycle design pattern Revision ChangesPath 1.3 +132 -46 jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp/WarpConnection.java Index: WarpConnection.java === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/catalina/connector/warp/WarpConnection.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- WarpConnection.java 2000/11/30 21:59:29 1.2 +++ WarpConnection.java 2000/12/07 17:25:31 1.3 @@ -58,33 +58,61 @@ import java.io.*; import java.net.*; +import org.apache.catalina.Lifecycle; +import org.apache.catalina.LifecycleEvent; +import org.apache.catalina.LifecycleException; +import org.apache.catalina.LifecycleListener; +import org.apache.catalina.util.LifecycleSupport; /** * - * * @author a href="mailto:[EMAIL PROTECTED]"Pier Fumagalli/a * @author Copyright copy; 1999, 2000 a href="http://www.apache.org"The * Apache Software Foundation. - * @version CVS $Id: WarpConnection.java,v 1.2 2000/11/30 21:59:29 pier Exp $ + * @version CVS $Id: WarpConnection.java,v 1.3 2000/12/07 17:25:31 pier Exp $ */ -public class WarpConnection implements Runnable { +public class WarpConnection implements Lifecycle, Runnable { + +// -- CONSTANTS -/** The DEBUG flag, to compile out debugging informations. */ -private static final boolean DEBUG = WarpConstants.DEBUG; +/** Our debug flag status (Used to compile out debugging information). */ +private static final boolean DEBUG=WarpDebug.DEBUG; -private WarpHandlerTable table; -private Socket socket; -private String name; +// LOCAL VARIABLES + +/** The lifecycle event support for this component. */ +private LifecycleSupport lifecycle=null; +/** The WarpHandlerTable contains the list of all current handlers. */ +private WarpHandlerTable table=null; +/** The name of this connection. */ +private String name=null; +/** Wether we started or not. */ +private boolean started=false; +// BEAN PROPERTIES + +/** The socket used in this connection. */ +private Socket socket=null; +/** The connector wich created this connection. */ +private WarpConnector connector=null; + +// CONSTRUCTOR + +/** + * Create a new WarpConnection instance. + */ public WarpConnection() { super(); +this.lifecycle=new LifecycleSupport(this); this.table=new WarpHandlerTable(); -this.socket=null; -this.name=null; +if (DEBUG) this.debug("New instance created"); } +// - PUBLIC METHODS + /** - * + * Run the thread waiting on the socket, reading packets from the client + * and dispatching them to the appropriate handler. */ public void run() { WarpHandler han=null; @@ -98,14 +126,14 @@ byte buf[]=null; // Log the connection opening -this.log("Connection opened"); +if (DEBUG) this.debug("Connection started"); try { // Open the socket InputStream in=this.socket.getInputStream(); // Read packets -while(true) { +while(this.started) { // RID number b1=in.read(); b2=in.read(); @@ -126,14 +154,14 @@ b1=in.read(); b2=in.read(); if ((b1 | b2)==-1) { -this.log("Premature LENGTH end"); +this.log("Premature LEN end"); break;