我正在使用带引擎的App Engine构建应用程序。我想使用允许在请求中创建过滤器的注释@RolesAllowed(Role_user)
。
问题是我们需要配置类SecurityContextFilter
。
我的目标是让用户的id
存储在会话中,然后直接在我的班级function : public ContainerRequest filter(ContainerRequest request)
的{{1}}中检查他们的角色。
我需要注入SecurityContextFilter
才能获得会话,但是当我注入会话时,我得到一个异常HttpRequest
。
我想在课程Java.lang.Null
中获取会话对象。
我该怎么做?
修改
我找到了解决此问题的方法,但我不知道这是否干净:您可以直接在函数中注入HttpRequest:isUserInRole(_role) 所以我使用这个,然后我通过会话得到我的userId然后获得角色用户,我检查是否匹配_role并返回true或false。
答案 0 :(得分:1)
我很不确定你是否可以在HttpServletRequest
的球衣上注射ContainerRequestFilter
,但你仍然可以通过编程方式而不是使用注释:
@Override
public ContainerRequest filter(ContainerRequest request) {
if(request.isUserInRole("SOME_ROLE")){
//process some treatement
}
return request;
}
BR。