我知道我可以在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"); } }