Tag: reverse proxy

使用Jpcap创建反向代理

我需要创建一个接收HTTP请求的程序,并将这些请求转发给Web服务器。 图http://img269.imageshack.us/img269/1862/h98trsly.jpg 我已成功使用Java套接字,但客户端需要在Jpcap中实现该程序。 我想知道这是否可行以及我应该为这个项目阅读哪些文献。 这就是我现在通过拼接Jpcap教程中的各个部分来实现的: import java.net.InetAddress; import java.io.*; import jpcap.*; import jpcap.packet.*; public class Router { public static void main(String args[]) { //Obtain the list of network interfaces NetworkInterface[] devices = JpcapCaptor.getDeviceList(); //for each network interface for (int i = 0; i < devices.length; i++) { //print out its name and description System.out.println(i+": "+devices[i].name […]

使Java servlet充当代理的代码?

我有两个Java Web应用程序,它们有一个servlet,它被映射到一个特定的URL: red.war/ WEB-INF/classes com.me.myorg.red.RedServlet (maps to http://red.example.com/doStuff) blue.war/ WEB-INF/classes com.me.myorg.blue.BlueServlet (maps to http://blue.example.com/doStuff) 我想把这些应用程序(我称之为“后端应用程序”)放在“代理应用程序”(servlet)后面,这将决定这两个应用程序中的哪一个最终将服务于客户端请求。 此代理Web应用程序将接收传入的HTTP请求,并确定将请求转发到的2个“后端应用程序”(红色或蓝色)中的哪一个。 然后,请求将转发到http://red.example.com/doStuff (然后由RedServlet#doGet(…) )或http://blue.example.com/doStuff (然后处理)通过BlueServlet#doGet(…) )。 然后,后端应用程序返回的响应(同样, RedServlet#doGet(…)或BlueServlet#doGet(…) )将返回到代理Servlet,最终返回给客户端。 换句话说,在伪代码中: public class ProxyServlet extends HttpServlet { @Override public doGet(HttpServletRequest request, HttpServletResponse response) { String forwardingAddress; if(shouldBeRed(request)) forwardingAddress = “http://red.example.com/doStuff”; else forwardingAddress = “http://blue.example.com/doStuff”; PrintWriter writer = response.getWriter(); writer.write(getResponseFromBackend(forwardingAddress, request)); } […]

在反向代理后面需要使用Spring Security的https

我有一个使用Spring Security保护的Spring MVC应用程序。 大多数应用程序使用简单的http来节省资源,但是一小部分处理更多机密信息并需要https频道。 从security-config.xml提取: … 一切正常,直到我们决定将其迁移到主服务器,其中应用程序服务器在反向代理后面运行。 现在,HTTPS由反向代理处理,应用程序服务器只能看到HTTP请求,并且不允许访问/sec/**层次结构。 经过一些研究,我发现代理添加了一个X-Forwarded-Proto: https头(*) ,但在Spring Security中, HttpServletRequest.isSecure()用于确定所提供的通道安全性 (从SecureChannelProcessor javadoc中提取) 如何告诉Spring Security X-Forwarded-Proto: https标头足以满足安全请求? 我知道我可以在代理配置上报告该部分,但代理管理员确实不喜欢该解决方案,因为代理背后有许多应用程序,并且配置可能会增长到不可管理的状态。 我目前正在使用带有XML配置的Spring Security 3.2,但我已准备好接受基于Java配置和/或更新版本的答案。 (*)当然,代理如果它在传入请求中存在则删除标题,因此应用程序可以对它充满信心。