【发布时间】:2021-08-26 12:39:15
【问题描述】:
我有一个 Spring 应用程序(比如 ServiceA),它只有一个用户执行与管理相关的操作。 ServiceA 有它自己的 UI(Angular)。 该应用程序还为通过 3rd 方服务(例如 ServiceB)进行身份验证的其他用户提供服务。 ServiceB 有自己独立的 UI(Flutter)。
当 ServiceB 想要访问 ServiceA 的 Rest api 时,它会发送一个 jwt 访问令牌。 ServiceA 处理这个令牌,如果授权将允许访问 api。 为 ServiceA 配置了 JWT 令牌过滤器
ServiceA 有一个用于 GET 操作的 Rest api。当 ServiceA 的 Admin 用户访问此 API 时,端点工作正常。但是,当 GET 请求来自 ServiceB 时,API 会被调用三次。 API输出结果为json,如下图......
{ //内容 }{ //内容 }{ //内容 }
由于这是一个无效的 json 格式,第 3 方 UI 无法处理输出。
使用 Postman 发送请求也表现出相同的行为。 知道为什么 api 会被多次调用吗?
临时解决方案:
GET Rest Api的签名如下......
public ResponseEntity getResult(HttpServletRequest 请求,HttpServletResponse 响应, @RequestParam 长 id)
我将 Rest Api 更改为 POST 如下(使用 RequestBody)...
public ResponseEntity getResult(HttpServletRequest 请求,HttpServletResponse 响应, @RequestBody TempObj obj)
现在我是 Rest Api 只被调用一次。仍然想知道为什么 GET 有问题
【问题讨论】:
标签: spring-boot spring-security