我正在使用 App Engine 和 Jersey 构建一个应用程序。我想使用注释@RolesAllowed(Role_user)
谁允许在请求中创建过滤器。
问题是我们需要配置类SecurityContextFilter
.
我的目标是获得id
存储在会话中的用户的信息,然后直接在会话中检查他们的角色function : public ContainerRequest filter(ContainerRequest request)
我班的SecurityContextFilter
.
我需要注射HttpRequest
获得会话,但是当我注入它时,我得到一个异常Java.lang.Null
.
我想在类中获取一个会话对象ContainerRequest
.
我怎样才能做到这一点?
EDIT:
我已经找到了这个问题的解决方案,但我不知道这是否干净:您可以直接在函数中注入 HttpRequest : isUserInRole(_role)
所以我使用它,通过会话获取我的 userId,然后获取角色 user,然后检查它是否匹配 _role 并返回 true 或 false。
我很不确定你是否可以注入HttpServletRequest
在上面ContainerRequestFilter
在 jersey 中,但您仍然可以以编程方式完成此操作,而不是使用注释:
@Override
public ContainerRequest filter(ContainerRequest request) {
if(request.isUserInRole("SOME_ROLE")){
//process some treatement
}
return request;
}
BR.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)