我有一个简单的球衣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工作?
答案 0 :(得分:8)
找到它: - )
@RolesAllowed(“admin”)不是@RolesAllowed(“{admin}”)
最重要的一个:
寄存器(RolesAllowedDynamicFeature.class);
答案 1 :(得分:1)
您可以在web.xml中使用以下内容
<context-param>
<param-name>resteasy.role.based.security</param-name>
<param-value>true</param-value>
</context-param>