如何设计我的 Spring 程序,以便当用户登录时我可以判断他们是教职员工、学生还是教职员工?
Posted
技术标签:
【中文标题】如何设计我的 Spring 程序,以便当用户登录时我可以判断他们是教职员工、学生还是教职员工?【英文标题】:How can I design my Spring program so that when a user logs in I can tell if they are a Staff member, student or faculty member? 【发布时间】:2020-11-28 19:14:19 【问题描述】:更多细节。就像我说的那样,我正在构建这个大学管理系统,它将具有用户身份验证。它还将对 web 层的某些部分进行用户授权,例如,只有学生能够访问学生门户网站以添加/删除课程,并且只有教师能够使用教师门户网站对学生进行评分并查看他们的当然列表。
问题出在这里:当有人登录时(这都是使用 Spring Security 和 Spring MVC 顺便说一句),我需要能够从登录信息本身判断这是否是学生、教职员工理想情况下。并且查询每个表直到我找到匹配项似乎是可怕的设计。每个实体都继承自一个通用抽象类 Person,但它们共享的接口非常基本,它们具有用于 ID、名字、姓氏等的 getter 和 setter。我可以将 Authorization 角色存储在抽象类中,这会告诉我这个 Person 实例是 Staff、Student 还是 Faculty,然后检查角色以确定我正在使用的特定子类,但这似乎也是人为的。有没有一种直观和常识性的方法来解决这个问题?
【问题讨论】:
【参考方案1】:我认为您可以在名为 userType 的实体类中创建一个枚举字段,然后创建一个过滤器类,根据用户的 userType 确定对位于 api 层中的函数的访问。您可以通过从数据库中请求它来有效地获取 userType,并在用户登录后将其存储在服务器上的数据结构(如 HashMap)中。
【讨论】:
以上是关于如何设计我的 Spring 程序,以便当用户登录时我可以判断他们是教职员工、学生还是教职员工?的主要内容,如果未能解决你的问题,请参考以下文章