我需要将基于Spring Boot的应用程序的嵌入式tomcat限制为某些ip地址。我只允许来自两个IP地址的传入连接,而不是全部。
我知道如何在未运行嵌入式Tomcat的情况下执行此操作,但不知道在Spring Boot中配置此方法的方法。各种server.tomcat.*
属性似乎对此不提供支持。有属性server.address
,使我可以绑定(bind)到本地ip地址,但这不是我所需要的。
最佳答案
找到了答案寻找相同的解决方案。这是在Spring Boot中执行此操作的更准确的方法。
@Bean
public FilterRegistrationBean remoteAddressFilter() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
RemoteAddrFilter filter = new RemoteAddrFilter();
filter.setAllow("192.168.0.2");
filter.setDenyStatus(404);
filterRegistrationBean.setFilter(filter);
filterRegistrationBean.addUrlPatterns("/*");
return filterRegistrationBean;
}
默认响应是403。要将其更改为404,请添加
filter.setDenyStatus(404);
您也可以使用
filter.setDeny("192\\.168\\.0\\.2");
设置拒绝地址RemoteAddressFilter Docs for Tomcat