aws / aws/serverless-java-container
Unable to invoke lambda when "Authorization scopes" added to JWT Authorizer
- 主要语言
- Java
- 星标
- 1.6k
- 派生
- 574
- PR 合并指标
- 30 天内没有已合并 PR
描述
*Serverless Java Container version*: `eg. 1.5.2`
*Implementations:* `Spring Boot 2`
*Framework version:* `eg SpringBoot 2.4.1`
*Frontend service:* `HTTP API`
*Deployment method:* `SAM`
## Scenario
*Describe what you are trying to accomplish*
I am trying to call invoke lambda via HTTP api with JWT authorizer. call to lambda are failing when i add "Authorization scopes" in the JWT authorizer(on HTTP api)
## Expected behavior
I would expect lambda should be able to be invoke with or without Authorization scopes in JWT authorizer
## Actual behavior
I am trying to call invoke lambda via HTTP api with JWT authorizer. call to lambda are failing when i add "Authorization scopes" in the JWT authorizer(on HTTP api) with error message
```com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.lang.String` out of START_ARRAY token
at [Source: (ByteArrayInputStream); line: 1, column: 3530] (through reference chain: com.amazonaws.serverless.proxy.model.AwsProxyRequest["requestContext"]->com.amazonaws.serverless.proxy.model.AwsProxyRequestContext["authorizer"]->com.amazonaws.serverless.proxy.model.ApiGatewayAuthorizerContext["scopes"])```
but without "Authorization scopes" in the JWT authorizer(on HTTP api) calls were going fine as long JWT is valid
## Steps to reproduce
Create a springboot 2 based AWS lambda with HTTP api and Authorization scope with scopes specified in it.
InputStream of call when Authorization scope is added contains a section with Scopes array but same is null when Authorization scope is not defined in JWT Authorizer in HTTP API
"scopes": [
"b",
"a",
"z",
"y",
"x"
]
InputStream of call when Authorization scope is not added
"scopes": null
## Full log output
*Paste the full log output from the Lambda function's CloudWatch logs*
```
logs
```
贡献指南
调研方向
Start by reproducing the Spring Boot 2 AWS Lambda behind an HTTP API JWT authorizer with scopes configured through SAM. Read the AwsProxyRequest, AwsProxyRequestContext, and ApiGatewayAuthorizerContext locations named in the exception, then verify that invocation succeeds when the scopes value is an array as well as when it is null.
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- aws, java, spring-boot
- 领域
- api, authentication, cloud
- Issue 类型
- 缺陷
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 38/100