CXF Web 服务限制

Emi*_*l D 4 java security web-services cxf

我是 CXF 的新手,我想知道它是否有任何内置机制可以限制对 Web 服务的并发调用数量,从而解决 DoS 攻击的可能性?与 WCF 的此功能类似的东西?

http://www.danrigsby.com/blog/index.php/2008/02/20/how-to-throttle-a-wcf-service-help-prevent-dos-attacks-and-maintain-wcf-scalability/

Dan*_*ulp 5

CXF 具有一些开箱即用的能力。CXF 端点可以在调用者上配置一个工厂,用于获取被调用的对象。开箱即用,有一个PooledFactory可以维护实例池。它可以设置为创建超出最大值的额外实例,从而等待更多实例被释放。这可以限制一些事情。您可以通过 spring config 或通过 impl 上的注释进行配置:

@FactoryType(value=FactoryType.Type.POOLED, args={"25"})
Run Code Online (Sandbox Code Playgroud)

(25 是池的最大大小)

但是,这在处理过程中非常晚。当它到达那里时,所有的 XML 都已被解析,jaxb 对象已创建,等等……对于 DOS,您可能希望更早地停止。您可以实现一个拦截器,该拦截器位于链的早期,它将保持存储在端点上的计数。递增并检查传入链,递减传出链。