【问题标题】:Restrict RESTful endpoint on tomcat to local webapp将 Tomcat 上的 RESTful 端点限制为本地 webapp
【发布时间】:2013-11-18 00:27:37
【问题描述】:

Tomcat 或 Apache 中是否有内置机制来区分本地 Web 应用程序调用本地 Web 服务与直接调用 Web 服务?

例如,单个服务器同时具有 apache 和 tomcat 服务器,其中前端 Web 应用程序部署到 apache 和后端服务部署在 tomcat 上。 webapp 可以使用 mod_proxy 通过端口 80 调用服务,但是直接调用 webservice 并检查 tomcaat 的日志显示请求是相同的。例如:

http://127.0.0.1/admin/tools   

<Location /admin/tools>
     Order Deny,Allow
     Deny from all
     Allow from 127.0.0.1
  </Location>
ProxyPass /admin/tools http://localhost:8080/admin/tools
ProxyPassReverse /admin/tools http://localhost:8080/admin/tools

这只会阻止(或如果您删除拒绝,则允许)所有外部请求,并且两个请求在 tomcat 的日志中显示相同。

是否有推荐的机制来区分和限制直接远程服务请求与发出服务请求的 Web 应用程序?

【问题讨论】:

    标签: web-services rest tomcat mod-proxy ajp


    【解决方案1】:

    您需要使用Tomcat的Remote IP Filter来提取X-Forwarded-For HTTP标头中代理提供的客户端IP,并使用它来填充Tomcat的内部数据结构。这样您就可以正确识别请求的来源了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-20
      • 1970-01-01
      • 2013-04-25
      • 2021-04-07
      • 2012-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多