在阅读几篇文档后,我对如何开始使用shiro插件有点模糊。我决定反对Nimble,因为它附带了几个表和UI插件。
我使用自己的表格设置带有通配符域的shiro插件。我可以使用基于许可(基于棕褐色角色)的访问控制,因为它可以很好地扩展。现在,它的步骤。
现在,
1.何时通过过滤器使用accesscontrol?
2.是否有一个注入控制器的闭包,我可以在其中定义动作的权限?我在每个控制器上阅读了一些关于accessControl静态闭包的内容,但似乎没有记录
3.如何创建典型的访问控制方案,只有(某些东西,帖子等)的创建者可以删除它?一种可能性是基于用户标识创建和持久化权限字符串。检查权限检索对象(post),获取userid并与subject进行比较..看起来有点复杂..任何简单的实现?
非常感谢.. 巴布。
答案 0 :(得分:1)
1何时使用访问控制安全过滤器?
一个。如果要限制对经过身份验证的用户的控制器操作的访问,请使用accessControl {true}。
B中。如果要根据权限“$ {controllerName}:$ {actionName}”限制对控制器操作的访问,请使用accessControl(),而不管参数内容如何。
℃。如果要根据参数内容限制操作,例如只删除您具有删除权限“$ {name}:$ {id}:delete”的域对象,您需要在控制器中明确检查isPermitted。
3如何创建典型的访问控制方案,仅限于 创造者?
我会在创建帖子时向用户添加必要的权限,例如“post:$ {postId}:*”这样,权限属于用户和/或角色,而不属于Shiro工作方式中的任意域对象。而不是文件系统权限,它属于文件和目录而不是用户。