2012-09-24 19 views
11

いくつかのWebサービスを実装するJavaサーバーアプリケーションがあるとします。また、アプリケーションユーザーを認証できるとします。JavaアプリケーションでWebサービスの使用を制限する方法は?

ここでは、ユーザーあたりの制限数をと追加したいと思います。レートリミット(要求数/秒)、最大要求サイズなど

これを行うためにJavaには「すぐに使える」ライブラリがありますか?

+1

アイデンティティに基づく制限(ユーザーXはサービスを1分間に100回しか呼び出せないなど)を明確にするだけですか? – home

+0

はい、アイデンティティに基づく制限を意味します。 – Michael

答えて

1

を参照してください。このpageには上位レベル構成の例があります。このpageにはインターセプタの詳細があります。あなたはあなたの妥当性検査であなたが望むように空想的になることができます。私は認証されたユーザーを取得する方法を手で知らない。

1

私はまだ利用可能なものを見ています。しかし、Java EE統合セキュリティを使用している場合は、独自のLoginModuleを実装してブートストラップすることができます。ここでは、Webサービスコードに触れずにチェックを行うことができます。

はあなたがインターセプタを設定することで、ApacheのCXFでそれを行うことができhttp://docs.oracle.com/javase/6/docs/technotes/guides/security/jaas/JAASLMDevGuide.html

1

すべての通話が通過する認証/認可サービスをお持ちの場合は、このユーザーごとの制限をそれに組み込むことができます。私はあなたがカスタムコーディングなしで行うことができるフレームワークを認識していません。

理想的には、この種のロジックは、サービス自体の外部で構成するのが最適です。私はラクダが要求の数を調整して提供していることを知っています。独自のスロットルポリシーを定義して、ユーザーごとの要求数をマップできます。

1

Simpleインターセプタクラスを作成する必要があります。カスタムチェックを入れるonPreExecute()メソッドがあります。私は春にそれを使用しました。

関連する問題