java - 限制 CrudRepository 中的创建操作,仅允许编辑操作

标签 java spring spring-boot spring-data

我正在使用 Spring Boot spring-data-rest 创建 CrudRepository,并向用户公开其余端点。

但我想阻止用户创建新记录。 仅允许用户更新现有记录。

怎样才能实现呢? CrudRepository 没有 create 方法,只有 save delete...

最佳答案

您可以添加拦截器:

public class SecurityInterceptor extends EmptyInterceptor {

    @Override
    public boolean onSave(Object entity, Serializable id, Object[] state, String[] propertyNames, Type[] types) {
        // insert logic here to check if it's an update
        return super.onSave(entity, id, state, propertyNames, types);

    }

}

使用您的 application.yaml 添加拦截器:

  jpa:
    properties:
      hibernate:
        ejb:
          interceptor: hello.SecurityInterceptor

关于java - 限制 CrudRepository 中的创建操作,仅允许编辑操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42223415/

相关文章:

mysql - 是否可以在不使用 POJO 的情况下从 MyBatis 调用 MySQL 存储过程?

spring - blockingqueue 和 Spring - 如何在启动时启动线程池?

Spring 3.2 长轮询导致 SPRING_SECURITY_CONTEXT 被清除

java - 如何为 Spring 限定符实现 OR 逻辑?

java - 如何在 Java 中使用 LayerManager

java - 当我尝试在 ubuntu 上启动 Scala 时抛出异常

java - 带一个自增的Spring JPA复合PK

java - 无法使用 Gradle 配置 Spring AOP

java - 基本控制台输入和输出

java float 格式说明符