保护私有内部Web api免受公共访问的机制

时间:2012-12-14 14:18:53

标签: java web-services security api web-applications

我有一个由静态HTML页面和JS组成的java应用程序。在应用程序中,我有类似REST的API,由JS从静态HTML调用。在应用程序前面是一个前端代理服务器,比如Nginx或Apache。 前端服务器位于服务器S1上,servlet容器位于服务器S2上。

我有一个页面http://example.com/mycontext/page.html,其中包含调用位于http://example.com/mycontext/api/someresource的REST API的JS文件 前端将所有请求匹配http://example.com/mycontext/传递给我的应用程序。

我想在我的应用程序中引入另一个web api,仅供内部使用,即这个新的api应该被我的内部网中的其他应用程序(例如来自服务器S3)调用并且可见,而不是来自互联网。

我希望这个api基于HTTP,WS或类似REST,并且由同一个servlet容器管理,比如我的应用程序部署的Tomcat。

我有哪些选择?

1 个答案:

答案 0 :(得分:2)

  

我的前端将所有与http://example.com/mycontext/*匹配的请求传递给我的应用

在这种情况下,最简单的答案是更改前端而不是以通过http://example.com/mycontext/private/*,然后让其他服务器直接在http://server.internal.ip:8080/mycontext/private上访问您的内部API。