我需要将基于 Spring Boot 的应用程序的嵌入式 tomcat 限制为某些 IP 地址。我只想允许来自两个 IP 地址的传入连接,而不是全部。
我知道如何在未运行嵌入式的 Tomcat 中执行此操作,但不知道在 Spring Boot 中配置此操作的方法。各种种类server.tomcat.*
属性似乎不提供对此的支持。有物业server.address
这使我能够绑定到本地 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");
Tomcat 的 RemoteAddressFilter 文档 https://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#Remote_Address_Filter
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)