我正在使用jersey(java)框架。我使用容器请求过滤器基于cookie进行了身份验证。现在我必须做授权。那么,我该怎么办?请快速指导。
答案 0 :(得分:1)
泽西岛有@RolesAllowed("role")
注释以方便验证。利用:
@Context
HttpServletRequest httpRequest;`
并在登录方法中将标识放入会话中,如下所示:
HttpSession session = httpRequest.getSession(true);
session.setAttribute(key, val);
过滤器中的
final String name = session.getAttribute(key);
...
SecurityContext securityContext = new SecurityContext() {
public boolean isUserInRole(String roleName) {
return roleName.equals("role");
}
...
public Principal getUserPrincipal() {
...
return new Principal() {
public String getName() {
return name;
}
};
...
}
...
};
requestContext.setSecurityContext(securityContext);
简而言之就是这样。这是很常见的方法。如果你想我可以在GitHub上分享ref impl。