3

我有一个简单的球衣 2.4 资源:

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

我还有一个 ContainerRequestFilter 设置自定义安全上下文:

public void filter(ContainerRequestContext requestContext) throws IOException {
requestContext.setSecurityContext(new MySecurityContext(...));
}

在 list() 函数中,我确实得到了正确的安全上下文:MySecurityContext。并且调用“securityContext.isUserInRole("admin")" 有效。

但是注解@RolesAllowed 似乎没有做任何事情,MySecurityContext 的isUserInRole 函数永远不会被调用。

我需要做一些特别的事情来让@RolesAllowed 工作吗?

4

2 回答 2

8

找到了 :-)

@RolesAllowed("admin") 不是 @RolesAllowed("{admin}")

最重要的一个:

注册(RolesAllowedDynamicFeature.class);

于 2013-11-12T15:47:10.137 回答
1

您可以在下面的 web.xml 中使用它

<context-param>
    <param-name>resteasy.role.based.security</param-name>
    <param-value>true</param-value>
</context-param>
于 2014-12-05T18:22:34.150 回答