【发布时间】:2016-07-19 13:23:18
【问题描述】:
我正在构建一个使用 OAuth2 作为安全组件的 SpringBoot RESTful api。
我想知道如何保护我的资源,但更多地考虑业务逻辑。例如,如果我有一个课程列表/rest/v1/courses,而这门课程有一个Supervisor,并假设我登录为 ROLE_SUPERVISOR(没有管理员访问权限)并且我拨打了/rest/v1/courses 的电话,作为业务逻辑我只能查看我担任主管的课程。
1) 我应该发/rest/v1/courses?supervisor_id=2。经典过滤器,如果我在哪里有管理员就可以了,但是任何登录的人都可以在跟踪 url 并更改 id 时看到其他数据。
2) 我应该创建一个/rest/v1/courses 并从成功登录中获取supervisor_id 吗?所以我必须根据登录数据检查每个请求。
我认为这是更安全的方法,但听起来有点乏味,而且我可能会忘记在任何控制器方法中执行安全检查。
3)也许有更通用的解决方案,我找不到或想不到?
谢谢你,对不起我的英语。
【问题讨论】:
标签: api rest security spring-boot