Author: markt Date: Thu May 21 09:44:39 2015 New Revision: 1680781 URL: http://svn.apache.org/r1680781 Log: Fix the SSLSupport TODO. The StreamProcessor will need access to this to provide TLS information on the underlying connection to web applications via the Servlet API. Implementation for the relevant action codes *is not* included in this commit.
Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorExternal.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorInternal.java tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java tomcat/trunk/test/org/apache/coyote/http11/upgrade/TestUpgradeInternalHandler.java Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java?rev=1680781&r1=1680780&r2=1680781&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/InternalHttpUpgradeHandler.java Thu May 21 09:44:39 2015 @@ -19,6 +19,7 @@ package org.apache.coyote.http11.upgrade import javax.servlet.http.HttpUpgradeHandler; import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; +import org.apache.tomcat.util.net.SSLSupport; import org.apache.tomcat.util.net.SocketStatus; import org.apache.tomcat.util.net.SocketWrapperBase; @@ -32,4 +33,6 @@ public interface InternalHttpUpgradeHand SocketState upgradeDispatch(SocketStatus status); void setSocketWrapper(SocketWrapperBase<?> wrapper); + + void setSslSupport(SSLSupport sslSupport); } \ No newline at end of file Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java?rev=1680781&r1=1680780&r2=1680781&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorBase.java Thu May 21 09:44:39 2015 @@ -26,7 +26,6 @@ import javax.servlet.http.WebConnection; import org.apache.coyote.Processor; import org.apache.coyote.Request; import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; -import org.apache.tomcat.util.net.SSLSupport; import org.apache.tomcat.util.net.SocketWrapperBase; public abstract class UpgradeProcessorBase implements Processor, WebConnection { @@ -106,12 +105,6 @@ public abstract class UpgradeProcessorBa } - @Override - public final void setSslSupport(SSLSupport sslSupport) { - // NOOP - } - - @Override public ByteBuffer getLeftoverInput() { return null; Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorExternal.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorExternal.java?rev=1680781&r1=1680780&r2=1680781&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorExternal.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorExternal.java Thu May 21 09:44:39 2015 @@ -26,6 +26,7 @@ import javax.servlet.http.HttpUpgradeHan import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; +import org.apache.tomcat.util.net.SSLSupport; import org.apache.tomcat.util.net.SocketStatus; import org.apache.tomcat.util.net.SocketWrapperBase; import org.apache.tomcat.util.res.StringManager; @@ -117,4 +118,12 @@ public class UpgradeProcessorExternal ex } return SocketState.UPGRADED; } + + + // ----------------------------------------- Unimplemented Processor methods + + @Override + public final void setSslSupport(SSLSupport sslSupport) { + // NO-OP + } } Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorInternal.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorInternal.java?rev=1680781&r1=1680780&r2=1680781&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorInternal.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/UpgradeProcessorInternal.java Thu May 21 09:44:39 2015 @@ -23,6 +23,7 @@ import javax.servlet.ServletInputStream; import javax.servlet.ServletOutputStream; import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; +import org.apache.tomcat.util.net.SSLSupport; import org.apache.tomcat.util.net.SocketStatus; import org.apache.tomcat.util.net.SocketWrapperBase; @@ -50,6 +51,12 @@ public class UpgradeProcessorInternal ex } + @Override + public final void setSslSupport(SSLSupport sslSupport) { + internalHttpUpgradeHandler.setSslSupport(sslSupport); + } + + // --------------------------------------------------- AutoCloseable methods @Override Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java?rev=1680781&r1=1680780&r2=1680781&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Thu May 21 09:44:39 2015 @@ -37,6 +37,7 @@ import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.http.MimeHeaders; import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; +import org.apache.tomcat.util.net.SSLSupport; import org.apache.tomcat.util.net.SocketStatus; import org.apache.tomcat.util.net.SocketWrapperBase; import org.apache.tomcat.util.res.StringManager; @@ -80,8 +81,11 @@ public class Http2UpgradeHandler extends private static final byte[] GOAWAY = { 0x07, 0x00, 0x00, 0x00, 0x00 }; private final int connectionId; + private final Adapter adapter; private volatile SocketWrapperBase<?> socketWrapper; + private volatile SSLSupport sslSupport; + private volatile boolean initialized = false; private volatile ConnectionPrefaceParser connectionPrefaceParser = new ConnectionPrefaceParser(); @@ -133,6 +137,12 @@ public class Http2UpgradeHandler extends @Override + public void setSslSupport(SSLSupport sslSupport) { + this.sslSupport = sslSupport; + } + + + @Override public SocketState upgradeDispatch(SocketStatus status) { if (log.isDebugEnabled()) { log.debug(sm.getString("upgradeHandler.upgradeDispatch.entry", @@ -372,6 +382,7 @@ public class Http2UpgradeHandler extends // Process this stream on a container thread StreamProcessor streamProcessor = new StreamProcessor(stream, adapter, socketWrapper); + streamProcessor.setSslSupport(sslSupport); socketWrapper.getEndpoint().getExecutor().execute(streamProcessor); } Modified: tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java?rev=1680781&r1=1680780&r2=1680781&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http2/StreamProcessor.java Thu May 21 09:44:39 2015 @@ -40,6 +40,8 @@ public class StreamProcessor extends Abs private final Stream stream; + private volatile SSLSupport sslSupport; + public StreamProcessor(Stream stream, Adapter adapter, SocketWrapperBase<?> socketWrapper) { super(stream.getCoyoteRequest(), stream.getCoyoteResponse()); @@ -99,8 +101,7 @@ public class StreamProcessor extends Abs @Override public void setSslSupport(SSLSupport sslSupport) { - // TODO Auto-generated method stub - + this.sslSupport = sslSupport; } Modified: tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java?rev=1680781&r1=1680780&r2=1680781&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java (original) +++ tomcat/trunk/java/org/apache/tomcat/websocket/server/WsHttpUpgradeHandler.java Thu May 21 09:44:39 2015 @@ -34,6 +34,7 @@ import org.apache.coyote.http11.upgrade. import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; +import org.apache.tomcat.util.net.SSLSupport; import org.apache.tomcat.util.net.SocketStatus; import org.apache.tomcat.util.net.SocketWrapperBase; import org.apache.tomcat.util.res.StringManager; @@ -222,4 +223,11 @@ public class WsHttpUpgradeHandler implem */ wsSession.onClose(cr); } + + + @Override + public void setSslSupport(SSLSupport sslSupport) { + // NO-OP. WebSocket has no requirement to access the TLS information + // associated with the underlying connection. + } } Modified: tomcat/trunk/test/org/apache/coyote/http11/upgrade/TestUpgradeInternalHandler.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/coyote/http11/upgrade/TestUpgradeInternalHandler.java?rev=1680781&r1=1680780&r2=1680781&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/coyote/http11/upgrade/TestUpgradeInternalHandler.java (original) +++ tomcat/trunk/test/org/apache/coyote/http11/upgrade/TestUpgradeInternalHandler.java Thu May 21 09:44:39 2015 @@ -47,6 +47,7 @@ import org.apache.catalina.Context; import org.apache.catalina.startup.Tomcat; import org.apache.catalina.startup.TomcatBaseTest; import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState; +import org.apache.tomcat.util.net.SSLSupport; import org.apache.tomcat.util.net.SocketStatus; import org.apache.tomcat.util.net.SocketWrapperBase; import org.apache.tomcat.util.net.SocketWrapperBase.CompletionState; @@ -255,6 +256,11 @@ public class TestUpgradeInternalHandler public void setSocketWrapper(SocketWrapperBase<?> wrapper) { this.wrapper = wrapper; } + + @Override + public void setSslSupport(SSLSupport sslSupport) { + // NO-OP + } } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org