Java 保护私有内部web api不受公共访问的机制
我有一个由静态HTML页面和JS组成的java应用程序。在应用程序中,我有一个类似REST的API,JS从静态HTML调用它。应用程序前面是前端代理服务器,比如Nginx或Apache。 前端服务器位于服务器S1上,servlet容器位于服务器S2上 我有一个页面,其中包含调用RESTAPI的JS文件,位于 前端将所有匹配的请求传递给我的应用程序 我想在我的应用程序中引入另一个web api,仅供内部使用,也就是说,这个新的api应该仅由我的intranet中的其他应用程序调用和可见(比如从服务器S3),而不是从internet 我希望这个api是基于HTTP、WS或REST的,并且由部署我的应用程序的同一个servlet容器(比如Tomcat)管理 我有什么选择 我的前端通过所有请求匹配Java 保护私有内部web api不受公共访问的机制,java,web-services,security,api,web-applications,Java,Web Services,Security,Api,Web Applications,我有一个由静态HTML页面和JS组成的java应用程序。在应用程序中,我有一个类似REST的API,JS从静态HTML调用它。应用程序前面是前端代理服务器,比如Nginx或Apache。 前端服务器位于服务器S1上,servlet容器位于服务器S2上 我有一个页面,其中包含调用RESTAPI的JS文件,位于 前端将所有匹配的请求传递给我的应用程序 我想在我的应用程序中引入另一个web api,仅供内部使用,也就是说,这个新的api应该仅由我的intranet中的其他应用程序调用和可见(比如从服务
http://example.com/mycontext/*
添加到我的应用程序
在这种情况下,最简单的答案是将前端更改为不通过
http://example.com/mycontext/private/*
通过,然后让其他服务器直接在http://server.internal.ip:8080/mycontext/private
您没有提到服务器S1的位置(外部/内部),它是否需要访问S3提供的服务。@Perception S1可以通过internet访问,也可以访问内部服务器(S2、S3),但它不需要访问S3。@AlexanderYastrebov在两个应该通信的服务器/API之间有一个共享的秘密。客户端使用这个秘密来计算将由目标服务验证的MAC。看见你的问题可能与你的问题重复,我想你问的是我要找的。你能再给我介绍一下吗:谢谢。