Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SpringDataRest中,当收到http请求时,如何添加自定义逻辑_Spring_Http_Spring Data Jpa_Spring Data Rest - Fatal编程技术网

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

在SpringDataRest中,当收到http请求时,如何添加自定义逻辑,spring,http,spring-data-jpa,spring-data-rest,Spring,Http,Spring Data Jpa,Spring Data Rest,我们知道,, 在SpringDataRest中,只使用存储库文件(而不是控制器),我们可以为其使用内置方法 我的存储库代码是: public interface StudentRepository extends JpaRepository<Student, Integer> { } public interface StudentRepository扩展了JpaRepository{ } 我不想在那里添加自定义方法和请求处理逻辑。我想要一些配置或事件覆盖,在这里我可以处理Htt

我们知道,, 在SpringDataRest中,只使用存储库文件(而不是控制器),我们可以为其使用内置方法

我的存储库代码是:

public interface StudentRepository extends JpaRepository<Student, Integer> {
}
public interface StudentRepository扩展了JpaRepository{
}
我不想在那里添加自定义方法和请求处理逻辑。我想要一些配置或事件覆盖,在这里我可以处理HttpRequest处理程序,解析令牌并检查令牌中的一些数据,然后根据该令牌,我将决定要么处理该请求,要么在出现错误时放弃它


谢谢。

如果您想使用spring data rest限制对特定端点或操作的访问,并且您正在使用spring security,那么您可以使用with
hasRole
。举个例子,你可以有一个粗略的假设,比如:

@PreAuthorize("hasRole('ROLE_USER')")
public interface ParkrunCourseRepository extends CrudRepository<ParkrunCourse, Long> {
    @Override
    @PreAuthorize("hasRole('ROLE_ADMIN')")
    ParkrunCourse save(ParkrunCourse parkrunCourse);
}
@预授权(“hasRole('ROLE\u USER'))
公共界面ParkrunCourseRepository扩展了Crudepository{
@凌驾
@预授权(“hasRole('ROLE_ADMIN'))
公园跑道保存(公园跑道公园跑道);
}

然后,只有具有管理员角色的用户才能发布文章来保存这些实体。

您使用的是spring security吗?如果您想对令牌进行检查,听起来像是spring安全用例。是的,令牌安全性已经实现(使用ResourceServer等)。但我必须进一步提高基于用户角色的安全性,这需要从我收到的令牌中提取。我想知道你是否可以使用基于角色的antMatchers,如《无友》中的6,我不需要这种基于角色的检查,我在这里找到了解决方案:对不起,我没有意识到你在寻找更多的自定义逻辑,而不仅仅是角色检查。很高兴您在HandlerInterceptorAdapter中找到了解决方案您知道我如何在interceptor(preHandle)override方法中重写/更改URL吗?您的意思是像重定向一样吗?如果是这样,您可以尝试response.sendRedirect嗨,朋友,非常感谢您的支持,我在这里找到了我想要的东西: