现在要给下边这个方法设置shiro权限。
要求是:User角色中的每个用户只能查看自己的信息。
例如:用户user1的id为1,用户user2的id为2,让user1只能访问“account/1”,而不能访问“account/2”等其他用户的信息。
使用shiro注解能否实现,难道只能通过写代码来实现了吗。
@RequestMapping(value = "account/{id}", method = RequestMethod.GET)
public String getAccount(@PathVariable("id") Long id, Model model) {
//省略。。
return "account/userView";
}
通过对上下文分析,猜想LZ应该是JAVA初学者,针对上诉场景主要有两种解决方案:
其一、RBAC(基于角色),从SESSION中获取用户登陆角色,然后判断是否为管理员,然后可能需要带入ID进入查询。
其二、RBAC(基于资源),从授权信息中获取用户是否具有查询所有数据的权限,然后可能需要带入ID进入查询。
早期应用中经常使用方法一中的方法将用户分为若干类型,现在比较推荐使用方法二,即不管角色,只管授权。
总而言之,过程就是,通过对登陆认证信息的判断获取用户类型,如果只能查自己的就带入ID否则就查询全部。
希望以上答案能给你一定帮助。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。