我知道我可以在 tomcat 服务器的 context.xml 中添加一个 Valve 来允许或拒绝某些 IP 地址:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.0\.0\.1" denyStatus="403" />
除了以上配置,还有其他方法可以配置IP限制吗?
例如,我可以使用文本文件或数据库来存储 IP 地址以进行 IP 限制建议吗?
非常感谢你!!!
我知道我可以在 tomcat 服务器的 context.xml 中添加一个 Valve 来允许或拒绝某些 IP 地址:
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.0\.0\.1" denyStatus="403" />
除了以上配置,还有其他方法可以配置IP限制吗?
例如,我可以使用文本文件或数据库来存储 IP 地址以进行 IP 限制建议吗?
非常感谢你!!!
您可以动态注册 Tomcat 的远程地址过滤器。
http://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#Remote_Address_Filter
它看起来像这样:
@WebListener
public class MyServletContextListener implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent sce) {
// Get IP addresses from the DB or text file.
...
ServletContext sc = sce.getServletContext();
FilterRegistration fr;
fr = sc.addFilter("RemoteAddrFilter", "org.apache.catalina.filters.RemoteAddrFilter");
fr.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), true, "/*");
fr.setInitParameter("allow", "127\\.0\\.0\\.1");
fr.setInitParameter("denyStatus", "403");
}
}