我有一个简单的jersey 2.4资源:

@RolesAllowed("admin")
public List<Folder> list(){}

我也有一个ContainerRequestFilter来设置自定义的securitycontext:
public void filter(ContainerRequestContext requestContext) throws IOException {
requestContext.setSecurityContext(new MySecurityContext(...));
}

在list()函数中,我确实获得了正确的securitycontext:MySecurityContext。并调用“securityContext.isUserInRole(“admin”)”起作用。

但是注解@RolesAllowed似乎没有执行任何操作,从未调用MySecurityContext的isUserInRole函数。

我需要做一些特别的事情才能使@RolesAllowed工作吗?

最佳答案

找到了 :-)

@RolesAllowed(“admin”)不是@RolesAllowed(“{admin}”)

最重要的是:

register(RolesAllowedDynamicFeature.class);

08-27 10:34