我已经配置了一个请求类型的自定义lambda授权器。我在API --> Authorizers --> Identity Sources中添加了4个新的自定义请求标头作为身份源,并添加了1个默认授权。所以总共有5个。
当我调用配置了上述授权程序的API时,授权程序被调用了两次。第一次使用事件对象中所有参数的值,第二次使用空事件对象。
由于事件对象为空,所以即使第一次成功验证声明并返回允许策略,我的代码也会抛出空指针。
最初,我尝试使用token类型的授权器,但token本身不足以让我进行验证。令牌类型工作得很好。也就是说,没有第二个请求。当我转到请求类型时,我开始看到这个问题。
以下是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发布于 2019-03-28 20:05:31
我真的不知道问题出在哪里。因此,重新创建了一个请求类型的新lambda授权器,它工作正常:(
https://stackoverflow.com/questions/55391143
复制相似问题