0

我已经配置了一个 REQUEST 类型的自定义 lambda 授权器。我在 API --> Authorizers --> Identity Sources 和 1 个默认授权中添加了 4 个新的自定义请求标头作为身份源。所以总共有5个。

当我调用配置了上述授权方的 API 时,授权方被调用了两次。第一次使用事件对象中所有参数的值,第二次使用空事件对象。

由于事件对象为空,即使第一次成功验证声明并返回允许策略,我的代码也会抛出空指针。

最初我尝试使用令牌类型授权器,但仅令牌本身不足以让我验证。令牌类型工作得很好。即没有第二次请求。当我改用 REQUEST 类型时,我开始看到这个问题。

以下是来自 cloudwatch 的日志

2019-03-28 05:53:33 b78955e6-c072-4ada-945f-c8d34490d2ad DEBUG APIGatewayLambdaAuthorizer:92 - Sucess: Request authorized
2019-03-28 05:53:33 b78955e6-c072-4ada-945f-c8d34490d2ad TRACE APIGatewayLambdaAuthorizer:103 - Exit: Policy generated: {policyDocument={Version=2012-10-17, Statement=[{Action=execute-api:Invoke, Resource=arn:aws:execute-api:us-east-2:851424344156:67w9c9wojb/stage/GET/, Effect=Allow}]}, principalId=yC98Q4Edda9QqwYVkkhe75sUR8SS25pK@clients}
2019-03-28 05:53:33 090465d8-2c04-4869-83fb-cdcde53d33b7 TRACE APIGatewayLambdaAuthorizer:82 - Enter event:
{}
, context: lambdainternal.api.LambdaContext@4c5474f5
java.lang.NullPointerException: java.lang.NullPointerException
java.lang.NullPointerException
4

1 回答 1

0

我真的不知道是什么问题。所以重新创建了一个新的请求类型的 lambda 授权器,它工作正常:(

于 2019-03-28T12:05:31.220 回答