12

假设我有一个 Java 服务器应用程序,它实现了一些 Web 服务。还假设我可以对应用程序用户进行身份验证。

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

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

4

4 回答 4

2

您可以通过配置拦截器来使用 Apache CXF 做到这一点。这个页面有一个高级配置的例子。此页面包含有关拦截器的详细信息。通过验证,您可以随心所欲。我不知道如何获得经过身份验证的用户。

于 2012-09-24T18:42:29.487 回答
1

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

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

于 2012-09-24T21:53:15.587 回答
1

您需要创建一个简单的拦截器类。有一个 onPreExecute() 方法,您可以在其中放置自定义检查。我已经将它与 Spring 一起使用。

于 2014-09-16T12:44:51.900 回答
1

我还没有看到类似的东西可用。但是,如果您使用的是 Java EE 集成安全性,您可以引导它实现您自己的 LoginModule,您可以在其中执行这些检查,而无需接触您的 Web 服务代码。

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

于 2012-09-24T18:29:18.513 回答