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:36 UTC
svn commit: r480918 - in
/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server:
DefaultHttpConnectionFactory.java DefaultHttpServiceProcessor.java
Author: dims
Date: Thu Nov 30 05:34:35 2006
New Revision: 480918
URL: http://svn.apache.org/viewvc?view=rev&rev=480918
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/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/DefaultHttpConnectionFactory.java
webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/DefaultHttpServiceProcessor.java
Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/DefaultHttpConnectionFactory.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/DefaultHttpConnectionFactory.java?view=diff&rev=480918&r1=480917&r2=480918
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/DefaultHttpConnectionFactory.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/DefaultHttpConnectionFactory.java Thu Nov 30 05:34:35 2006
@@ -50,9 +50,33 @@
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/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/DefaultHttpServiceProcessor.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/DefaultHttpServiceProcessor.java?view=diff&rev=480918&r1=480917&r2=480918
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/DefaultHttpServiceProcessor.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/transport/http/server/DefaultHttpServiceProcessor.java Thu Nov 30 05:34:35 2006
@@ -57,6 +57,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;
@@ -73,6 +74,7 @@
private final SessionManager sessionManager;
private final Worker worker;
private final IOProcessorCallback callback;
+ private HttpServerConnection conn;
private HttpContext httpcontext = null;
@@ -83,6 +85,7 @@
final Worker worker,
final IOProcessorCallback callback) {
super(conn);
+ this.conn = conn;
if (worker == null) {
throw new IllegalArgumentException("Worker may not be null");
}
@@ -148,6 +151,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