You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2016/08/12 08:41:14 UTC
svn commit: r1756128 - in /tomcat/tc8.5.x/trunk: ./ java/org/apache/coyote/
java/org/apache/coyote/ajp/ java/org/apache/coyote/http11/
java/org/apache/coyote/http2/
Author: markt
Date: Fri Aug 12 08:41:14 2016
New Revision: 1756128
URL: http://svn.apache.org/viewvc?rev=1756128&view=rev
Log:
Use default implementations to reduce duplication
Modified:
tomcat/tc8.5.x/trunk/ (props changed)
tomcat/tc8.5.x/trunk/java/org/apache/coyote/AbstractProcessor.java
tomcat/tc8.5.x/trunk/java/org/apache/coyote/LocalStrings.properties
tomcat/tc8.5.x/trunk/java/org/apache/coyote/LocalStrings_es.properties
tomcat/tc8.5.x/trunk/java/org/apache/coyote/Processor.java
tomcat/tc8.5.x/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
tomcat/tc8.5.x/trunk/java/org/apache/coyote/ajp/LocalStrings.properties
tomcat/tc8.5.x/trunk/java/org/apache/coyote/http11/Http11Processor.java
tomcat/tc8.5.x/trunk/java/org/apache/coyote/http11/LocalStrings.properties
tomcat/tc8.5.x/trunk/java/org/apache/coyote/http11/LocalStrings_es.properties
tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/LocalStrings.properties
tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/StreamProcessor.java
Propchange: tomcat/tc8.5.x/trunk/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Aug 12 08:41:14 2016
@@ -1 +1 @@
-/tomcat/trunk:1734785,1734799,1734845,1734928,1735041,1735044,1735480,1735577,1735597,1735599-1735600,1735615,1736145,1736162,1736209,1736280,1736297,1736299,1736489,1736646,1736703,1736836,1736849,1737104-1737105,1737112,1737117,1737119-1737120,1737155,1737157,1737192,1737280,1737339,1737632,1737664,1737715,1737748,1737785,1737834,1737860,1737903,1737959,1738005,1738007,1738014-1738015,1738018,1738022,1738039,1738043,1738059-1738060,1738147,1738149,1738174-1738175,1738261,1738589,1738623-1738625,1738643,1738816,1738850,1738855,1738946-1738948,1738953-1738954,1738979,1738982,1739079-1739081,1739087,1739113,1739153,1739172,1739176,1739191,1739474,1739726,1739762,1739775,1739814,1739817-1739818,1739975,1740131,1740324,1740465,1740495,1740508-1740509,1740520,1740535,1740707,1740803,1740810,1740969,1740980,1740991,1740997,1741015,1741033,1741036,1741058,1741060,1741080,1741147,1741159,1741164,1741173,1741181,1741190,1741197,1741202,1741208,1741213,1741221,1741225,1741232,1741409,1741501
,1741677,1741892,1741896,1741984,1742023,1742042,1742071,1742090,1742093,1742101,1742105,1742111,1742139,1742146,1742148,1742166,1742181,1742184,1742187,1742246,1742248-1742251,1742263-1742264,1742268,1742276,1742369,1742387,1742448,1742509-1742512,1742917,1742919,1742933,1742975-1742976,1742984,1742986,1743019,1743115,1743117,1743124-1743125,1743134,1743425,1743554,1743679,1743696-1743698,1743700-1743701,1744058,1744064-1744065,1744125,1744194,1744229,1744270,1744323,1744432,1744684,1744697,1744705,1744713,1744760,1744786,1745083,1745142-1745143,1745145,1745177,1745179-1745180,1745227,1745248,1745254,1745337,1745467,1745473,1745576,1745735,1745744,1746304,1746306-1746307,1746319,1746327,1746338,1746340-1746341,1746344,1746427,1746441,1746473,1746490,1746492,1746495-1746496,1746499-1746501,1746503-1746507,1746509,1746549,1746551,1746554,1746556,1746558,1746584,1746620,1746649,1746724,1746939,1746989,1747014,1747028,1747035,1747210,1747225,1747234,1747253,1747404,1747506,1747536,1747
924,1747980,1747993,1748001,1748253,1748452,1748547,1748629,1748676,1748715,1749287,1749296,1749328,1749373,1749465,1749506,1749508,1749665-1749666,1749763,1749865-1749866,1749898,1749978,1749980,1750011,1750015,1750056,1750480,1750617,1750634,1750692,1750697,1750700,1750703,1750707,1750714,1750718,1750723,1750774,1750899,1750975,1750995,1751061,1751097,1751173,1751438,1751447,1751463,1751702,1752212,1752737,1752745,1753078,1753080,1753358,1753363,1754111,1754140-1754141,1754281,1754310,1754445,1754467,1754494,1754496,1754528,1754532-1754533,1754613,1754714,1754874,1754941,1754944,1754950-1754951,1755005,1755007,1755009,1755132,1755180-1755181,1755185,1755190,1755204-1755206,1755208,1755214,1755224,1755227,1755230,1755629,1755646-1755647,1755650,1755653,1755675,1755680,1755683,1755693,1755717,1755731-1755737,1755812,1755828,1755884,1755890,1755918-1755919,1755942,1755958,1755960,1755970,1755993,1756013,1756019,1756039,1756056,1756083-1756106
+/tomcat/trunk:1734785,1734799,1734845,1734928,1735041,1735044,1735480,1735577,1735597,1735599-1735600,1735615,1736145,1736162,1736209,1736280,1736297,1736299,1736489,1736646,1736703,1736836,1736849,1737104-1737105,1737112,1737117,1737119-1737120,1737155,1737157,1737192,1737280,1737339,1737632,1737664,1737715,1737748,1737785,1737834,1737860,1737903,1737959,1738005,1738007,1738014-1738015,1738018,1738022,1738039,1738043,1738059-1738060,1738147,1738149,1738174-1738175,1738261,1738589,1738623-1738625,1738643,1738816,1738850,1738855,1738946-1738948,1738953-1738954,1738979,1738982,1739079-1739081,1739087,1739113,1739153,1739172,1739176,1739191,1739474,1739726,1739762,1739775,1739814,1739817-1739818,1739975,1740131,1740324,1740465,1740495,1740508-1740509,1740520,1740535,1740707,1740803,1740810,1740969,1740980,1740991,1740997,1741015,1741033,1741036,1741058,1741060,1741080,1741147,1741159,1741164,1741173,1741181,1741190,1741197,1741202,1741208,1741213,1741221,1741225,1741232,1741409,1741501
,1741677,1741892,1741896,1741984,1742023,1742042,1742071,1742090,1742093,1742101,1742105,1742111,1742139,1742146,1742148,1742166,1742181,1742184,1742187,1742246,1742248-1742251,1742263-1742264,1742268,1742276,1742369,1742387,1742448,1742509-1742512,1742917,1742919,1742933,1742975-1742976,1742984,1742986,1743019,1743115,1743117,1743124-1743125,1743134,1743425,1743554,1743679,1743696-1743698,1743700-1743701,1744058,1744064-1744065,1744125,1744194,1744229,1744270,1744323,1744432,1744684,1744697,1744705,1744713,1744760,1744786,1745083,1745142-1745143,1745145,1745177,1745179-1745180,1745227,1745248,1745254,1745337,1745467,1745473,1745576,1745735,1745744,1746304,1746306-1746307,1746319,1746327,1746338,1746340-1746341,1746344,1746427,1746441,1746473,1746490,1746492,1746495-1746496,1746499-1746501,1746503-1746507,1746509,1746549,1746551,1746554,1746556,1746558,1746584,1746620,1746649,1746724,1746939,1746989,1747014,1747028,1747035,1747210,1747225,1747234,1747253,1747404,1747506,1747536,1747
924,1747980,1747993,1748001,1748253,1748452,1748547,1748629,1748676,1748715,1749287,1749296,1749328,1749373,1749465,1749506,1749508,1749665-1749666,1749763,1749865-1749866,1749898,1749978,1749980,1750011,1750015,1750056,1750480,1750617,1750634,1750692,1750697,1750700,1750703,1750707,1750714,1750718,1750723,1750774,1750899,1750975,1750995,1751061,1751097,1751173,1751438,1751447,1751463,1751702,1752212,1752737,1752745,1753078,1753080,1753358,1753363,1754111,1754140-1754141,1754281,1754310,1754445,1754467,1754494,1754496,1754528,1754532-1754533,1754613,1754714,1754874,1754941,1754944,1754950-1754951,1755005,1755007,1755009,1755132,1755180-1755181,1755185,1755190,1755204-1755206,1755208,1755214,1755224,1755227,1755230,1755629,1755646-1755647,1755650,1755653,1755675,1755680,1755683,1755693,1755717,1755731-1755737,1755812,1755828,1755884,1755890,1755918-1755919,1755942,1755958,1755960,1755970,1755993,1756013,1756019,1756039,1756056,1756083-1756114
Modified: tomcat/tc8.5.x/trunk/java/org/apache/coyote/AbstractProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/coyote/AbstractProcessor.java?rev=1756128&r1=1756127&r2=1756128&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/coyote/AbstractProcessor.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/coyote/AbstractProcessor.java Fri Aug 12 08:41:14 2016
@@ -18,6 +18,7 @@ package org.apache.coyote;
import java.io.IOException;
import java.io.InterruptedIOException;
+import java.nio.ByteBuffer;
import java.util.concurrent.Executor;
import java.util.concurrent.atomic.AtomicBoolean;
@@ -571,16 +572,73 @@ public abstract class AbstractProcessor
protected abstract void disableSwallowRequest();
- protected abstract boolean getPopulateRequestAttributesFromSocket();
+ /**
+ * Processors that populate request attributes directly (e.g. AJP) should
+ * over-ride this method and return {@code false}.
+ *
+ * @return {@code true} if the SocketWrapper should be used to populate the
+ * request attributes, otherwise {@code false}.
+ */
+ protected boolean getPopulateRequestAttributesFromSocket() {
+ return true;
+ }
- protected abstract void populateRequestAttributeRemoteHost();
+ /**
+ * Populate the remote host request attribute. Processors (e.g. AJP) that
+ * populate this from an alternative source should override this method.
+ */
+ protected void populateRequestAttributeRemoteHost() {
+ if (getPopulateRequestAttributesFromSocket() && socketWrapper != null) {
+ request.remoteHost().setString(socketWrapper.getRemoteHost());
+ }
+ }
- protected abstract void populateSslRequestAttributes();
+ /**
+ * Populate the TLS related request attributes from the {@link SSLSupport}
+ * instance associated with this processor. Protocols that populate TLS
+ * attributes from a different source (e.g. AJP) should override this
+ * method.
+ */
+ protected void populateSslRequestAttributes() {
+ try {
+ if (sslSupport != null) {
+ Object sslO = sslSupport.getCipherSuite();
+ if (sslO != null) {
+ request.setAttribute(SSLSupport.CIPHER_SUITE_KEY, sslO);
+ }
+ sslO = sslSupport.getPeerCertificateChain();
+ if (sslO != null) {
+ request.setAttribute(SSLSupport.CERTIFICATE_KEY, sslO);
+ }
+ sslO = sslSupport.getKeySize();
+ if (sslO != null) {
+ request.setAttribute (SSLSupport.KEY_SIZE_KEY, sslO);
+ }
+ sslO = sslSupport.getSessionId();
+ if (sslO != null) {
+ request.setAttribute(SSLSupport.SESSION_ID_KEY, sslO);
+ }
+ sslO = sslSupport.getProtocol();
+ if (sslO != null) {
+ request.setAttribute(SSLSupport.PROTOCOL_VERSION_KEY, sslO);
+ }
+ request.setAttribute(SSLSupport.SESSION_MGR, sslSupport);
+ }
+ } catch (Exception e) {
+ getLog().warn(sm.getString("abstractProcessor.socket.ssl"), e);
+ }
+ }
- protected abstract void sslReHandShake() ;
+ /**
+ * Processors that can perform a TLS re-handshake (e.g. HTTP/1.1) should
+ * override this method and implement the re-handshake.
+ */
+ protected void sslReHandShake() {
+ // NO-OP
+ }
protected abstract boolean isRequestBodyFullyRead();
@@ -595,13 +653,83 @@ public abstract class AbstractProcessor
protected abstract void executeDispatches(SocketWrapperBase<?> wrapper);
- protected abstract void doHttpUpgrade(UpgradeToken upgradeToken);
+ /**
+ * {@inheritDoc}
+ * Processors that implement HTTP upgrade must override this method and
+ * provide the necessary token.
+ */
+ @Override
+ public UpgradeToken getUpgradeToken() {
+ // Should never reach this code but in case we do...
+ throw new IllegalStateException(
+ sm.getString("abstractProcessor.httpupgrade.notsupported"));
+ }
+
+
+ /**
+ * Process an HTTP upgrade. Processors that support HTTP upgrade should
+ * override this method and process the provided token.
+ *
+ * @param upgradeToken Contains all the information necessary for the
+ * Processor to process the upgrade
+ *
+ * @throws UnsupportedOperationException if the protocol does not support
+ * HTTP upgrade
+ */
+ protected void doHttpUpgrade(UpgradeToken upgradeToken) {
+ // Should never happen
+ throw new UnsupportedOperationException(
+ sm.getString("abstractProcessor.httpupgrade.notsupported"));
+ }
- protected abstract boolean isPushSupported();
+ /**
+ * {@inheritDoc}
+ * Processors that implement HTTP upgrade must override this method.
+ */
+ @Override
+ public ByteBuffer getLeftoverInput() {
+ // Should never reach this code but in case we do...
+ throw new IllegalStateException(sm.getString("abstractProcessor.httpupgrade.notsupported"));
+ }
- protected abstract void doPush(PushToken pushToken);
+ /**
+ * {@inheritDoc}
+ * Processors that implement HTTP upgrade must override this method.
+ */
+ @Override
+ public boolean isUpgrade() {
+ return false;
+ }
+
+
+ /**
+ * Protocols that support push should override this method and return {@code
+ * true}.
+ *
+ * @return {@code true} if push is supported by this processor, otherwise
+ * {@code false}.
+ */
+ protected boolean isPushSupported() {
+ return false;
+ }
+
+
+ /**
+ * Process a push. Processors that support push should override this method
+ * and process the provided token.
+ *
+ * @param pushToken Contains all the information necessary for the Processor
+ * to process the push request
+ *
+ * @throws UnsupportedOperationException if the protocol does not support
+ * push
+ */
+ protected void doPush(PushToken pushToken) {
+ throw new UnsupportedOperationException(
+ sm.getString("abstractProcessor.pushrequest.notsupported"));
+ }
/**
Modified: tomcat/tc8.5.x/trunk/java/org/apache/coyote/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/coyote/LocalStrings.properties?rev=1756128&r1=1756127&r2=1756128&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/coyote/LocalStrings.properties (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/coyote/LocalStrings.properties Fri Aug 12 08:41:14 2016
@@ -19,7 +19,10 @@ abstractConnectionHandler.protocolexcept
abstractConnectionHandler.socketexception.debug=SocketExceptions are normal, ignored
abstractConnectionHandler.negotiatedProcessor.fail=Failed to create Processor for negotiated protocol [{0}]
+abstractProcessor.httpupgrade.notsupported=HTTP upgrade is not supported by this protocol
abstractProcessor.nonContainerThreadError=An error occurred in processing while on a non-container thread. The connection will be closed immediately
+abstractProcessor.pushrequest.notsupported=Server push requests are not supported by this protocol
+abstractProcessor.socket.ssl=Exception getting SSL attributes
abstractProtocol.mbeanDeregistrationFailed=Failed to deregister MBean named [{0}] from MBean server [{1}]
Modified: tomcat/tc8.5.x/trunk/java/org/apache/coyote/LocalStrings_es.properties
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/coyote/LocalStrings_es.properties?rev=1756128&r1=1756127&r2=1756128&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/coyote/LocalStrings_es.properties (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/coyote/LocalStrings_es.properties Fri Aug 12 08:41:14 2016
@@ -12,4 +12,7 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
+
abstractConnectionHandler.error = Error leyendo requerimiento, ignorado
+
+abstractProcessor.socket.ssl = Excepci\u00F3n obteniendo atributos SSL
Modified: tomcat/tc8.5.x/trunk/java/org/apache/coyote/Processor.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/coyote/Processor.java?rev=1756128&r1=1756127&r2=1756128&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/coyote/Processor.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/coyote/Processor.java Fri Aug 12 08:41:14 2016
@@ -46,8 +46,21 @@ public interface Processor {
*/
SocketState process(SocketWrapperBase<?> socketWrapper, SocketEvent status) throws IOException;
+ /**
+ * Generate an upgrade token.
+ *
+ * @return An upgrade token encapsulating the information required to
+ * process the upgrade request
+ *
+ * @throws IllegalStateException if this is called on a Processor that does
+ * not support upgrading
+ */
UpgradeToken getUpgradeToken();
+ /**
+ * @return {@code true} if the Processor is currently processing an upgrade
+ * request, otherwise {@code false}
+ */
boolean isUpgrade();
boolean isAsync();
@@ -81,8 +94,12 @@ public interface Processor {
void setSslSupport(SSLSupport sslSupport);
/**
- * Allows retrieving additional input during the upgrade process
+ * Allows retrieving additional input during the upgrade process.
+ *
* @return leftover bytes
+ *
+ * @throws IllegalStateException if this is called on a Processor that does
+ * not support upgrading
*/
ByteBuffer getLeftoverInput();
Modified: tomcat/tc8.5.x/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?rev=1756128&r1=1756127&r2=1756128&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Fri Aug 12 08:41:14 2016
@@ -21,7 +21,6 @@ import java.io.EOFException;
import java.io.IOException;
import java.io.InterruptedIOException;
import java.net.InetAddress;
-import java.nio.ByteBuffer;
import java.security.NoSuchProviderException;
import java.security.cert.CertificateFactory;
import java.security.cert.X509Certificate;
@@ -33,9 +32,7 @@ import org.apache.coyote.ActionCode;
import org.apache.coyote.ErrorState;
import org.apache.coyote.InputBuffer;
import org.apache.coyote.OutputBuffer;
-import org.apache.coyote.PushToken;
import org.apache.coyote.RequestInfo;
-import org.apache.coyote.UpgradeToken;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
import org.apache.tomcat.util.ExceptionUtils;
@@ -537,14 +534,6 @@ public class AjpProcessor extends Abstra
@Override
- public UpgradeToken getUpgradeToken() {
- // Should never reach this code but in case we do...
- throw new IllegalStateException(
- sm.getString("ajpprocessor.httpupgrade.notsupported"));
- }
-
-
- @Override
public void recycle() {
getAdapter().checkRecycled(request, response);
super.recycle();
@@ -652,19 +641,6 @@ public class AjpProcessor extends Abstra
}
- @Override
- public final boolean isUpgrade() {
- // AJP does not support HTTP upgrade
- return false;
- }
-
-
- @Override
- public ByteBuffer getLeftoverInput() {
- return null;
- }
-
-
/**
* Get more request body data from the web server and store it in the
* internal buffer.
@@ -1270,13 +1246,6 @@ public class AjpProcessor extends Abstra
@Override
- protected final void sslReHandShake() {
- // NO-OP. Can't force a new SSL handshake with the client when using
- // AJP as the reverse proxy controls that connection.
- }
-
-
- @Override
protected final boolean isRequestBodyFullyRead() {
return endOfStream;
}
@@ -1300,35 +1269,6 @@ public class AjpProcessor extends Abstra
}
- /**
- * @param upgradeToken Unused.
- */
- @Override
- protected final void doHttpUpgrade(UpgradeToken upgradeToken) {
- // HTTP connections only. Unsupported for AJP.
- throw new UnsupportedOperationException(
- sm.getString("ajpprocessor.httpupgrade.notsupported"));
- }
-
-
- @Override
- protected final boolean isPushSupported() {
- // HTTP2 connections only. Unsupported for AJP.
- return false;
- }
-
-
- /**
- * @param pushToken Unused
- */
- @Override
- protected final void doPush(PushToken pushToken) {
- // HTTP2 connections only. Unsupported for AJP.
- throw new UnsupportedOperationException(
- sm.getString("ajpprocessor.pushrequest.notsupported"));
- }
-
-
/**
* Read at least the specified amount of bytes, and place them
* in the input buffer. Note that if any data is available to read then this
Modified: tomcat/tc8.5.x/trunk/java/org/apache/coyote/ajp/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/coyote/ajp/LocalStrings.properties?rev=1756128&r1=1756127&r2=1756128&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/coyote/ajp/LocalStrings.properties (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/coyote/ajp/LocalStrings.properties Fri Aug 12 08:41:14 2016
@@ -27,8 +27,6 @@ ajpprocessor.readtimeout=Timeout attempt
ajpprocessor.request.prepare=Error preparing request
ajpprocessor.request.process=Error processing request
ajpprocessor.certs.fail=Certificate conversion failed
-ajpprocessor.httpupgrade.notsupported=HTTP upgrade is not supported by the AJP protocol
-ajpprocessor.pushrequest.notsupported=Server push requests are not supported by the AJP protocol
ajpmessage.null=Cannot append null value
ajpmessage.overflow=Overflow error for buffer adding {0} bytes at position {1}
Modified: tomcat/tc8.5.x/trunk/java/org/apache/coyote/http11/Http11Processor.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1756128&r1=1756127&r2=1756128&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/coyote/http11/Http11Processor.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/coyote/http11/Http11Processor.java Fri Aug 12 08:41:14 2016
@@ -30,7 +30,6 @@ import javax.servlet.http.HttpServletRes
import org.apache.coyote.AbstractProcessor;
import org.apache.coyote.ActionCode;
import org.apache.coyote.ErrorState;
-import org.apache.coyote.PushToken;
import org.apache.coyote.Request;
import org.apache.coyote.RequestInfo;
import org.apache.coyote.UpgradeProtocol;
@@ -1414,19 +1413,6 @@ public class Http11Processor extends Abs
@Override
- public boolean isUpgrade() {
- return upgradeToken != null;
- }
-
-
-
- @Override
- public UpgradeToken getUpgradeToken() {
- return upgradeToken;
- }
-
-
- @Override
protected Log getLog() {
return log;
}
@@ -1538,52 +1524,6 @@ public class Http11Processor extends Abs
@Override
- protected final boolean getPopulateRequestAttributesFromSocket() {
- return true;
- }
-
-
- @Override
- protected final void populateRequestAttributeRemoteHost() {
- if (getPopulateRequestAttributesFromSocket() && socketWrapper != null) {
- request.remoteHost().setString(socketWrapper.getRemoteHost());
- }
- }
-
-
- @Override
- protected final void populateSslRequestAttributes() {
- try {
- if (sslSupport != null) {
- Object sslO = sslSupport.getCipherSuite();
- if (sslO != null) {
- request.setAttribute(SSLSupport.CIPHER_SUITE_KEY, sslO);
- }
- sslO = sslSupport.getPeerCertificateChain();
- if (sslO != null) {
- request.setAttribute(SSLSupport.CERTIFICATE_KEY, sslO);
- }
- sslO = sslSupport.getKeySize();
- if (sslO != null) {
- request.setAttribute (SSLSupport.KEY_SIZE_KEY, sslO);
- }
- sslO = sslSupport.getSessionId();
- if (sslO != null) {
- request.setAttribute(SSLSupport.SESSION_ID_KEY, sslO);
- }
- sslO = sslSupport.getProtocol();
- if (sslO != null) {
- request.setAttribute(SSLSupport.PROTOCOL_VERSION_KEY, sslO);
- }
- request.setAttribute(SSLSupport.SESSION_MGR, sslSupport);
- }
- } catch (Exception e) {
- log.warn(sm.getString("http11processor.socket.ssl"), e);
- }
- }
-
-
- @Override
protected final void sslReHandShake() {
if (sslSupport != null) {
// Consume and buffer the request body, so that it does not
@@ -1631,6 +1571,12 @@ public class Http11Processor extends Abs
@Override
+ public UpgradeToken getUpgradeToken() {
+ return upgradeToken;
+ }
+
+
+ @Override
protected final void doHttpUpgrade(UpgradeToken upgradeToken) {
this.upgradeToken = upgradeToken;
// Stop further HTTP output
@@ -1639,17 +1585,14 @@ public class Http11Processor extends Abs
@Override
- protected final boolean isPushSupported() {
- // HTTP2 connections only. Unsupported for HTTP/1.x
- return false;
+ public ByteBuffer getLeftoverInput() {
+ return inputBuffer.getLeftover();
}
@Override
- protected final void doPush(PushToken pushToken) {
- // HTTP2 connections only. Unsupported for AJP.
- throw new UnsupportedOperationException(
- sm.getString("http11processor.pushrequest.notsupported"));
+ public boolean isUpgrade() {
+ return upgradeToken != null;
}
@@ -1697,12 +1640,6 @@ public class Http11Processor extends Abs
}
- @Override
- public ByteBuffer getLeftoverInput() {
- return inputBuffer.getLeftover();
- }
-
-
@Override
public void pause() {
// NOOP for HTTP
Modified: tomcat/tc8.5.x/trunk/java/org/apache/coyote/http11/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/coyote/http11/LocalStrings.properties?rev=1756128&r1=1756127&r2=1756128&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/coyote/http11/LocalStrings.properties (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/coyote/http11/LocalStrings.properties Fri Aug 12 08:41:14 2016
@@ -20,13 +20,11 @@ abstractHttp11Protocol.httpUpgradeConfig
http11processor.fallToDebug=\n Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
http11processor.header.parse=Error parsing HTTP request header
http11processor.neverused=This method should never be used
-http11processor.pushrequest.notsupported=Server push requests are not supported by the HTTP/1.1 protocol
http11processor.request.prepare=Error preparing request
http11processor.request.process=Error processing request
http11processor.request.finish=Error finishing request
http11processor.response.finish=Error finishing response
http11processor.socket.info=Exception getting socket information
-http11processor.socket.ssl=Exception getting SSL attributes
http11processor.sendfile.error=Error sending data using sendfile. May be caused by invalid request attributes for start/end points
iib.available.readFail=A non-blocking read failed while attempting to determine if data was available
Modified: tomcat/tc8.5.x/trunk/java/org/apache/coyote/http11/LocalStrings_es.properties
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/coyote/http11/LocalStrings_es.properties?rev=1756128&r1=1756127&r2=1756128&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/coyote/http11/LocalStrings_es.properties (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/coyote/http11/LocalStrings_es.properties Fri Aug 12 08:41:14 2016
@@ -19,7 +19,6 @@ http11processor.request.process = Error
http11processor.request.finish = Error acabando requerimiento
http11processor.response.finish = Error acabando respuesta
http11processor.socket.info = Excepci\u00F3n obteniendo informaci\u00F3n de conector
-http11processor.socket.ssl = Excepci\u00F3n obteniendo atributos SSL
http11processor.socket.sslreneg = Excepci\u00F3n renegociando la conexi\u00F3n SSL
iib.eof.error = Inesperado Fin De Archivo (EOF) le\u00EDdo en el enchufe (socket)
iib.requestheadertoolarge.error = La cabecera del requerimiento es demasido grande
Modified: tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/LocalStrings.properties?rev=1756128&r1=1756127&r2=1756128&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/LocalStrings.properties (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/LocalStrings.properties Fri Aug 12 08:41:14 2016
@@ -83,9 +83,7 @@ stream.outputBuffer.flush.debug=Connecti
streamProcessor.error.connection=Connection [{0}], Stream [{1}], An error occurred during processing that was fatal to the connection
streamProcessor.error.stream=Connection [{0}], Stream [{1}], An error occurred during processing that was fatal to the stream
-streamProcessor.httpupgrade.notsupported=HTTP upgrade is not supported within HTTP/2 streams
streamProcessor.service.error=Error during request processing
-streamProcessor.ssl.error=Unable to retrieve SSL request attributes
streamStateMachine.debug.change=Connection [{0}], Stream [{1}], State changed from [{2}] to [{3}]
streamStateMachine.invalidFrame=Connection [{0}], Stream [{1}], State [{2}], Frame type [{3}]
Modified: tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/StreamProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/StreamProcessor.java?rev=1756128&r1=1756127&r2=1756128&view=diff
==============================================================================
--- tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/StreamProcessor.java (original)
+++ tomcat/tc8.5.x/trunk/java/org/apache/coyote/http2/StreamProcessor.java Fri Aug 12 08:41:14 2016
@@ -17,7 +17,6 @@
package org.apache.coyote.http2;
import java.io.IOException;
-import java.nio.ByteBuffer;
import org.apache.coyote.AbstractProcessor;
import org.apache.coyote.ActionCode;
@@ -25,12 +24,10 @@ import org.apache.coyote.Adapter;
import org.apache.coyote.ContainerThreadMarker;
import org.apache.coyote.ErrorState;
import org.apache.coyote.PushToken;
-import org.apache.coyote.UpgradeToken;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
import org.apache.tomcat.util.buf.ByteChunk;
import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState;
-import org.apache.tomcat.util.net.SSLSupport;
import org.apache.tomcat.util.net.SocketEvent;
import org.apache.tomcat.util.net.SocketWrapperBase;
import org.apache.tomcat.util.res.StringManager;
@@ -43,8 +40,6 @@ public class StreamProcessor extends Abs
private final Http2UpgradeHandler handler;
private final Stream stream;
- private volatile SSLSupport sslSupport;
-
public StreamProcessor(Http2UpgradeHandler handler, Stream stream, Adapter adapter, SocketWrapperBase<?> socketWrapper) {
super(stream.getCoyoteRequest(), stream.getCoyoteResponse());
@@ -156,58 +151,6 @@ public class StreamProcessor extends Abs
@Override
- protected final boolean getPopulateRequestAttributesFromSocket() {
- return true;
- }
-
-
- @Override
- protected final void populateRequestAttributeRemoteHost() {
- if (getPopulateRequestAttributesFromSocket() && socketWrapper != null) {
- request.remoteHost().setString(socketWrapper.getRemoteHost());
- }
- }
-
-
- @Override
- protected final void populateSslRequestAttributes() {
- try {
- if (sslSupport != null) {
- Object sslO = sslSupport.getCipherSuite();
- if (sslO != null) {
- request.setAttribute(SSLSupport.CIPHER_SUITE_KEY, sslO);
- }
- sslO = sslSupport.getPeerCertificateChain();
- if (sslO != null) {
- request.setAttribute(SSLSupport.CERTIFICATE_KEY, sslO);
- }
- sslO = sslSupport.getKeySize();
- if (sslO != null) {
- request.setAttribute (SSLSupport.KEY_SIZE_KEY, sslO);
- }
- sslO = sslSupport.getSessionId();
- if (sslO != null) {
- request.setAttribute(SSLSupport.SESSION_ID_KEY, sslO);
- }
- sslO = sslSupport.getProtocol();
- if (sslO != null) {
- request.setAttribute(SSLSupport.PROTOCOL_VERSION_KEY, sslO);
- }
- request.setAttribute(SSLSupport.SESSION_MGR, sslSupport);
- }
- } catch (Exception e) {
- log.warn(sm.getString("http11processor.socket.ssl"), e);
- }
- }
-
-
- @Override
- protected final void sslReHandShake() {
- // No re-negotiation support in HTTP/2.
- }
-
-
- @Override
protected final boolean isRequestBodyFullyRead() {
return stream.getInputBuffer().isRequestBodyFullyRead();
}
@@ -232,14 +175,6 @@ public class StreamProcessor extends Abs
@Override
- protected final void doHttpUpgrade(UpgradeToken upgradeToken) {
- // Unsupported / illegal under HTTP/2
- throw new UnsupportedOperationException(
- sm.getString("streamProcessor.httpupgrade.notsupported"));
- }
-
-
- @Override
protected final boolean isPushSupported() {
return stream.isPushSupported();
}
@@ -267,12 +202,6 @@ public class StreamProcessor extends Abs
@Override
- public boolean isUpgrade() {
- return false;
- }
-
-
- @Override
protected Log getLog() {
return log;
}
@@ -333,18 +262,4 @@ public class StreamProcessor extends Abs
protected SocketState dispatchEndRequest() {
return SocketState.CLOSED;
}
-
-
- @Override
- public UpgradeToken getUpgradeToken() {
- // Should never happen
- throw new IllegalStateException(sm.getString("streamProcessor.httpupgrade.notsupported"));
- }
-
-
- @Override
- public ByteBuffer getLeftoverInput() {
- // Should never happen
- throw new IllegalStateException(sm.getString("streamProcessor.httpupgrade.notsupported"));
- }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org