【问题标题】:In SpringDataRest, How can i add custom logic when http request received在 SpringDataRest 中,如何在收到 http 请求时添加自定义逻辑
【发布时间】:2018-08-20 07:20:09
【问题描述】:

众所周知, 在 SpringDataRest 中,仅使用 Repository 文件(不是控制器),我们可以使用它的内置方法。

我的仓库代码是:

public interface StudentRepository extends JpaRepository<Student, Integer> {
}

我不想添加自定义方法并在那里添加我的请求处理逻辑。我想要一些配置或事件覆盖,我可以在其中处理 HttpRequest 处理程序,解析令牌并检查令牌中的一些数据,并基于该令牌决定处理该请求或丢弃它并出现一些错误。

谢谢。

【问题讨论】:

  • 你在使用spring security吗?如果您想对令牌进行检查,这听起来像是一个弹簧安全用例。
  • 是的,令牌安全性已经实现(使用 ResourceServer 等)。但是我必须根据用户角色进一步移动安全性,我需要从收到的令牌中提取。
  • 我想知道你是否可以基于baeldung.com/java-config-spring-security中的6等角色使用antMatchers

标签: spring http spring-data-jpa spring-data-rest


【解决方案1】:

如果您想使用 spring data rest 限制对特定端点或操作的访问,并且您正在使用 spring security,那么您可以使用 @PreAuthorize annotationhasRole。以'Securing Spring Data REST PreAuthorize' 为例,您可以有一个 CrudRepository,如下所示:

@PreAuthorize("hasRole('ROLE_USER')")
public interface ParkrunCourseRepository extends CrudRepository<ParkrunCourse, Long> {
    @Override
    @PreAuthorize("hasRole('ROLE_ADMIN')")
    ParkrunCourse save(ParkrunCourse parkrunCourse);
}

那么只有具有管理员角色的用户才能发布帖子来保存这些实体。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-27
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
相关资源
最近更新 更多