diff options
Diffstat (limited to 'jsonrpc/src/main/java/com/orbekk/rpc/RpcHandler.java')
-rw-r--r-- | jsonrpc/src/main/java/com/orbekk/rpc/RpcHandler.java | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/jsonrpc/src/main/java/com/orbekk/rpc/RpcHandler.java b/jsonrpc/src/main/java/com/orbekk/rpc/RpcHandler.java index bc76e4e..39676fe 100644 --- a/jsonrpc/src/main/java/com/orbekk/rpc/RpcHandler.java +++ b/jsonrpc/src/main/java/com/orbekk/rpc/RpcHandler.java @@ -10,18 +10,25 @@ import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.handler.AbstractHandler; import com.googlecode.jsonrpc4j.JsonRpcServer; +import com.orbekk.same.CallerInfoListener; public class RpcHandler extends AbstractHandler { private JsonRpcServer rpcServer; + private CallerInfoListener callerInfoListener; - public RpcHandler(JsonRpcServer rpcServer) { + public RpcHandler(JsonRpcServer rpcServer, + CallerInfoListener callerInfoListener) { this.rpcServer = rpcServer; + this.callerInfoListener = callerInfoListener; } @Override - public void handle(String target, Request baseRequest, + public synchronized void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { + if (callerInfoListener != null) { + callerInfoListener.setCaller(request.getRemoteAddr()); + } rpcServer.handle(request, response); } } |