8

我正在使用带有 Jersey 的 App Engine 构建一个应用程序。我想使用@RolesAllowed(Role_user)允许在请求中创建过滤器的注释。

问题是我们需要配置类SecurityContextFilter

我的目标是让id用户存储在会话中,然后直接在function : public ContainerRequest filter(ContainerRequest request)我的班级中检查他们的角色SecurityContextFilter

我需要注入HttpRequest来获取会话,但是当我注入它时,我得到了一个异常Java.lang.Null

我想在类中获得一个会话对象ContainerRequest

我怎样才能做到这一点?

编辑:

我找到了解决此问题的方法,但我不知道这是否干净:您可以直接在函数中注入 HttpRequest:isUserInRole(_role) 所以我使用它并通过会话获取我的 userId 然后获取角色用户我检查是否匹配 _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 回答