多用户restful api使用spring boot,jpa和security

Hay*_*yan 7 spring spring-security spring-data-jpa

我想创建一个多用户api,用户登录到一个宁静的服务,并有自己的空间来说预订课程.用户之间不会共享预订.

我正在努力理解创造这个的最佳模式,同时尽可能地利用弹簧靴的魔力.

我正在使用Spring Boot JPA并使用@Entity定义User和Booking类.

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

(注意我是Spring,Spring Boot等的新手)

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

Mat*_*nkt 6

如果您确实拥有每个用户的隔离数据,并且您希望透明机制能够仅选择或更新您可以看到的数据,那么您应该看看T eclipselink的多租户支持.

http://wiki.eclipse.org/EclipseLink/Development/Indigo/Multi-Tenancy

这是一个关于在spring-data-jpa中进行设置的公认答案的问题, 有弹簧数据jpa和eclipselink的多租户

hibernate似乎也支持多租户 http://docs.jboss.org/hibernate/orm/5.0/userGuide/en-US/html_single/#d5e3197

但请记住,对多租户启用的实体的查询总是按租户ID进行过滤 - 因此分离非常严格.

  • 确实如此 - 我只会在您确实需要完全分离数据时使用它 - 但您可以在实体级别打开它 - 这样您就不必在所有实体上启用租赁 (2认同)