如何限制Java应用程序中的Web服务使用?

时间:2012-09-24 15:05:33

标签: java web-services security rate-limiting

假设我有一个Java服务器应用程序,它实现了一些Web服务。假设我也可以验证应用程序用户。

现在我想为服务使用添加一些每用户限制:例如速率限制(每秒请求数),最大请求数量等。

Java中是否有“即用型”库可以做到这一点?

4 个答案:

答案 0 :(得分:2)

您可以通过配置拦截器来使用Apache CXF。这个page有一个高级配置的例子。这个page有关于拦截器的详细信息。您可以根据自己的需要进行验证。我不知道如何获得经过身份验证的用户。

答案 1 :(得分:1)

我还没有看到类似的东西。但是,如果您正在使用Java EE集成安全性,则可以引导它实现您自己的LoginModule,您可以在不触及Web服务代码的情况下执行这些检查。

请参阅http://docs.oracle.com/javase/6/docs/technotes/guides/security/jaas/JAASLMDevGuide.html

答案 2 :(得分:1)

如果您拥有所有呼叫都经过的身份验证/授权服务,则可以将每个用户限制合并到其中。我不知道一个允许你不用自定义编码的框架。

理想情况下,这种逻辑最好在服务本身之外配置。我知道camel提供了多次请求的内置限制。您可以定义自己的限制策略以映射每个用户请求的数量。

答案 3 :(得分:1)

您需要创建一个Simple拦截器类。有一个onPreExecute()方法,您可以在其中进行自定义检查。我和Spring一起使用它。