Mentions légales du service

Skip to content
Snippets Groups Projects
Commit edb9e045 authored by Gabriel Landais's avatar Gabriel Landais
Browse files

Async message process

git-svn-id: https://scm.gforge.inria.fr/authscm/ycadoret/svn/gazelle/Maven/gazelle-proxy/trunk@21479 356b4b1a-1d2b-0410-8bf1-ffa24008f01e
parent 2d03d3c2
No related branches found
No related tags found
No related merge requests found
......@@ -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);
......
......@@ -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);
}
......
......@@ -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);
}
......
......@@ -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
......
......@@ -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;
}
......
......@@ -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>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment