Spring 如何在Java中实现SOAP-DoS防护

Spring 如何在Java中实现SOAP-DoS防护,spring,spring-boot,soap,spring-security,microservices,Spring,Spring Boot,Soap,Spring Security,Microservices,我们公司的技术堆栈是: Java, Spring MVC, Spring Boot, Jaxws etc.. 我们为客户提供Web服务来查询我们的服务 在保护SOAP服务方面。有些Web服务使用springOAuth安全性,有些Web服务使用springBasic Auth 最近,一个客户端在短时间内发送了大量请求,淹没了我们的服务器 我们将实施一些措施来防止这种情况发生。理想的 基于客户端的呼叫间隔。可以识别高呼叫频率。然后禁止客户端或强制客户端等待 在我们从头开始编写代码之前,我想知道是否

我们公司的技术堆栈是:

Java, Spring MVC, Spring Boot, Jaxws etc..
我们为客户提供Web服务来查询我们的服务

在保护SOAP服务方面。有些Web服务使用springOAuth安全性,有些Web服务使用springBasic Auth

最近,一个客户端在短时间内发送了大量请求,淹没了我们的服务器

我们将实施一些措施来防止这种情况发生。理想的 基于客户端的呼叫间隔。可以识别高呼叫频率。然后禁止客户端或强制客户端等待

在我们从头开始编写代码之前,我想知道是否有可以重用的库。Spring通常非常擅长为大多数企业问题提供解决方案。但到目前为止我还没有找到任何东西。任何提示,最好是工作样本。那太好了

EDIT1:理想情况下,我们希望实现这一点,而不是完全依赖HTTP服务器(例如tomcat或apache)来处理这一点。因为我们自己的实现将提供更细粒度的规则,比如间隔的长度,
我们可以返回什么样的定制消息,更重要的是,我们可以实施自己的监控机制,并以不同的流量津贴对待不同的客户机等等。

您是否想过使用“前端”(nginx/apache2等http服务器)处理这些问题。由于这与您的应用程序设计的业务无关,您不希望在应用程序中包含所有这些技术代码。请查看
com.google.guava
@AkliREGUIG的
RateLimiter
,请参阅更新。@chimmi-yeh,谢谢。RateLimitor可能会有所帮助,但它只是由一个标准java锁支持。我正在寻找一个理想的框架。你有没有考虑把API网关放在前面,比如Apigee(现在的谷歌)还是AWS API GW?这将使您能够管理任何DoS攻击(有意或无意),提供请求限制,并在将来减轻管理API版本的痛苦。您是否考虑过使用“前端”(http服务器,如nginx/apache2)处理这些问题。由于这与您的应用程序设计的业务无关,您不希望在应用程序中包含所有这些技术代码。请查看
com.google.guava
@AkliREGUIG的
RateLimiter
,请参阅更新。@chimmi-yeh,谢谢。RateLimitor可能会有所帮助,但它只是由一个标准java锁支持。我正在寻找一个理想的框架。你有没有考虑把API网关放在前面,比如Apigee(现在的谷歌)还是AWS API GW?这将使您能够管理任何DoS攻击(有意或无意),提供请求限制,并在将来减轻管理API版本的痛苦。