You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by co...@apache.org on 2006/01/04 08:51:52 UTC
svn commit: r365859 - in /tomcat/sandbox/java/org/apache/coyote/http11:
Http11BaseProtocol.java Http11Processor.java Http11Protocol.java
apr/Http11AprBaseProtocol.java apr/Http11AprProcessor.java
Author: costin
Date: Tue Jan 3 23:51:50 2006
New Revision: 365859
URL: http://svn.apache.org/viewcvs?rev=365859&view=rev
Log:
Update for the new apr package, remove the old ssl abstraction.
Since APR and NIO can't use the SocketFactory, nor JK - it doesn't make
any sense to keep it for anything but the old-style connector ( which
should be deprecated/removed eventually ).
This also brings APR, NIO, JK closer in how they can deal with SSL.
Modified:
tomcat/sandbox/java/org/apache/coyote/http11/Http11BaseProtocol.java
tomcat/sandbox/java/org/apache/coyote/http11/Http11Processor.java
tomcat/sandbox/java/org/apache/coyote/http11/Http11Protocol.java
tomcat/sandbox/java/org/apache/coyote/http11/apr/Http11AprBaseProtocol.java
tomcat/sandbox/java/org/apache/coyote/http11/apr/Http11AprProcessor.java
Modified: tomcat/sandbox/java/org/apache/coyote/http11/Http11BaseProtocol.java
URL: http://svn.apache.org/viewcvs/tomcat/sandbox/java/org/apache/coyote/http11/Http11BaseProtocol.java?rev=365859&r1=365858&r2=365859&view=diff
==============================================================================
--- tomcat/sandbox/java/org/apache/coyote/http11/Http11BaseProtocol.java (original)
+++ tomcat/sandbox/java/org/apache/coyote/http11/Http11BaseProtocol.java Tue Jan 3 23:51:50 2006
@@ -32,11 +32,11 @@
import org.apache.coyote.ProtocolHandler;
import org.apache.coyote.RequestGroupInfo;
import org.apache.tomcat.util.net.PoolTcpEndpoint;
-import org.apache.tomcat.util.net.SSLImplementation;
-import org.apache.tomcat.util.net.SSLSupport;
-import org.apache.tomcat.util.net.ServerSocketFactory;
import org.apache.tomcat.util.net.TcpConnection;
import org.apache.tomcat.util.net.TcpConnectionHandler;
+//import org.apache.tomcat.util.net.javaio.SSLImplementation;
+//import org.apache.tomcat.util.net.javaio.SSLSupport;
+//import org.apache.tomcat.util.net.javaio.ServerSocketFactory;
import org.apache.tomcat.util.res.StringManager;
@@ -124,6 +124,7 @@
throw ex;
}
+ /* Endpoint should know about ssl.
if( socketFactory!=null ) {
Enumeration attE=attributes.keys();
while( attE.hasMoreElements() ) {
@@ -132,6 +133,7 @@
socketFactory.setAttribute( key, v );
}
}
+ */
// XXX get domain from registration
try {
@@ -186,12 +188,13 @@
// -------------------- Properties--------------------
//
- protected PoolTcpEndpoint ep= PoolTcpEndpoint.getEndpoint("acc");
+ protected PoolTcpEndpoint ep= PoolTcpEndpoint.getEndpoint(null);
protected boolean secure;
- protected ServerSocketFactory socketFactory;
- protected SSLImplementation sslImplementation;
+ // Old style, no longer supported by apr, nio
+ //protected ServerSocketFactory socketFactory;
+ //protected SSLImplementation sslImplementation;
// socket factory attriubtes ( XXX replace with normal setters )
protected Hashtable attributes = new Hashtable();
protected String socketFactoryName=null;
@@ -646,7 +649,12 @@
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
- if( proto.secure ) {
+ processor.setSecure( proto.secure );
+
+ /* This was passing the ssl info from potocol to processor.
+ * Now endpoing knows all about ssl.
+ *
+ if( proto.secure ) {
SSLSupport sslSupport=null;
if(proto.sslImplementation != null)
sslSupport = proto.sslImplementation.getSSLSupport(socket);
@@ -654,6 +662,7 @@
} else {
processor.setSSLSupport( null );
}
+ */
processor.setSocket( socket );
processor.process(in, out);
Modified: tomcat/sandbox/java/org/apache/coyote/http11/Http11Processor.java
URL: http://svn.apache.org/viewcvs/tomcat/sandbox/java/org/apache/coyote/http11/Http11Processor.java?rev=365859&r1=365858&r2=365859&view=diff
==============================================================================
--- tomcat/sandbox/java/org/apache/coyote/http11/Http11Processor.java (original)
+++ tomcat/sandbox/java/org/apache/coyote/http11/Http11Processor.java Tue Jan 3 23:51:50 2006
@@ -51,7 +51,7 @@
import org.apache.tomcat.util.http.FastHttpDateFormat;
import org.apache.tomcat.util.http.MimeHeaders;
import org.apache.tomcat.util.net.PoolTcpEndpoint;
-import org.apache.tomcat.util.net.SSLSupport;
+//import org.apache.tomcat.util.net.javaio.SSLSupport;
import org.apache.tomcat.util.res.StringManager;
import org.apache.tomcat.util.threads.ThreadWithAttributes;
@@ -197,9 +197,14 @@
/**
- * SSL information.
+ * SSL information - removed, specific to old-style java io
*/
- protected SSLSupport sslSupport;
+ // protected SSLSupport sslSupport;
+ /**
+ * SSL enabled ?
+ */
+ protected boolean ssl = false;
+
/**
@@ -358,6 +363,15 @@
}
}
+ public boolean getSecure() {
+ return ssl;
+ }
+
+ public void setSecure( boolean b ) {
+ ssl=b;
+ }
+
+
/**
* Set Minimum size to trigger compression.
*/
@@ -662,9 +676,9 @@
/**
* Set the SSL information for this HTTP connection.
*/
- public void setSSLSupport(SSLSupport sslSupport) {
+ /*public void setSSLSupport(SSLSupport sslSupport) {
this.sslSupport = sslSupport;
- }
+ }*/
/**
@@ -757,6 +771,7 @@
*/
public void process(InputStream input, OutputStream output)
throws IOException {
+
ThreadWithAttributes thrA=
(ThreadWithAttributes)Thread.currentThread();
RequestInfo rp = request.getRequestProcessor();
@@ -931,7 +946,7 @@
outputBuffer.recycle();
// Recycle ssl info
- sslSupport = null;
+ //sslSupport = null;
}
@@ -1043,6 +1058,14 @@
if (actionCode == ActionCode.ACTION_REQ_SSL_ATTRIBUTE ) {
try {
+ if( ssl ) {
+ Object sslO = endpoint.getSsl("cipherSuite");
+ endpoint.getSsl("peerCertificateChain");
+ endpoint.getSsl("keySize");
+ endpoint.getSsl("sessionId");
+
+ }
+ /* TODO(costin)
if (sslSupport != null) {
Object sslO = sslSupport.getCipherSuite();
if (sslO != null)
@@ -1061,6 +1084,7 @@
request.setAttribute
(SSLSupport.SESSION_ID_KEY, sslO);
}
+ */
} catch (Exception e) {
log.warn(sm.getString("http11processor.socket.ssl"), e);
}
@@ -1117,7 +1141,7 @@
request.setLocalPort(localPort);
} else if (actionCode == ActionCode.ACTION_REQ_SSL_CERTIFICATE) {
- if( sslSupport != null) {
+ if( ssl ) {
/*
* Consume and buffer the request body, so that it does not
* interfere with the client's handshake messages
@@ -1127,11 +1151,13 @@
.setLimit(maxSavePostSize);
inputBuffer.addActiveFilter
(inputFilters[Constants.BUFFERED_FILTER]);
+
try {
- Object sslO = sslSupport.getPeerCertificateChain(true);
+ Object sslO = endpoint.getSsl( PoolTcpEndpoint.CERTIFICATE_KEY );
+ // getPeerCertificateChain(true);
if( sslO != null) {
request.setAttribute
- (SSLSupport.CERTIFICATE_KEY, sslO);
+ (PoolTcpEndpoint.CERTIFICATE_KEY, sslO);
}
} catch (Exception e) {
log.warn(sm.getString("http11processor.socket.ssl"), e);
@@ -1177,7 +1203,7 @@
http09 = false;
contentDelimitation = false;
expectation = false;
- if (sslSupport != null) {
+ if (ssl) {
request.scheme().setString("https");
}
MessageBytes protocolMB = request.protocol();
@@ -1393,7 +1419,7 @@
}
if (colonPos < 0) {
- if (sslSupport == null) {
+ if (!ssl) {
// 80 - Default HTTP port
request.setServerPort(80);
} else {
@@ -1524,6 +1550,8 @@
}
// APR: sendfile
+ // if someone set the right attributes in req, we'll send the file
+ //
sendfileSupport(outputFilters);
// Check for compression
Modified: tomcat/sandbox/java/org/apache/coyote/http11/Http11Protocol.java
URL: http://svn.apache.org/viewcvs/tomcat/sandbox/java/org/apache/coyote/http11/Http11Protocol.java?rev=365859&r1=365858&r2=365859&view=diff
==============================================================================
--- tomcat/sandbox/java/org/apache/coyote/http11/Http11Protocol.java (original)
+++ tomcat/sandbox/java/org/apache/coyote/http11/Http11Protocol.java Tue Jan 3 23:51:50 2006
@@ -38,11 +38,11 @@
import org.apache.coyote.RequestGroupInfo;
import org.apache.coyote.RequestInfo;
import org.apache.tomcat.util.net.PoolTcpEndpoint;
-import org.apache.tomcat.util.net.SSLImplementation;
-import org.apache.tomcat.util.net.SSLSupport;
-import org.apache.tomcat.util.net.ServerSocketFactory;
import org.apache.tomcat.util.net.TcpConnection;
import org.apache.tomcat.util.net.TcpConnectionHandler;
+import org.apache.tomcat.util.net.javaio.SSLImplementation;
+import org.apache.tomcat.util.net.javaio.SSLSupport;
+import org.apache.tomcat.util.net.javaio.ServerSocketFactory;
import org.apache.tomcat.util.res.StringManager;
import org.apache.tomcat.util.threads.ThreadPool;
import org.apache.tomcat.util.threads.ThreadWithAttributes;
Modified: tomcat/sandbox/java/org/apache/coyote/http11/apr/Http11AprBaseProtocol.java
URL: http://svn.apache.org/viewcvs/tomcat/sandbox/java/org/apache/coyote/http11/apr/Http11AprBaseProtocol.java?rev=365859&r1=365858&r2=365859&view=diff
==============================================================================
--- tomcat/sandbox/java/org/apache/coyote/http11/apr/Http11AprBaseProtocol.java (original)
+++ tomcat/sandbox/java/org/apache/coyote/http11/apr/Http11AprBaseProtocol.java Tue Jan 3 23:51:50 2006
@@ -25,8 +25,8 @@
import org.apache.coyote.RequestGroupInfo;
import org.apache.coyote.http11.Constants;
import org.apache.coyote.http11.Http11BaseProtocol;
-import org.apache.tomcat.util.net.AprEndpoint;
-import org.apache.tomcat.util.net.AprEndpoint.Handler;
+import org.apache.tomcat.util.net.apr.AprEndpoint;
+import org.apache.tomcat.util.net.apr.AprEndpoint.Handler;
/**
Modified: tomcat/sandbox/java/org/apache/coyote/http11/apr/Http11AprProcessor.java
URL: http://svn.apache.org/viewcvs/tomcat/sandbox/java/org/apache/coyote/http11/apr/Http11AprProcessor.java?rev=365859&r1=365858&r2=365859&view=diff
==============================================================================
--- tomcat/sandbox/java/org/apache/coyote/http11/apr/Http11AprProcessor.java (original)
+++ tomcat/sandbox/java/org/apache/coyote/http11/apr/Http11AprProcessor.java Tue Jan 3 23:51:50 2006
@@ -40,7 +40,8 @@
import org.apache.tomcat.jni.Socket;
import org.apache.tomcat.util.buf.HexUtils;
import org.apache.tomcat.util.http.FastHttpDateFormat;
-import org.apache.tomcat.util.net.AprEndpoint;
+import org.apache.tomcat.util.net.apr.AprEndpoint;
+import org.apache.tomcat.util.net.apr.Sendfile;
import org.apache.tomcat.util.threads.ThreadWithAttributes;
@@ -91,14 +92,9 @@
/**
* Sendfile data.
*/
- protected AprEndpoint.SendfileData sendfileData = null;
+ protected Sendfile.SendfileData sendfileData = null;
- /**
- * SSL enabled ?
- */
- protected boolean ssl = false;
-
/**
* Socket associated with the current connection.
@@ -507,7 +503,7 @@
outputBuffer.addActiveFilter
(outputFilters[Constants.VOID_FILTER]);
contentDelimitation = true;
- sendfileData = new AprEndpoint.SendfileData();
+ sendfileData = new Sendfile.SendfileData();
sendfileData.fileName = fileName;
sendfileData.start =
((Long) request.getAttribute("org.apache.tomcat.sendfile.start")).longValue();
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org