RESTEasy身份验证和授权

时间:2013-10-10 06:23:12

标签: java-ee jboss jax-rs resteasy

我正在尝试在RESTEasy应用程序中添加身份验证和授权。

这是我的服务方法,我想限制为具有“admin”角色的用户:

@RolesAllowed("admin")
@PUT
@Path("/hosts/{id}")
@Produces("application/json")
public Response updateHost(@PathParam("id") int id) {

这是我的拦截器

@Provider
public class SecurityInterceptor implements javax.ws.rs.container.ContainerRequestFilter
{

  @Override
  public void filter(ContainerRequestContext requestContext)
  {   

但是,我的filter方法没有被调用,并且没有完成updateHost的授权。阅读文档后,我的理解是SecurityInterceptor上的@Provider将确保在收到请求后调用其过滤方法。 任何人都可以帮我弄清楚它为什么不被召唤?

1 个答案:

答案 0 :(得分:3)

我发现我们需要在Web部署描述符中启用基于角色的安全性:

  <context-param>
    <param-name>resteasy.role.based.security</param-name>
    <param-value>true</param-value>
  </context-param>