当前位置: 首页 > 知识库问答 >
问题:

保护spring-data-rest的数据

唐泳
2023-03-14

我正在使用Spring Data Rest向我们的React前端应用程序公开JPA存储库。我还使用Spring Security性和JWT来保护REST API。

@Entity
@Table(name = "customer")
public class Customer {
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private long id;
  ....
}

public interface CustomerRepository extends PagingAndSortingRepository<Customer, Long> {
}

我的问题:

  • 如何预防这样的异常用法?
  • 使用Spring Data REST的最佳实践是什么?

共有1个答案

诸葛利
2023-03-14

您的应用程序通过使用Spring Data REST公开了一个REST API。其中一个实体是Customer实体,它通过CustomerRepository公开。在通过调用/api/customers查询所有实体的列表时,只需要列出那些customer实体,查询主体有权查看这些实体。

这可以通过使用@prefilter@postfilter注释有问题的方法来完成,如Spring Security参考文档中所述。您需要指定某种条件。

一个例子:

@PostFilter(hasPermission(filterObject, 'read'))
public List<Customer> findAll();

注意@postfilter遍历返回的值,这可能需要一些时间,具体取决于返回列表的大小。

 类似资料:
  • 我正在尝试为我的Spring应用程序实现一个REST API。因为有些资源可能不是每个人都可以访问的,所以我需要一个安全层。 我不知道该如何进行。使用Spring Security保护REST API的最佳方法是什么?

  • 如何使用Spring Boot保护REST服务(OAuth)? 我能得到的最接近的是:http://spring.io/guides/gs/securing-web/http://spring.io/guides/gs/authenticating-ldap/

  • Spring Data REST 的目标是提供坚实的基础,从而使用 HTTP REST 语义来开放 CRUD 操作到你的 JPA 库管理的实体。 这个端口的首次实现使用 Spring MVC 以及标准的 Servlet 架构,从而简单的包括你的域类和他们的对应库定义,轻松将一个 WAR 文集那部署成一个全面的 CRUD 应用程序。以后的实现将允许你通过使用高通量非阻塞的IO,在 non-Servl

  • 本文向大家介绍ASP.NET Core 数据保护(Data Protection)中篇,包括了ASP.NET Core 数据保护(Data Protection)中篇的使用技巧和注意事项,需要的朋友参考一下 前言  上篇主要是对 ASP.NET Core 的 Data Protection 做了一个简单的介绍,本篇主要是介绍一下API及使用方法。  API 接口  ASP.NET Core Dat

  • 本文向大家介绍ASP.NET Core 数据保护(Data Protection)上篇,包括了ASP.NET Core 数据保护(Data Protection)上篇的使用技巧和注意事项,需要的朋友参考一下 前言  上一篇记录了如何在 Kestrel 中使用 HTTPS(SSL), 也是我们目前项目中实际使用到的。  数据安全往往是开发人员很容易忽略的一个部分,包括我自己。近两年业内也出现了很多因

  • 我正在寻找一个最佳实践和高效的解决方案,以确保通过REST与Web客户端应用程序通信的多个微服务的安全。 当前设置: 这些微服务是用Java制作的,带有Spring框架,并运行在Docker容器中。 客户端是一个Angular 2应用程序。 我创建了一个新的µ服务,它将充当“网关”,是我的web客户端和其他服务之间的唯一通信点。 我从远程身份验证API检索JWT加密令牌(让我们称之为LOCK) 我