【问题标题】:In Spring Data Rest, How to prevent DELETE HTTP methods from being exported from my JpaRepository?在 Spring Data Rest 中,如何防止从我的 JpaRepository 中导出 DELETE HTTP 方法?
【发布时间】:2021-06-24 19:47:09
【问题描述】:

我正在使用 spring-data-rest 并且我有一个这样的 JpaRepository:

@RepositoryRestResource(path = "projects")
public interface ProjectsRepository extends JpaRepository<MetricsProjects, Integer> {...}

我的仓库界面:

@RepositoryRestResource(path = "projects")
public interface ProjectsRepository extends JpaRepository<MetricsProjects, Integer> {
    
    List<MetricsProjects> findByProjectName(String projectName);
    
    @Override
    @RestResource(exported = false)
    public void deleteById(Integer id);
    
    @Override
    @RestResource(exported = false)
    public void delete(MetricsProjects entity);
    
    @Override
    @RestResource(exported = false)
    public void deleteAll(Iterable<? extends MetricsProjects> entities);
    
    @Override
    @RestResource(exported = false)
    public void deleteAll();
    
    @Override
    @RestResource(exported = false)
    public void deleteInBatch(Iterable<MetricsProjects> entities);
    
    @Override
    @RestResource(exported = false)
    public void deleteAllInBatch();

}

我还添加了 disableDefaultExposure() ,正如某处建议的那样。

我的配置文件:

@Configuration
public class SpringDataRestConfiguration implements RepositoryRestConfigurer {
    
    @Override
    public void configureRepositoryRestConfiguration(RepositoryRestConfiguration restConfig) {
        restConfig.disableDefaultExposure();
    }

}

但我仍然看到从我的 Swagger-UI 中暴露的 DELETE 方法,我该如何防止这种情况发生?

【问题讨论】:

    标签: spring-boot spring-data-jpa swagger spring-data-rest


    【解决方案1】:

    为 DELETE 端点创建一个控制器方法并返回 405 Method Not Allowed。

    【讨论】:

      猜你喜欢
      • 2016-05-11
      • 2015-05-24
      • 2015-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      • 2018-10-07
      相关资源
      最近更新 更多