我想创建一个多用户api,用户登录到一个宁静的服务,并拥有自己的空间来说预订课程。用户之间不会共享预订。
我很难理解创造这个的最佳模式,同时尽可能地利用春季靴子的魔力。
我正在使用Spring Boot JPA并使用@Entity定义User和Booking类。
我的预订然后引用此用户类。但有一种方法我可以使用@RepositoryRestResource或类似的注释来自动隔离每个用户的数据模型,然后使用Spring Security来保护CRUD端点,或者我是否需要创建自己的@RestResponse,根据他们的授权和用户查找用户然后创建一个findByUser方法来执行隔离?
(注意我是Spring,Spring Boot等的新手)
编辑:有人建议我查看ACL,但我很难找到好的SIMPLE资源来解释它们是如何工作的
答案 0 :(得分:6)
如果您确实拥有每个用户的隔离数据,并且您希望透明机制能够仅选择或更新您可以看到的数据,那么您应该查看T eclipselink的多租户支持。
http://wiki.eclipse.org/EclipseLink/Development/Indigo/Multi-Tenancy
这是一个关于在spring-data-jpa中进行设置的已接受答案的问题 Multi tenancy with spring data jpa and eclipselink
hibernate似乎也支持多租户 http://docs.jboss.org/hibernate/orm/5.0/userGuide/en-US/html_single/#d5e3197
但请记住,启用多租户的实体的查询总是按租户ID进行过滤 - 因此分离非常严格。