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 2015/11/26 15:01:40 UTC
svn commit: r1716656 - in /tomcat/trunk/java/org/apache/coyote/ajp:
AbstractAjpProtocol.java LocalStrings.properties
Author: markt
Date: Thu Nov 26 14:01:40 2015
New Revision: 1716656
URL: http://svn.apache.org/viewvc?rev=1716656&view=rev
Log:
Implement a TODO. Trigger an exception if an HTTP upgrade is attempted over AJP.
Modified:
tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProtocol.java
tomcat/trunk/java/org/apache/coyote/ajp/LocalStrings.properties
Modified: tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProtocol.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProtocol.java?rev=1716656&r1=1716655&r2=1716656&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProtocol.java Thu Nov 26 14:01:40 2015
@@ -16,6 +16,7 @@
*/
package org.apache.coyote.ajp;
+import java.io.IOException;
import java.nio.ByteBuffer;
import org.apache.coyote.AbstractProtocol;
@@ -171,8 +172,8 @@ public abstract class AbstractAjpProtoco
@Override
protected Processor createUpgradeProcessor(SocketWrapperBase<?> socket,
- ByteBuffer leftoverInput, UpgradeToken upgradeToken) {
- // TODO should fail - throw IOE
- return null;
+ ByteBuffer leftoverInput, UpgradeToken upgradeToken) throws IOException {
+ throw new IOException(sm.getString("ajpprotocol.noUpgradeHandler",
+ upgradeToken.getHttpUpgradeHandler().getClass().getName()));
}
}
Modified: tomcat/trunk/java/org/apache/coyote/ajp/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/LocalStrings.properties?rev=1716656&r1=1716655&r2=1716656&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/LocalStrings.properties (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/LocalStrings.properties Thu Nov 26 14:01:40 2015
@@ -14,6 +14,7 @@
# limitations under the License.
ajpprotocol.noSSL=SSL is not supported with AJP. The SSL host configuration for [{0}] was ignored
ajpprotocol.noUpgrade=Upgrade is not supported with AJP. The UpgradeProtocol configuration for [{0}] was ignored
+ajpprotocol.noUpgradeHandler=Upgrade is not supported with AJP. The HttpUpgradeHandler [{0}] can not be processed
ajpnioprotocol.releaseStart=Iterating through our connections to release a socket channel [{0}]
ajpnioprotocol.releaseEnd=Done iterating through our connections to release a socket channel [{0}] released [{1}]
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org
Re: svn commit: r1716656 - in /tomcat/trunk/java/org/apache/coyote/ajp:
AbstractAjpProtocol.java LocalStrings.properties
Posted by Konstantin Kolinko <kn...@gmail.com>.
2015-11-26 17:01 GMT+03:00 <ma...@apache.org>:
> Author: markt
> Date: Thu Nov 26 14:01:40 2015
> New Revision: 1716656
>
> URL: http://svn.apache.org/viewvc?rev=1716656&view=rev
> Log:
> Implement a TODO. Trigger an exception if an HTTP upgrade is attempted over AJP.
>
> Modified:
> tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProtocol.java
> tomcat/trunk/java/org/apache/coyote/ajp/LocalStrings.properties
>
> Modified: tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProtocol.java
> URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProtocol.java?rev=1716656&r1=1716655&r2=1716656&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProtocol.java (original)
> +++ tomcat/trunk/java/org/apache/coyote/ajp/AbstractAjpProtocol.java Thu Nov 26 14:01:40 2015
> @@ -16,6 +16,7 @@
> */
> package org.apache.coyote.ajp;
>
> +import java.io.IOException;
> import java.nio.ByteBuffer;
>
> import org.apache.coyote.AbstractProtocol;
> @@ -171,8 +172,8 @@ public abstract class AbstractAjpProtoco
>
> @Override
> protected Processor createUpgradeProcessor(SocketWrapperBase<?> socket,
> - ByteBuffer leftoverInput, UpgradeToken upgradeToken) {
> - // TODO should fail - throw IOE
> - return null;
> + ByteBuffer leftoverInput, UpgradeToken upgradeToken) throws IOException {
> + throw new IOException(sm.getString("ajpprotocol.noUpgradeHandler",
> + upgradeToken.getHttpUpgradeHandler().getClass().getName()));
> }
> }
>
> Modified: tomcat/trunk/java/org/apache/coyote/ajp/LocalStrings.properties
> URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/LocalStrings.properties?rev=1716656&r1=1716655&r2=1716656&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/coyote/ajp/LocalStrings.properties (original)
> +++ tomcat/trunk/java/org/apache/coyote/ajp/LocalStrings.properties Thu Nov 26 14:01:40 2015
> @@ -14,6 +14,7 @@
> # limitations under the License.
> ajpprotocol.noSSL=SSL is not supported with AJP. The SSL host configuration for [{0}] was ignored
> ajpprotocol.noUpgrade=Upgrade is not supported with AJP. The UpgradeProtocol configuration for [{0}] was ignored
> +ajpprotocol.noUpgradeHandler=Upgrade is not supported with AJP. The HttpUpgradeHandler [{0}] can not be processed
Is this message just logged, or it is visible by an end user?
I guess that it happens at early stages of processing, so a user
receives an empty response page + some HTTP status code. I guess that
it is not logged, as it can be triggered by end user and such messages
usually are not logged by default (and in rare cases are logged with
UserDataHelper's help).
If such a message is visible by an end user, I have concern with it
mentioning the protocol name (AJP):
1) It is confusing. An average user does not know what "AJP" is.
2) A user should not know what protocol is used by a proxy.
I think maybe s/AJP/this protocol/. The actual protocol should be
clear from stacktrace or thread name.
Best regards,
Konstantin Kolinko
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org