8

App Engine と Jersey を使用してアプリケーションを構築しています。@RolesAllowed(Role_user)リクエストでフィルターの作成を許可するアノテーションを使用したいと思います。

問題は、クラスを構成する必要があることですSecurityContextFilter

私の目的は、ユーザーの をセッションに保存して、自分のクラスidのロールで直接確認することです。function : public ContainerRequest filter(ContainerRequest request)SecurityContextFilter

HttpRequestセッションを取得するには注入する必要がありますが、注入すると例外が発生しますJava.lang.Null

クラスでセッションオブジェクトを取得したいContainerRequest

これどうやってするの?

編集:

この問題の解決策を見つけましたが、これがクリーンかどうかはわかりません: HttpRequest を関数に直接挿入できます: isUserInRole(_role) だから私はこれを使用し、セッションで userId を取得してからロール user を取得しますそれが _role に一致するかどうかを確認し、true または false を返します。

4

1 に答える 1

1

HttpServletRequestジャージの上にa を挿入できるかどうかはよくわかりませんがContainerRequestFilter、注釈を使用する代わりにプログラムで実行できます。

@Override
public ContainerRequest filter(ContainerRequest request) {
    if(request.isUserInRole("SOME_ROLE")){
    //process some treatement
    }
    return request;
}

BR。

于 2014-02-01T12:09:16.733 に答える