Spring security Spring数据Rest分区数据

Spring security Spring数据Rest分区数据,spring-security,spring-data-neo4j,spring-data-rest,database-partitioning,Spring Security,Spring Data Neo4j,Spring Data Rest,Database Partitioning,我想知道,如果将Spring安全性与Spring数据rest结合使用,是否可以对数据进行分区,以便restapi的用户只能说出与它们相关的数据 更具体地说,假设Spring数据ne04j通过具有Spring安全性的HATEOAS公开。如果给客户机一个oauth2令牌,该令牌是否可以通过编程方式仅用于给用户他创建的或与他相关的图形的子集 例如,一家银行披露了一个账户的一些行为。给客户端一个oauth令牌。客户端应该只能在其帐户上查看和执行HTTP操作,而不能对任何其他用户执行 默认情况下,一旦可以

我想知道,如果将Spring安全性与Spring数据rest结合使用,是否可以对数据进行分区,以便restapi的用户只能说出与它们相关的数据

更具体地说,假设Spring数据ne04j通过具有Spring安全性的HATEOAS公开。如果给客户机一个oauth2令牌,该令牌是否可以通过编程方式仅用于给用户他创建的或与他相关的图形的子集

例如,一家银行披露了一个账户的一些行为。给客户端一个oauth令牌。客户端应该只能在其帐户上查看和执行HTTP操作,而不能对任何其他用户执行


默认情况下,一旦可以访问HATEOAS端点,就可以查看所有数据。在没有太多繁重工作的情况下,是否有办法限制此操作?

您可以使用@PreAuthorize在操作前执行授权检查,并使用@PostFilter过滤返回的数据

一些例子:

@PreAuthorize("#contact.name == authentication.name")
public void doSomething(Contact contact);

@PostFilter ("filterObject.owner == authentication.name")
public List<Book> getBooks();
@PreAuthorize(#contact.name==authentication.name”)
公共无效剂量测定(联系);
@PostFilter(“filterObject.owner==authentication.name”)
公共列表getBooks();

Wow,他几乎对这件事放弃了希望。我去看看。如果它符合我的要求,我将接受答案检查Spring数据团队给出的这个文档化示例: