Spring 数据剩余分区数据
Spring data Rest Partitioning Data
我想知道,如果要使用 Spring 安全和 Spring 数据休息,是否可以对数据进行分区,以便 REST API 的用户可以只说和他们有关的数据?
更具体地说,假设 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();
我想知道,如果要使用 Spring 安全和 Spring 数据休息,是否可以对数据进行分区,以便 REST API 的用户可以只说和他们有关的数据?
更具体地说,假设 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();