【问题标题】:Accepting request from specific ip in Spring Boot在 Spring Boot 中接受来自特定 ip 的请求
【发布时间】:2020-06-04 10:23:05
【问题描述】:
【问题讨论】:
标签:
java
spring
spring-boot
server
jboss
【解决方案1】:
IMO 教程中提到的 Valve 是自定义嵌入到 Jboss 应用程序中的 tomcat 的方法。请注意,本教程真的很老了——从 2014 年开始,JBoss 可能从那时起发生了变化。
我记得当时 JBoss 确实在里面包含了 Tomcat 来处理 Web 请求,所以可能有某种 server.xml 的 tomcat。
现在,还有其他方法:
将应用程序放置在一些会限制访问的代理之后。如果您的环境支持,这可能是最好的方法。
在应用程序中使用过滤器。您可以创建一个 Web 过滤器并将其注册到 Spring Boot 应用程序中,无论它是带有嵌入式服务器的 Jar 还是您计划在 JBoss 上部署的 WAR。这可能非常灵活,但另一方面它包含一些 Java 编码,并且会消耗应用程序的一些资源。如果您的应用程序中没有 Spring Security 并且您不想引入,则可以使用此方法,否则请阅读 (3)。
类似于 2 的释义,但与 spring security 一起使用,内置过滤设施:here is how you can do that。请注意,除了用于实现的实际 Java 代码外,3 和 2 非常相似。
【解决方案3】:
对我来说,这个问题应该在基础设施级别而不是在应用程序容器中处理。我建议研究 AWS 安全组或其他云提供商的等效概念。
如果您在私有云/裸机中运行它,您应该调查以将其限制在您的基础架构提供的传输层上。应该有一些可能配置防火墙规则。