我们知道, 在SpringDataRest中,仅使用存储库文件(不使用控制器),我们可以对其使用内置方法。
我的存储库代码为:
public interface StudentRepository extends JpaRepository<Student, Integer> {
}
我不想在其中添加自定义方法并添加我的请求处理逻辑。我希望进行一些配置或事件重写,以便在其中可以处理HttpRequest处理程序,解析令牌并检查令牌中的某些数据,然后基于该令牌,我将决定处理该请求或由于某些错误而将其丢弃。
谢谢。
答案 0 :(得分:1)
如果您想使用spring数据休息来限制对特定端点或操作的访问,并且您正在使用spring安全性,那么可以将@PreAuthorize annotation与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);
}
然后只有具有admin角色的用户才能发布帖子以保存这些实体。