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/06/29 13:38:45 UTC
svn commit: r1750634 - in /tomcat/trunk: java/org/apache/catalina/connector/
java/org/apache/coyote/ajp/ java/org/apache/coyote/http11/
java/org/apache/coyote/http2/ webapps/docs/
Author: markt
Date: Wed Jun 29 13:38:45 2016
New Revision: 1750634
URL: http://svn.apache.org/viewvc?rev=1750634&view=rev
Log:
Fix problem with req.getServerPort() returning wrong value for HTTP/2
Remove duplicate implementations to CoyoteAdapter and use the same approach for all
Modified:
tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java
tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java
tomcat/trunk/java/org/apache/coyote/http2/Stream.java
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java?rev=1750634&r1=1750633&r2=1750634&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/CoyoteAdapter.java Wed Jun 29 13:38:45 2016
@@ -555,6 +555,13 @@ public class CoyoteAdapter implements Ad
int proxyPort = connector.getProxyPort();
if (proxyPort != 0) {
req.setServerPort(proxyPort);
+ } else if (req.getServerPort() == -1) {
+ // Not explicitly set. Use default ports based on the scheme
+ if (req.scheme().equals("https")) {
+ req.setServerPort(443);
+ } else {
+ req.setServerPort(80);
+ }
}
if (proxyName != null) {
req.serverName().setString(proxyName);
Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java?rev=1750634&r1=1750633&r2=1750634&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Wed Jun 29 13:38:45 2016
@@ -1303,13 +1303,6 @@ public class AjpProcessor extends Abstra
}
if (colonPos < 0) {
- if (request.scheme().equalsIgnoreCase("https")) {
- // 443 - Default HTTPS port
- request.setServerPort(443);
- } else {
- // 80 - Default HTTTP port
- request.setServerPort(80);
- }
request.serverName().setChars(hostNameC, 0, valueL);
} else {
Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1750634&r1=1750633&r2=1750634&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Wed Jun 29 13:38:45 2016
@@ -1668,13 +1668,6 @@ public class Http11Processor extends Abs
}
if (colonPos < 0) {
- if (!endpoint.isSSLEnabled()) {
- // 80 - Default HTTP port
- request.setServerPort(80);
- } else {
- // 443 - Default HTTPS port
- request.setServerPort(443);
- }
request.serverName().setChars(hostNameC, 0, valueL);
} else {
request.serverName().setChars(hostNameC, 0, colonPos);
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=1750634&r1=1750633&r2=1750634&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Wed Jun 29 13:38:45 2016
@@ -1036,11 +1036,6 @@ public class Http2UpgradeHandler extends
}
- String getProperty(String key) {
- return socketWrapper.getEndpoint().getProperty(key);
- }
-
-
@Override
protected final String getConnectionId() {
return connectionId;
Modified: tomcat/trunk/java/org/apache/coyote/http2/Stream.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Stream.java?rev=1750634&r1=1750633&r2=1750634&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Stream.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Stream.java Wed Jun 29 13:38:45 2016
@@ -237,12 +237,6 @@ public class Stream extends AbstractStre
coyoteRequest.setServerPort(Integer.parseInt(value.substring(i + 1)));
} else {
coyoteRequest.serverName().setString(value);
- boolean secure = Boolean.parseBoolean(handler.getProperty("secure"));
- if (secure) {
- coyoteRequest.setServerPort(443);
- } else {
- coyoteRequest.setServerPort(80);
- }
}
break;
}
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1750634&r1=1750633&r2=1750634&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Wed Jun 29 13:38:45 2016
@@ -105,6 +105,11 @@
<bug>59233</bug>: Add the ability to add TLS virtual hosts dynamically.
(markt)
</add>
+ <fix>
+ Correct a problem with <code>ServletRequest.getServerPort()</code> for
+ secure HTTP/2 connections that meant an incorrect value was retured when
+ using the default port. (markt)
+ </fix>
</changelog>
</subsection>
<subsection name="WebSocket">
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org