有关Spring MVC中Apache Shiro的一些问题

时间:2017-04-12 13:01:22

标签: spring-mvc shiro

我下载了一个使用Apache Shiro作为安全层的Spring MVC项目。在控制器中,它使用@RequiresPermissions来定义权限,例如:

@RequiresPermissions("sys:user:view")
@RequestMapping(value = {"index"})
public String index(User user, Model model) {
    return "modules/sys/userIndex";
}

@RequiresPermissions("sys:user:view")
@RequestMapping(value = {"list", ""})
public String list(User user, HttpServletRequest request, HttpServletResponse response, Model model) {
    return "modules/sys/userList";
}

我有几个问题:

  1. 这是什么样的许可?我检查了Shiro documents,根据文档,三个部分应该是“domain:action:instance”,但在上面的代码中,前两部分是路径,最后一部分是动作。所以我只是感到困惑。
  2. 我不确定注释@RequiresPermissions是否用于定义权限。我尝试使用它定义一个新权限,但失败了。如果不是,如何定义新权限?

1 个答案:

答案 0 :(得分:0)

实际权限String是自由形式。 &#34;结构域:动作:实例&#34;就是一个例子。您可以使用类似users:write或更一般<domain>:<instance>:<action>的内容。但没有什么可以阻止你使用像users:1234:write这样的东西。使用相同的两个示例,您将分别拥有users:*:writeswiftmailer: auth_mode: login

至于#2你的领域(或RolePermissionResolver)负责定义用户和权限(或角色和权限)之间的映射