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

在SpringDataRest中,如何在收到http请求时添加自定义逻辑

孙朝明
2023-03-14

正如我们所知,在SpringDataRest中,存储库文件只被使用(而不是控制器),我们可以为它使用内置方法。

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

我不想添加自定义方法,并在那里添加我的请求处理逻辑。我想要一些配置或事件重写,在这里我可以处理HttpRequest处理程序,解析令牌并检查令牌中的一些数据,根据该令牌,我将决定要么处理该请求,要么放弃它,但出现一些错误。

谢了。

共有1个答案

曾昂然
2023-03-14

如果希望使用spring data rest限制对特定endpoint或操作的访问,并且使用spring security,那么可以使用@PreAuthorize注释和HasRole。以'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);
}

然后,只有管理员角色的用户将能够做帖子来保存这些实体。

 类似资料: