You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2006/11/30 14:34:55 UTC
svn commit: r480919 - in
/webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/transport/http/server:
DefaultHttpConnectionFactory.java DefaultHttpServiceProcessor.java
Author: dims
Date: Thu Nov 30 05:34:54 2006
New Revision: 480919
URL: http://svn.apache.org/viewvc?view=rev&rev=480919
Log:
Fix for AXIS2-1751 - Allow Axis2 to know the IP address and host name of the remote client when using the SimpleHTTPServer
Modified:
webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/transport/http/server/DefaultHttpConnectionFactory.java
webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/transport/http/server/DefaultHttpServiceProcessor.java
Modified: webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/transport/http/server/DefaultHttpConnectionFactory.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/transport/http/server/DefaultHttpConnectionFactory.java?view=diff&rev=480919&r1=480918&r2=480919
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/transport/http/server/DefaultHttpConnectionFactory.java (original)
+++ webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/transport/http/server/DefaultHttpConnectionFactory.java Thu Nov 30 05:34:54 2006
@@ -39,7 +39,7 @@
public class DefaultHttpConnectionFactory implements HttpConnectionFactory {
final HttpParams params;
-
+
public DefaultHttpConnectionFactory(final HttpParams params) {
super();
if (params == null) {
@@ -47,12 +47,36 @@
}
this.params = params;
}
-
+
public HttpServerConnection newConnection(final Socket socket)
throws IOException {
- DefaultHttpServerConnection conn = new DefaultHttpServerConnection();
+ DefaultHttpServerConnection conn = new Axis2HttpServerConnection();
conn.bind(socket, this.params);
return conn;
}
-
+
+ public class Axis2HttpServerConnection extends DefaultHttpServerConnection {
+ public Axis2HttpServerConnection() {
+ super();
+ }
+
+ public String getRemoteIPAddress() {
+ java.net.SocketAddress sa = socket.getRemoteSocketAddress();
+ if (sa instanceof java.net.InetSocketAddress) {
+ return ((java.net.InetSocketAddress) sa).getAddress().getHostAddress();
+ } else {
+ return sa.toString();
+ }
+ }
+
+ public String getRemoteHostName() {
+ java.net.SocketAddress sa = socket.getRemoteSocketAddress();
+ if (sa instanceof java.net.InetSocketAddress) {
+ return ((java.net.InetSocketAddress) sa).getHostName();
+ } else {
+ return sa.toString(); // fail-safe and fall back to something which one can use in place of the host name
+ }
+ }
+ }
+
}
Modified: webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/transport/http/server/DefaultHttpServiceProcessor.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/transport/http/server/DefaultHttpServiceProcessor.java?view=diff&rev=480919&r1=480918&r2=480919
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/transport/http/server/DefaultHttpServiceProcessor.java (original)
+++ webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/transport/http/server/DefaultHttpServiceProcessor.java Thu Nov 30 05:34:54 2006
@@ -56,6 +56,7 @@
import org.apache.http.RequestLine;
import org.apache.http.StatusLine;
import org.apache.http.UnsupportedHttpVersionException;
+import org.apache.http.impl.DefaultHttpServerConnection;
import org.apache.http.entity.StringEntity;
import org.apache.http.protocol.HttpContext;
import org.apache.http.protocol.ResponseConnControl;
@@ -72,6 +73,7 @@
private final SessionManager sessionManager;
private final Worker worker;
private final IOProcessorCallback callback;
+ private HttpServerConnection conn;
private HttpContext httpcontext = null;
@@ -82,6 +84,7 @@
final Worker worker,
final IOProcessorCallback callback) {
super(conn);
+ this.conn = conn;
if (worker == null) {
throw new IllegalArgumentException("Worker may not be null");
}
@@ -147,6 +150,14 @@
MessageContext msgContext = new MessageContext();
msgContext.setIncomingTransportName(Constants.TRANSPORT_HTTP);
+
+ if (conn instanceof DefaultHttpConnectionFactory.Axis2HttpServerConnection) {
+ DefaultHttpConnectionFactory.Axis2HttpServerConnection axis2Con =
+ (DefaultHttpConnectionFactory.Axis2HttpServerConnection) conn;
+ msgContext.setProperty(MessageContext.REMOTE_ADDR, axis2Con.getRemoteIPAddress());
+ LOG.debug("Remote address of the connection : " + axis2Con.getRemoteIPAddress());
+ }
+
try {
TransportOutDescription transportOut = this.configurationContext.getAxisConfiguration()
.getTransportOut(new QName(Constants.TRANSPORT_HTTP));
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org