1

我已经开始在使用 spring mvc 3.0.5 和 zk 5.0.8 作为管理员的 Web 应用程序中使用 shiro 1.1.0。我没有 shiro 注释工作,所以我在安全应用程序上下文中指定了 requredroles:

/admin = authc, roles[ADMIN]

这工作正常并将我重定向到我创建的未经授权的分页。现在我得到了注释工作,所以我在一个类的顶部使用了@RequiresRoles(value={"manager","admin","superadmin"}):

@RequiresRoles(value = {"manager","admin","superadmin"})
public class ContentController extends GenericForwardComposer {...}

它抛出

org.apache.shiro.authz.UnauthorizedException:主题没有角色 [经理]

使用注释来捕获此类授权时,有什么要激活的吗?

感谢您阅读本文。

4

1 回答 1

0

根据RequireRoles javadoc,它应该在一个方法上而不是在一个类上定义。如果当前的 Subject 没有所需的角色,那么 Shiro 应该重定向到访问被拒绝的页面。

[更新] 我在 Shiro 问题跟踪器上看到了一个未解决的问题。所以它也应该适用于类级别。是相关的线程。

于 2012-03-06T01:22:39.847 回答