aws / aws/serverless-java-container

Unable to invoke lambda when "Authorization scopes" added to JWT Authorizer

Ouverte
#408 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
need feedback
Langage dominant
Java
Étoiles
1.6k
Forks
574
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

*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
```

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par reproduire la Spring Boot 2 AWS Lambda derrière un HTTP API JWT authorizer avec des Scopes configurés via SAM. Lisez les emplacements de AwsProxyRequest, AwsProxyRequestContext et ApiGatewayAuthorizerContext indiqués dans l’exception, puis vérifiez que l’invocation réussit aussi bien lorsque la valeur de Scopes est un tableau que lorsqu’elle est null.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
aws, java, spring-boot
Domaine
api, authentication, cloud
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
38/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.