Author: rjung
Date: Sun Mar 22 17:55:35 2009
New Revision: 757223
URL: http://svn.apache.org/viewvc?rev=757223&view=rev
Log:
Followup to r756926 (forward remote port via AJP13).
- Use a more private attribute name and
define it in the Constants class.
- Do not set the attribute on the request,
only use it for the remote port.
Modified:
tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java
tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
tomcat/trunk/java/org/apache/coyote/ajp/Constants.java
tomcat/trunk/java/org/apache/jk/common/AjpConstants.java
tomcat/trunk/java/org/apache/jk/common/HandlerRequest.java
Modified: tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java?rev=757223&r1=757222&r2=757223&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AjpAprProcessor.java Sun Mar 22
17:55:35 2009
@@ -715,18 +715,20 @@
String n = tmpMB.toString();
requestHeaderMessage.getBytes(tmpMB);
String v = tmpMB.toString();
- request.setAttribute(n, v);
/*
* AJP13 misses to forward the remotePort.
- * Apache automatically sets REMOTE_PORT to the remote port.
- * Allow the user to set "JkEnvVar REMOTE_PORT" and
- * let us accept the forwarded port as the remote port.
+ * Allow the AJP connector to add this info via
+ * a private request attribute.
+ * We will accept the forwarded data as the remote port,
+ * and remove it from the public list of request attributes.
*/
- if(n.equals("REMOTE_PORT")) {
+ if(n.equals(Constants.SC_A_REQ_REMOTE_PORT)) {
try {
request.setRemotePort(Integer.parseInt(v));
} catch (NumberFormatException nfe) {
}
+ } else {
+ request.setAttribute(n, v);
}
break;
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=757223&r1=757222&r2=757223&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java Sun Mar 22
17:55:35 2009
@@ -721,18 +721,20 @@
String n = tmpMB.toString();
requestHeaderMessage.getBytes(tmpMB);
String v = tmpMB.toString();
- request.setAttribute(n, v);
/*
* AJP13 misses to forward the remotePort.
- * Apache automatically sets REMOTE_PORT to the remote port.
- * Allow the user to set "JkEnvVar REMOTE_PORT" and
- * let us accept the forwarded port as the remote port.
+ * Allow the AJP connector to add this info via
+ * a private request attribute.
+ * We will accept the forwarded data as the remote port,
+ * and remove it from the public list of request attributes.
*/
- if(n.equals("REMOTE_PORT")) {
+ if(n.equals(Constants.SC_A_REQ_REMOTE_PORT)) {
try {
request.setRemotePort(Integer.parseInt(v));
} catch (NumberFormatException nfe) {
}
+ } else {
+ request.setAttribute(n, v );
}
break;
Modified: tomcat/trunk/java/org/apache/coyote/ajp/Constants.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/ajp/Constants.java?rev=757223&r1=757222&r2=757223&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/ajp/Constants.java (original)
+++ tomcat/trunk/java/org/apache/coyote/ajp/Constants.java Sun Mar 22 17:55:35
2009
@@ -88,6 +88,11 @@
// Used for attributes which are not in the list above
public static final byte SC_A_REQ_ATTRIBUTE = 10;
+ /**
+ * AJP private request attributes
+ */
+ public static final String SC_A_REQ_REMOTE_PORT = "AJP_REMOTE_PORT";
+
// Terminates list of attributes
public static final byte SC_A_ARE_DONE = (byte)0xFF;
Modified: tomcat/trunk/java/org/apache/jk/common/AjpConstants.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jk/common/AjpConstants.java?rev=757223&r1=757222&r2=757223&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jk/common/AjpConstants.java (original)
+++ tomcat/trunk/java/org/apache/jk/common/AjpConstants.java Sun Mar 22
17:55:35 2009
@@ -97,6 +97,11 @@
public static final byte SC_A_REQ_ATTRIBUTE = 10;
/**
+ * AJP private request attributes
+ */
+ public static final String SC_A_REQ_REMOTE_PORT = "AJP_REMOTE_PORT";
+
+ /**
* Terminates list of attributes
*/
public static final byte SC_A_ARE_DONE = (byte)0xFF;
Modified: tomcat/trunk/java/org/apache/jk/common/HandlerRequest.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/jk/common/HandlerRequest.java?rev=757223&r1=757222&r2=757223&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/jk/common/HandlerRequest.java (original)
+++ tomcat/trunk/java/org/apache/jk/common/HandlerRequest.java Sun Mar 22
17:55:35 2009
@@ -454,20 +454,22 @@
String n=tmpMB.toString();
msg.getBytes( tmpMB );
String v=tmpMB.toString();
- req.setAttribute(n, v );
- if(log.isTraceEnabled())
- log.trace("jk Attribute set " + n + "=" + v);
/*
* AJP13 misses to forward the remotePort.
- * Apache automatically sets REMOTE_PORT to the remote port.
- * Allow the user to set "JkEnvVar REMOTE_PORT" and
- * let us accept the forwarded port as the remote port.
+ * Allow the AJP connector to add this info via
+ * a private request attribute.
+ * We will accept the forwarded data as the remote port,
+ * and remove it from the public list of request attributes.
*/
- if(n.equals("REMOTE_PORT")) {
+ if(n.equals(AjpConstants.SC_A_REQ_REMOTE_PORT)) {
try {
req.setRemotePort(Integer.parseInt(v));
} catch (NumberFormatException nfe) {
}
+ } else {
+ req.setAttribute(n, v );
+ if(log.isTraceEnabled())
+ log.trace("jk Attribute set " + n + "=" + v);
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]