首页 > 解决方案 > 用于 webhook 帖子的 Springboot 身份验证

问题描述

我需要在我的后端 api 服务器上验证来自第三方集成的 webhook 帖子。我唯一可以定义的是他们将调用的端点 url。一旦他们必须注册并且该过程需要3天,它就不能是动态的。而且我们使用多租户解决方案,因此我们必须在每次调用时使用不同的模式进行身份验证。

所以问题是我必须为这个 webhook 创建一个过滤器,所以我可以通过帖子正文的 json 中包含的值对其进行身份验证。

所以我定义了一个 WebSecurityConfigurerAdapter 并添加了一个 AbstractPreAuthenticatedProcessingFilter 以便我可以拦截请求,读取使用适当凭据进行身份验证的 json 正文中的值。

我遵循本教程在 Spring 中多次读取 HttpServletRequest,这样我就可以从请求中读取 InputStream 而不会删除它。

所以我的问题是两个。

1:有没有更好/更简单的方法可以存档这个结果?2:我想本教程遗漏了一些东西,因为当我尝试读取请求时(同样,在我已经在过滤器处读取之后)时,我在 servlet 处获得了空指针。

任何猜测将不胜感激,在此先感谢。

标签: spring-bootspring-securitymulti-tenant

解决方案


我们是否可以知道哪个 3rd 方服务?例如,PayPal/Stripe 已经有文档来解释如何验证数据。

如果您可以将元数据/自定义字段添加到 webhook,例如,您可以对其进行签名。

至于检查签名/验证它,为什么不在@Contoller=>@Service 中执行此操作?


推荐阅读