いくつかのWebサービスを実装するJavaサーバーアプリケーションがあるとします。また、アプリケーションユーザーを認証できるとします。
ここで、ユーザーごとにサービスの使用にいくつかの制限を追加したいと思います。たとえば、レート制限(1秒あたりのリクエスト数)、最大リクエストサイズなどです。
それを行うための「すぐに使える」ライブラリはJavaにありますか?
いくつかのWebサービスを実装するJavaサーバーアプリケーションがあるとします。また、アプリケーションユーザーを認証できるとします。
ここで、ユーザーごとにサービスの使用にいくつかの制限を追加したいと思います。たとえば、レート制限(1秒あたりのリクエスト数)、最大リクエストサイズなどです。
それを行うための「すぐに使える」ライブラリはJavaにありますか?
私はまだそのようなものが利用できるのを見ていません。ただし、Java EE統合セキュリティを使用している場合は、独自のLoginModuleを実装してブートストラップし、Webサービスコードに触れることなくこれらのチェックを実行できます。
http://docs.oracle.com/javase/6/docs/technotes/guides/security/jaas/JAASLMDevGuide.htmlを参照してください
すべての通話が通過する認証/承認サービスがある場合は、このユーザーごとの制限を組み込むことができます。カスタムコーディングなしで実行できるフレームワークを私は知りません。
理想的には、この種のロジックはサービス自体の外部で構成するのが最適です。私はラクダが要求の数のために作り付けのスロットルを提供することを知っています。独自のスロットリングポリシーを定義して、ユーザーごとのリクエスト数をマッピングできます。
Simpleインターセプタークラスを作成する必要があります。カスタムチェックを行うことができるonPreExecute()メソッドがあります。Springで使用しました。