横向权限问题
来源:7-1 SpringSecurity授权简介

zjg23
2017-10-08
有某个角色才能访问某个url,这种权限我理解为纵向的权限。
想请教下横向权限一般是怎么控制的?
比如用户a可以访问他自己的订单/order/{userid}/{orderid},但是用户b就不能访问用户a的订单,虽然
他们都有访问订单的角色。是在接口中写代码控制么?
如果有组的概念的呢?
比如用户a,b都属于组A,他们就可以访问组A下的一些资源,但用户c不属于组A,他就不可以访问组A
的资源,这种情况怎么控制?
写回答
1回答
-
嗯,我们管url的控制叫操作权限,你说的这个叫数据权限。数据权限的话只能是自己开发了,至于开发成什么样就看需求和开发者的水平了...我们的做法是在持久层查询时,在执行sql前根据权限拼不同的where条件,比如你举的例子,那么用户在访问订单服务,执行订单的查询时,如果用户的角色是普通用户,会自动加上userId=a或userId=b的条件,这样他就只能查到自己的订单,而如果用户角色是管理员,则不会加额外的where条件。然后再设计页面让业务人员可以配置数据权限。
012017-10-13
Spring Security技术栈开发企业级认证与授权
Spring Security技术栈,REST风格开发常见接口,独立开发认证授权模块保证REST服务安全
2662 学习 · 1561 问题
相似问题