如何从 AWS API 网关自定义授权者检索 spring 引导中的上下文对象?

How to retrieve the context object in spring boot from AWS API Gateway custom authoriser?

我是 运行 AWS ECS 中 spring 引导应用程序的 docker 映像。 API 使用 VPC Link.

通过 AWS API 网关公开

我有一个自定义授权器。

授权方的输出如下所示:

{
"principalId": "",
"policyDocument": {
    "Version": "2012-10-17",
    "Statement": [{
        "Action": "execute-api:Invoke",
        "Effect": "Allow",
        "Resource": "*"
    }]
},
"context": {
    "someKey": "1,2,3"
}}

我想访问 spring 引导控制器端点中的上下文对象。如何访问?

在 Lambda 中,我可以使用事件对象访问它。但是,我不知道如何在这里检索。

API 中 path/query 参数中“映射自”的值作为“event.requestContext.authorizer.context.someKey” 网关有效吗?

在 API 网关中特定 API 的“集成请求”部分,我们必须进行映射。 我在“集成请求”的“HTTP Headers”部分创建了一个映射。

Name: userId(You can have any name)
Mapped from: context.authorizer.someKey

context.authorizer.xxxx

xxxx - 表示您要从授权方上下文接收的密钥 object。

我在相应的 spring 引导控制器端点中收到此值作为 HttpServletRequest 的一部分。

字符串用户 = httpServletRequest.getHeaders("userId");