0

を使用してRESTベースの Web サービスを開発していjerseyます。この Web サービスにロールベースの承認を実装したいと考えています。

ここで、1 つのメソッドがあるとしますgetUsers()

@RolesAllowed("ADMIN")
@Path("\Users")
@GET
public void getUsers() {
  // some code.
}

getUsers()要求のために呼び出されますGET \Users

リクエストを受け取った後、資格情報を使用してクライアントを認証し、クライアントの役割を決定してから、リクエストを通過させるか拒否するかを決定する必要があります。

資格情報の取得とユーザーの認証は問題ではありません。リクエストに対して実行されるメソッドへの参照を取得する方法が必要です。

その @RolesAllowed アノテーションをチェックして、アクセスを許可または拒否できるようにします。

には、次のメソッドRestEasyを持つインターフェースがあります。PreProcessInterceptor

 preProcess(HttpRequest request, ResourceMethod methodInvoked)

ResourceMethod's getMethod()この場合に呼び出されるメソッドへの参照を提供しますgetUsers()。このMethod参照を使用して、注釈を確認して何かを行うことができます。

今私の質問は、どうすればそれを行うことができJerseyますか?

RestEasyのJersey代替とは何ですか? PreProcessInterceptor

4

1 に答える 1

2

ExtendedUriInfoを注入してgetMatchedResourceMethodを呼び出すことができます。これは (マッチング後の) フィルターでも機能するはずなので、JAX-RS ContainerRequestFilterを使用できるはずです。

次にResourceMethod .getInvocable().getHandlingMethod() を呼び出すと、必要なものをすべて確認できます:)

于 2013-08-11T16:15:38.247 に答える