使用spring boot、jpa和安全性的多用户restful api

使用spring boot、jpa和安全性的多用户restful api,spring,spring-security,spring-data-jpa,Spring,Spring Security,Spring Data Jpa,我想创建一个多用户api,在这里用户登录到一个restful服务并拥有自己的空间,比如预订类。用户之间不共享预订 我正在努力理解最好的模式是什么来创建它,同时尽可能多地利用spring boot的魔力 我正在使用SpringBootJPA并使用@Entity定义一个用户和预订类 然后,我的预订将引用此用户类。但是,是否有一种方法可以使用@RepositoryRestResource或类似的注释自动隔离每个用户的数据模型,然后使用Spring Security保护CRUD端点,或者我是否需要创建自

我想创建一个多用户api,在这里用户登录到一个restful服务并拥有自己的空间,比如预订类。用户之间不共享预订

我正在努力理解最好的模式是什么来创建它,同时尽可能多地利用spring boot的魔力

我正在使用SpringBootJPA并使用@Entity定义一个用户和预订类

然后,我的预订将引用此用户类。但是,是否有一种方法可以使用@RepositoryRestResource或类似的注释自动隔离每个用户的数据模型,然后使用Spring Security保护CRUD端点,或者我是否需要创建自己的@Restreponse,根据用户的授权查找用户,然后创建findByUser方法来执行隔离

(注意我对Spring、Spring Boot等不熟悉)


编辑:有人建议我研究ACL,但我很难找到好的简单资源来解释它们是如何工作的

如果您确实为每个用户提供了独立的数据,并且您希望透明的机制能够只选择或更新允许您查看的数据,那么您应该看看eclipselink的多租户支持

下面是一个关于在SpringDataJPA中设置此项的问题和公认的答案

hibernate似乎也支持多租户


但是请记住,对支持多租户的实体的查询总是通过租户id进行过滤-因此分离非常严格。

Awesome-谢谢。看起来非常有趣。似乎更适用于需要完全分离的情况。确切地说,我只会在您确实需要完全分离数据时使用它,但您可以在实体级别打开它,这样您就不必在所有实体上启用租约。我还发现了一个视频教程,它使用注释来限制特定用户(视频快结束时)