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

在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);
}

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

 类似资料:
  • 我在openshift容器平台上部署了一个容器化应用程序/服务,其中包含istio服务网格。在istio虚拟服务yaml中,我想验证http请求是否有头(对于ex:version)和值v1。我在虚拟服务yaml中添加了下面的配置,用于验证头文件。但我正在寻找可用的选项,使用loadbalancer/ingress/openshif route等将此头插入HTTP请求中,因为我的istio ingr

  • 下面是我的Lambda函数。在我的Lambda的Cloudwatch日志中可见,但在我的自定义服务器请求头中不显示:(。 我希望在下的node.js路由中可见。

  • 问题内容: 澄清点:将自定义标头添加到我的jQuery ajax调用中没有任何问题,我想将我的自定义标头自动添加到所有ajax调用中。 如果您看看jquery $.ajax自定义http标头问题(不是我的问题),您将看到一个很好的示例,说明如何为每个ajax调用手动实现代码。 我想为所有jQuery ajax调用覆盖beforeSend。根据jQuery文档,我可以使用jQuery.ajaxSet

  • 我有一个代码凌空代码 我该如何设置一个名为Authorization的标题??

  • 是否有一个时间格式来指定这样的日期序列到轴在D3和v4?

  • 问题内容: 如何修改参数以发送请求,如下所示: “获取www.sample.com HTTP / 1.0” “获取www.sample.com HTTP / 1.1” 问题答案: 请求不支持发送HTTP / 1.0消息。很难理解为什么需要这样做:HTTP / 1.1最初是在1999年6月发布的RFC 2616中指定的。因此,HTTP / 1.0已经过时了16年以上:现代工具在很大程度上不支持HTT