Spring Security :创建多个入口点来保护不同的rest控制器

llmtgqce  于 2021-07-14  发布在  Java
关注(0)|答案(1)|浏览(330)

我正在探索spring框架,尤其是我正在开发一个电影院管理应用程序,它将连接到react.js spa(单页应用程序)。
问题如下。在我的数据库中,有三个不同的表,代表三种不同类型的用户,即admin、customer和employee。
对于每种类型的用户,我都创建了一个 @RestController 有一份 RequestMethod 特定用户能够执行的操作:

"/admin" 
"/customer"
"/employee"

我现在试图实现的是,保护提供三个不同登录页的每个端点的安全,这三个登录页将处理不同类型用户的身份验证。
我怎么能设置三个 AuthenticationManager 处理不同的 Authentication 给定这些要求的securityconfig类中的对象,最重要的是,我如何覆盖授权,注意每个用户一旦登录,将只能访问相应的端点?
我仔细研究了网上的其他示例,其中大多数都是完全不同的,遵循一种模式,即数据库有另一个额外的 'Authorities' table旁边 'user' 存储凭证的人。在我的例子中,这个解决方案不能被应用,不仅因为整个设计会变得多余,而且因为应用程序将执行身份验证检查的表的名称明确地暗示了给定用户在系统中拥有的授权。

lxkprmvk

lxkprmvk1#

你的设计听起来很奇怪。
用户应该有一个角色,例如admin、customer、employee,根据用户的角色,他可以访问或不访问方法。看看基于角色的访问控制概念。对于spring security,例如本教程:
https://www.baeldung.com/role-and-privilege-for-spring-security-registration

相关问题