gpt4 book ai didi

java - 如何验证微服务的请求源

转载 作者:行者123 更新时间:2023-12-02 01:27:23 25 4
gpt4 key购买 nike

我有一个基于Spring的微服务,它向基于react.js的Web客户端应用程序和使用react-native构建的移动应用程序提供数据。应用程序托管在云上。

我想允许来自这 2 个客户端应用程序的 REST 调用并阻止任何其他请求源以保护我的应用程序。我正在考虑使用在每个请求中传递的 APP ID,但这并不能保护服务,因为任何拥有 APP ID 的人都可以入侵我的 REST 服务。有人可以建议解决此问题的最佳方法吗?

最佳答案

有多种方法可以保护端点,但最常用的是基于 JWT token 的授权

  • 创建端点,例如/auth/api。
  • 在应用登录过程中从身份验证端点(例如 auth/signIn)获取基于 JWT 的 token 。
  • 从身份验证结果中提取 token 。
  • 将 HTTP header 授权值设置为 Bearer jwt_token。
  • 然后发送请求以访问 protected 资源。
  • 如果请求的资源受到保护,Spring Security 将使用我们自定义的 Filter 来验证 JWT token ,并构建一个 Authentication 对象并将其设置在 Spring Security 特定的 SecurityContextHolder 中以完成身份验证进度。
  • 如果 JWT token 有效,它将向客户端返回请求的资源。

请阅读 Spring JWT 中间件教程

另一种方式是Oauth2,您需要创建 Oauth2 服务器,该服务器充当授权服务器,其中客户端与 clientID 和客户端 Secret 相关联,并且您使用访问 token 批准访问。

关于java - 如何验证微服务的请求源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56698989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com