diff --git a/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/App.java b/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/App.java index 574cfe17e658605437115775495f6d71c0eed4c8..9612e29a7f5e812f0d0530f3bd3154b996bb6ec3 100644 --- a/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/App.java +++ b/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/App.java @@ -15,6 +15,12 @@ import javax.net.ssl.SSLSession; import javax.net.ssl.SSLSocketFactory; import javax.net.ssl.TrustManager; +import org.jboss.netty.handler.codec.http.HttpRequest; +import org.jboss.netty.handler.codec.http.HttpResponse; + +import jp.digitalsensation.ihej.transactionmonitor.dicom.messageexchange.DimseMessage; +import net.ihe.gazelle.proxy.netty.protocols.dicom.DicomEventListenerSimple; +import net.ihe.gazelle.proxy.netty.protocols.dicom.DicomProxy; import net.ihe.gazelle.proxy.netty.protocols.http.HttpEventListenerSimple; import net.ihe.gazelle.proxy.netty.protocols.http.HttpProxy; import net.ihe.gazelle.proxy.netty.protocols.tls.AlwaysTrustManager; @@ -22,16 +28,23 @@ import net.ihe.gazelle.proxy.netty.protocols.tls.TlsConfig; import net.ihe.gazelle.proxy.netty.protocols.tls.TlsCredentials; import net.ihe.gazelle.proxy.netty.protocols.tls.TlsKeyManager; -import org.jboss.netty.handler.codec.http.HttpRequest; -import org.jboss.netty.handler.codec.http.HttpResponse; - public class App { public static void main(String[] args) throws Exception { // testHttpsConnection(); - final ProxyEventListener<HttpRequest, HttpResponse> proxyEvent = new HttpEventListenerSimple(System.out); - HttpProxy proxy = new HttpProxy(proxyEvent, 1443, "127.0.0.1", 8443, createTLSConfig()); - proxy.start(); + final ProxyEventListener<DimseMessage, DimseMessage> dicomProxyEvent = new DicomEventListenerSimple(System.out); + DicomProxy dicomProxy = new DicomProxy(dicomProxyEvent, 10012, "jumbo-4.irisa.fr", 10012, "/tmp/dicom", null); + dicomProxy.start(); + + final ProxyEventListener<HttpRequest, HttpResponse> httpProxyEvent = new HttpEventListenerSimple(System.out); + HttpProxy httpProxy = new HttpProxy(httpProxyEvent, 8080, "jumbo-4.irisa.fr", 8080, null); + httpProxy.start(); + + // final ProxyEventListener<HttpRequest, HttpResponse> proxyEvent = new + // HttpEventListenerSimple(System.out); + // HttpProxy proxy = new HttpProxy(proxyEvent, 1443, "127.0.0.1", 8443, + // createTLSConfig()); + // proxy.start(); // HttpProxy proxy = new HttpProxy(proxyEvent, 8082, // "office.tiani-spirit.com", 6102); diff --git a/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/channel/ProxyLoggerRequest.java b/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/channel/ProxyLoggerRequest.java index e1247014a4f426af0e28858fa5e595380aba494a..42213a6e002905a3ff9283efea3bce4c0c490f63 100644 --- a/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/channel/ProxyLoggerRequest.java +++ b/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/channel/ProxyLoggerRequest.java @@ -25,7 +25,7 @@ public class ProxyLoggerRequest<REQU, RESP> extends SimpleChannelUpstreamHandler @Override public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception { - Object message = e.getMessage(); + final Object message = e.getMessage(); String fromIp = null; int fromPort = 0; SocketAddress remoteAddress = e.getRemoteAddress(); @@ -35,8 +35,15 @@ public class ProxyLoggerRequest<REQU, RESP> extends SimpleChannelUpstreamHandler fromPort = inetSocketAddress.getPort(); } try { - proxyConfig - .handleMessage(message, ProxySide.REQUEST, fromIp, fromPort, matchingHandler.getRequestChannel()); + final String fromIpFinal = fromIp; + final int fromPortFinal = fromPort; + new Thread(new Runnable() { + public void run() { + proxyConfig.handleMessage(message, ProxySide.REQUEST, fromIpFinal, fromPortFinal, + matchingHandler.getRequestChannel()); + } + }).start(); + } catch (Throwable t) { log.error("Fail to handle request", t); } diff --git a/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/channel/ProxyLoggerResponse.java b/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/channel/ProxyLoggerResponse.java index eafc831203f8fe3a6e3bab9f468c0463f810c919..f0573a026d8b6396ce95c459e4d646e26735b46a 100644 --- a/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/channel/ProxyLoggerResponse.java +++ b/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/channel/ProxyLoggerResponse.java @@ -28,10 +28,14 @@ public class ProxyLoggerResponse<REQU, RESP> extends SimpleChannelUpstreamHandle @Override public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception { - Object message = e.getMessage(); + final Object message = e.getMessage(); try { - proxyConfig.handleMessage(message, ProxySide.RESPONSE, requesterIp, requesterPort, - matchingHandler.getRequestChannel()); + new Thread(new Runnable() { + public void run() { + proxyConfig.handleMessage(message, ProxySide.RESPONSE, requesterIp, requesterPort, + matchingHandler.getRequestChannel()); + } + }).start(); } catch (Throwable t) { log.error("Fail to handle response", t); } diff --git a/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/protocols/http/HttpEventListenerSimple.java b/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/protocols/http/HttpEventListenerSimple.java index 7cf89848605bf82d75cae31078623f5c3526f6f6..ec3440e2b4561dc3b39b3e093b7d2caa272ed426 100644 --- a/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/protocols/http/HttpEventListenerSimple.java +++ b/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/protocols/http/HttpEventListenerSimple.java @@ -3,9 +3,7 @@ package net.ihe.gazelle.proxy.netty.protocols.http; import java.io.PrintStream; import net.ihe.gazelle.proxy.netty.ProxyEventListenerAbstract; -import net.ihe.gazelle.proxy.netty.channel.ProxyTools; -import org.jboss.netty.buffer.ChannelBuffers; import org.jboss.netty.handler.codec.http.HttpMessage; import org.jboss.netty.handler.codec.http.HttpRequest; import org.jboss.netty.handler.codec.http.HttpResponse; @@ -17,24 +15,7 @@ public class HttpEventListenerSimple extends ProxyEventListenerAbstract<HttpRequ } protected String decodeMessage(HttpMessage message) { - String contentType = message.getHeader("Content-Type"); - String dump = null; - if (contentType != null && isTextual(contentType)) { - dump = ProxyTools.dump(message.getContent()); - } else { - dump = ChannelBuffers.hexDump(message.getContent()); - } - return message.toString() + "\nDUMP :\n" + dump; - } - - private boolean isTextual(String contentType) { - if (contentType.startsWith("text/")) { - return true; - } - if (contentType.contains("xml")) { - return true; - } - return false; + return message.toString(); } @Override diff --git a/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/protocols/http/HttpProxyConfig.java b/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/protocols/http/HttpProxyConfig.java index 1c07268fb821bd9d3740fcdd4e212932bb1b7dc6..8e3cd26d964e022ae314f0b6790f81b7fef033ca 100644 --- a/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/protocols/http/HttpProxyConfig.java +++ b/gazelle-proxy-netty/src/main/java/net/ihe/gazelle/proxy/netty/protocols/http/HttpProxyConfig.java @@ -57,13 +57,15 @@ public class HttpProxyConfig extends ProxyConfigAbstract<HttpRequest, HttpRespon case REQUEST: if (message instanceof HttpRequest) { HttpRequest request = (HttpRequest) message; - eventListener.onRequest(request, requesterIp, requesterPort, getRemoteHost(), getRemotePort(), requestChannel.getId()); + eventListener.onRequest(request, requesterIp, requesterPort, getRemoteHost(), getRemotePort(), + requestChannel.getId()); } break; case RESPONSE: if (message instanceof HttpResponse) { HttpResponse response = (HttpResponse) message; - eventListener.onResponse(response, requesterIp, requesterPort, getRemoteHost(), getRemotePort(), requestChannel.getId()); + eventListener.onResponse(response, requesterIp, requesterPort, getRemoteHost(), getRemotePort(), + requestChannel.getId()); } break; } diff --git a/pom.xml b/pom.xml index 1afe5825248785e89b0a6016dd60bccabc8f2930..bc579acda5d01131f326c501e3ef0b2f367ff456 100644 --- a/pom.xml +++ b/pom.xml @@ -334,7 +334,8 @@ </activation> <properties> - <cas.service>http://131.114.254.7:8080/proxy/</cas.service> + <!-- <cas.service>http://131.114.254.7:8080/proxy/</cas.service> --> + <cas.service>http://surimi.irisa.fr:8080/proxy/</cas.service> <!-- development mode (disable in production) --> <seam.debug>false</seam.debug>