SpringMVC中关于Apache Shiro的一些问题
Some questions about Apache Shiro in Spring MVC
我下载了一个 Spring MVC 项目,它使用 Apache Shiro 作为安全层。在控制器中,它使用@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";
}
我对此有几个问题:
- 这是什么权限?我检查了 Shiro documents,根据文档,三部分应该是 "domain:action:instance",但是在上面的代码中,前两部分是路径,最后一部分是动作。所以我很困惑。
- 我不确定注解@RequiresPermissions 是否用于定义权限。我尝试使用它来定义新权限,但失败了。如果不是,如何定义新的权限?
实际权限字符串是自由格式的。 "domain:action:instance" 就是一个例子。您可以使用 users:write:1234
或更通用的 users:write
。但是没有什么能阻止你使用像 <domain>:<instance>:<action>
这样的东西。使用相同的两个示例,您将得到 users:1234:write
和 users:*:write
(分别)。
至于#2,你的领域(或RolePermissionResolver)负责定义用户和权限(或角色和权限)之间的映射
我下载了一个 Spring MVC 项目,它使用 Apache Shiro 作为安全层。在控制器中,它使用@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";
}
我对此有几个问题:
- 这是什么权限?我检查了 Shiro documents,根据文档,三部分应该是 "domain:action:instance",但是在上面的代码中,前两部分是路径,最后一部分是动作。所以我很困惑。
- 我不确定注解@RequiresPermissions 是否用于定义权限。我尝试使用它来定义新权限,但失败了。如果不是,如何定义新的权限?
实际权限字符串是自由格式的。 "domain:action:instance" 就是一个例子。您可以使用 users:write:1234
或更通用的 users:write
。但是没有什么能阻止你使用像 <domain>:<instance>:<action>
这样的东西。使用相同的两个示例,您将得到 users:1234:write
和 users:*:write
(分别)。
至于#2,你的领域(或RolePermissionResolver)负责定义用户和权限(或角色和权限)之间的映射