首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >动态访问动态端点

动态访问动态端点
EN

Stack Overflow用户
提问于 2021-09-09 21:02:55
回答 1查看 71关注 0票数 0

我正在编写一个spring应用程序,我正在集成spring安全性,以处理所有与用户相关的授权内容。我正在做一个类似于大学的系统(您可以登录并查看您的课程、公告等),但问题是:我有两种类型的角色,一种是在user表下声明的(用户是或不是管理员),然后是用户和课程之间的关系(以及它在课程中的角色,例如学生、教师等)。

问题是,取决于我所在的课程(假设/ course /5),用户可以(或者不能,取决于关系userId courseId \ roleId)是教师(例如,课程内的教师应该能够发布公告),所以我应该找到一种从URL获取courseId的方法,调用DAO获取当前记录的内容--在该课程中担任用户角色,并在此基础上做出决定(例如,重定向到具有比学生更多功能的JSP视图)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-09 22:10:21

在我看来,你有两种方法可以做到这一点:

  1. 实现了要添加到身份验证/授权链中的自定义筛选器,以检查此筛选器。这种方法的缺点是,您需要知道根据请求调用哪个DAO,这可能不是一段很好的代码。此外,如果用户获得了该课程的授权,您很可能会调用DAO两次(在授权期间和稍后在您的业务逻辑中)。其他详细信息:https://www.baeldung.com/spring-security-custom-filter.
  2. You可以在应用常规业务逻辑之前检查这一点。在处理HTTP请求的服务中,您将检查用户是否获得了该过程的授权,如果没有授权,则抛出异常或任何您认为合适的其他方式。这样做的好处是不重复对DAO的调用(获取课程细节)。缺点是您的授权逻辑将与常规业务逻辑混在一起。尽管有些人可能不同意,但我认为这是可以接受的,因为检查用户是否获得了课程授权也是您常规业务逻辑的一部分。

话虽如此,我还是同意第二种选择。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69124705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档