如何在Java EE 6.0中使用@RolesAllowed

时间:2016-09-13 20:39:14

标签: jax-rs java-ee-6

我正在使用jax-rs 1.1(作为此JavaEE 6.0)并且想要一种标准方法来管理我的资源的权限。我试过这个:

@Path("/public/login/")
@Stateless
@RolesAllowed("ADMIN")
public class LoginResource implements Serializable {

    @POST
    @Consumes("application/json")
    @Produces("application/json")
    public Response login(Usuario usuario) {
       ....
    }

}

但它似乎没有效果。我错过了什么?

1 个答案:

答案 0 :(得分:0)

您的应用程序可能缺少web.xml中的安全约束,在这种情况下,它忽略了任何安全注释。

尝试将以下内容添加到web.xml

<security-constraint>
    <web-resource-collection>
        <web-resource-name>all</web-resource-name>
        <url-pattern>/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>admins</role-name>
    </auth-constraint>
    <user-data-constraint>
        <transport-guarantee>NONE</transport-guarantee>
    </user-data-constraint>
</security-constraint>
<security-role>
    <role-name>admins</role-name>
</security-role>