如何在Tomcat中限制源IP对某些URL的访问?

Ran*_*eep 14 security tomcat access-control tomcat6 java-ee

我想限制访问我的Tomcat webapp中的某些URL.只允许3个已知IP地址访问适合某种模式的URL.

例如 http://example.com:1234/abc/personId

我怎样才能做到这一点?

Mar*_*mas 12

使用org.apache.catalina.filters.RemoteAddrFilter并将其映射到您要保护的URL.有关配置详细信息,请参阅http://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#Remote_Address_Filter.


小智 0

我不会限制 IP 地址的访问,原因如下:

  • 对内部地址(例如 10.0.0.0/24)执行此操作意味着您隐式信任整个范围。如果受到损害会发生什么?
  • 并非所有客户都可以或将能够获得静态 IP 地址 - 假设您可能希望允许某些客户访问。
  • 代理不支持x-forwarded-for标头的网关设备后面的客户将仅拥有网关设备的 IP;信任 IP 信任网关后面的每个人,再次假设您可能想要授予某些客户访问权限。

相反,如果您需要运行一个系统,其中某些调用只能由某些用户访问,我会使用身份验证 - SSL 客户端证书非常适合此目的。或者,您可以使用OAuth之类的东西。