Tomcat服务器IP地址限制方法?

时间:2013-07-08 01:56:40

标签: tomcat restriction

我知道我可以在tomcat服务器的context.xml中添加一个Valve来允许或拒绝某些IP地址:

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.0\.0\.1" denyStatus="403" />

除上述配置外,还有其他方法可以配置IP限制吗?

例如,我可以使用文本文件或数据库存储IP限制建议的IP地址吗?

非常感谢!!!

1 个答案:

答案 0 :(得分:2)

您可以动态注册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");
  }
}