From 2aedff31e667d0d2bcdcb6aee0c69ae53ba780eb Mon Sep 17 00:00:00 2001 From: Sahil Bondre Date: Fri, 31 Jan 2025 18:29:31 +0000 Subject: [PATCH 1/7] fix: update CognitoUserPoolPreTokenGenerationEventV2 response model + bump events to 3.15.0 --- README.md | 2 +- aws-lambda-java-events/README.md | 3 ++- aws-lambda-java-events/RELEASE.CHANGELOG.md | 4 ++++ aws-lambda-java-events/pom.xml | 2 +- .../CognitoUserPoolPreTokenGenerationEventV2.java | 4 ++-- aws-lambda-java-tests/pom.xml | 2 +- .../lambda/runtime/tests/EventLoaderTest.java | 11 +++++++++++ ...gnito_user_pool_pre_token_generation_event_v2.json | 10 ++++++++-- .../fastJson/HelloWorldFunction/pom.xml | 2 +- .../gson/HelloWorldFunction/pom.xml | 2 +- .../moshi/HelloWorldFunction/pom.xml | 2 +- .../request-stream-handler/HelloWorldFunction/pom.xml | 2 +- samples/kinesis-firehose-event-handler/pom.xml | 2 +- 13 files changed, 35 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index 4f22b2cc..c72dcf0c 100644 --- a/README.md +++ b/README.md @@ -75,7 +75,7 @@ public class SqsHandler implements RequestHandler { com.amazonaws aws-lambda-java-events - 3.14.0 + 3.15.0 ``` diff --git a/aws-lambda-java-events/README.md b/aws-lambda-java-events/README.md index db423e07..87c61f34 100644 --- a/aws-lambda-java-events/README.md +++ b/aws-lambda-java-events/README.md @@ -31,6 +31,7 @@ * `CognitoUserPoolPreAuthenticationEvent` * `CognitoUserPoolPreSignUpEvent` * `CognitoUserPoolPreTokenGenerationEvent` +* `CognitoUserPoolPreTokenGenerationEventV2` * `CognitoUserPoolVerifyAuthChallengeResponseEvent` * `ConfigEvent` * `ConnectEvent` @@ -73,7 +74,7 @@ com.amazonaws aws-lambda-java-events - 3.14.0 + 3.15.0 ... diff --git a/aws-lambda-java-events/RELEASE.CHANGELOG.md b/aws-lambda-java-events/RELEASE.CHANGELOG.md index 7ddf2bff..9ffd125c 100644 --- a/aws-lambda-java-events/RELEASE.CHANGELOG.md +++ b/aws-lambda-java-events/RELEASE.CHANGELOG.md @@ -1,3 +1,7 @@ +### January 31, 2025 +`3.15.0`: +- Fix `CognitoUserPoolPreTokenGenerationEventV2` model ([#519](https://github.com/aws/aws-lambda-java-libs/pull/519)) + ### September 13, 2024 `3.14.0`: - Fix name of s3Bucket field of Task class in S3BatchEventV2 ([#506](https://github.com/aws/aws-lambda-java-libs/pull/506)) diff --git a/aws-lambda-java-events/pom.xml b/aws-lambda-java-events/pom.xml index ec3806fb..f1364e7a 100644 --- a/aws-lambda-java-events/pom.xml +++ b/aws-lambda-java-events/pom.xml @@ -5,7 +5,7 @@ com.amazonaws aws-lambda-java-events - 3.14.0 + 3.15.0 jar AWS Lambda Java Events Library diff --git a/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/CognitoUserPoolPreTokenGenerationEventV2.java b/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/CognitoUserPoolPreTokenGenerationEventV2.java index c7250570..9faeb970 100644 --- a/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/CognitoUserPoolPreTokenGenerationEventV2.java +++ b/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/CognitoUserPoolPreTokenGenerationEventV2.java @@ -127,8 +127,8 @@ public static class AccessTokenGeneration { @Builder(setterPrefix = "with") @NoArgsConstructor public static class GroupOverrideDetails { - private Map groupsToOverride; - private Map iamRolesToOverride; + private String[] groupsToOverride; + private String[] iamRolesToOverride; private String preferredRole; } } \ No newline at end of file diff --git a/aws-lambda-java-tests/pom.xml b/aws-lambda-java-tests/pom.xml index eb1f95b0..6bb4ac8a 100644 --- a/aws-lambda-java-tests/pom.xml +++ b/aws-lambda-java-tests/pom.xml @@ -45,7 +45,7 @@ com.amazonaws aws-lambda-java-events - 3.14.0 + 3.15.0 org.junit.jupiter diff --git a/aws-lambda-java-tests/src/test/java/com/amazonaws/services/lambda/runtime/tests/EventLoaderTest.java b/aws-lambda-java-tests/src/test/java/com/amazonaws/services/lambda/runtime/tests/EventLoaderTest.java index 4aa920f8..22437a30 100644 --- a/aws-lambda-java-tests/src/test/java/com/amazonaws/services/lambda/runtime/tests/EventLoaderTest.java +++ b/aws-lambda-java-tests/src/test/java/com/amazonaws/services/lambda/runtime/tests/EventLoaderTest.java @@ -418,6 +418,17 @@ public void testLoadCognitoUserPoolPreTokenGenerationEventV2() { CognitoUserPoolPreTokenGenerationEventV2.Request request = event.getRequest(); String[] requestScopes = request.getScopes(); assertThat("aws.cognito.signin.user.admin").isEqualTo(requestScopes[0]); + + CognitoUserPoolPreTokenGenerationEventV2.Response response = event.getResponse(); + String[] groupsToOverride = response.getClaimsAndScopeOverrideDetails().getGroupOverrideDetails().getGroupsToOverride(); + String[] iamRolesToOverride = response.getClaimsAndScopeOverrideDetails().getGroupOverrideDetails().getIamRolesToOverride(); + String preferredRole = response.getClaimsAndScopeOverrideDetails().getGroupOverrideDetails().getPreferredRole(); + + assertThat("group-99").isEqualTo(groupsToOverride[0]); + assertThat("group-98").isEqualTo(groupsToOverride[1]); + assertThat("arn:aws:iam::123456789012:role/sns_caller99").isEqualTo(iamRolesToOverride[0]); + assertThat("arn:aws:iam::123456789012:role/sns_caller98").isEqualTo(iamRolesToOverride[1]); + assertThat("arn:aws:iam::123456789012:role/sns_caller_99").isEqualTo(preferredRole); } @Test diff --git a/aws-lambda-java-tests/src/test/resources/cognito_user_pool_pre_token_generation_event_v2.json b/aws-lambda-java-tests/src/test/resources/cognito_user_pool_pre_token_generation_event_v2.json index 43f8e0f7..eb46b8cb 100644 --- a/aws-lambda-java-tests/src/test/resources/cognito_user_pool_pre_token_generation_event_v2.json +++ b/aws-lambda-java-tests/src/test/resources/cognito_user_pool_pre_token_generation_event_v2.json @@ -21,13 +21,19 @@ "groupConfiguration": { "groupsToOverride": ["group-1", "group-2", "group-3"], "iamRolesToOverride": ["arn:aws:iam::123456789012:role/sns_caller1", "arn:aws:iam::123456789012:role/sns_caller2", "arn:aws:iam::123456789012:role/sns_caller3"], - "preferredRole": ["arn:aws:iam::123456789012:role/sns_caller"] + "preferredRole": "arn:aws:iam::123456789012:role/sns_caller" }, "scopes": [ "aws.cognito.signin.user.admin", "openid", "email", "phone" ] }, "response": { - "claimsAndScopeOverrideDetails": [] + "claimsAndScopeOverrideDetails": { + "groupOverrideDetails": { + "groupsToOverride": ["group-99", "group-98"], + "iamRolesToOverride": ["arn:aws:iam::123456789012:role/sns_caller99", "arn:aws:iam::123456789012:role/sns_caller98"], + "preferredRole": "arn:aws:iam::123456789012:role/sns_caller_99" + } + } } } \ No newline at end of file diff --git a/samples/custom-serialization/fastJson/HelloWorldFunction/pom.xml b/samples/custom-serialization/fastJson/HelloWorldFunction/pom.xml index fde6b625..7325c72a 100644 --- a/samples/custom-serialization/fastJson/HelloWorldFunction/pom.xml +++ b/samples/custom-serialization/fastJson/HelloWorldFunction/pom.xml @@ -20,7 +20,7 @@ com.amazonaws aws-lambda-java-events - 3.14.0 + 3.15.0 diff --git a/samples/custom-serialization/gson/HelloWorldFunction/pom.xml b/samples/custom-serialization/gson/HelloWorldFunction/pom.xml index 56327d99..dd3b8e9c 100644 --- a/samples/custom-serialization/gson/HelloWorldFunction/pom.xml +++ b/samples/custom-serialization/gson/HelloWorldFunction/pom.xml @@ -20,7 +20,7 @@ com.amazonaws aws-lambda-java-events - 3.14.0 + 3.15.0 com.google.code.gson diff --git a/samples/custom-serialization/moshi/HelloWorldFunction/pom.xml b/samples/custom-serialization/moshi/HelloWorldFunction/pom.xml index abbf6968..f2321497 100644 --- a/samples/custom-serialization/moshi/HelloWorldFunction/pom.xml +++ b/samples/custom-serialization/moshi/HelloWorldFunction/pom.xml @@ -20,7 +20,7 @@ com.amazonaws aws-lambda-java-events - 3.14.0 + 3.15.0 diff --git a/samples/custom-serialization/request-stream-handler/HelloWorldFunction/pom.xml b/samples/custom-serialization/request-stream-handler/HelloWorldFunction/pom.xml index 234dd6eb..68e7e81e 100644 --- a/samples/custom-serialization/request-stream-handler/HelloWorldFunction/pom.xml +++ b/samples/custom-serialization/request-stream-handler/HelloWorldFunction/pom.xml @@ -20,7 +20,7 @@ com.amazonaws aws-lambda-java-events - 3.14.0 + 3.15.0 com.google.code.gson diff --git a/samples/kinesis-firehose-event-handler/pom.xml b/samples/kinesis-firehose-event-handler/pom.xml index d7b04fbc..3d03205d 100644 --- a/samples/kinesis-firehose-event-handler/pom.xml +++ b/samples/kinesis-firehose-event-handler/pom.xml @@ -46,7 +46,7 @@ com.amazonaws aws-lambda-java-events - 3.14.0 + 3.15.0 From b8519ee7657df79a78aa37f80435ee29f7cdf679 Mon Sep 17 00:00:00 2001 From: Sahil Bondre Date: Mon, 3 Feb 2025 18:08:04 +0000 Subject: [PATCH 2/7] fix: install events module before building samples packages --- .github/workflows/samples.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/samples.yml b/.github/workflows/samples.yml index 960055ad..6f7a674f 100644 --- a/.github/workflows/samples.yml +++ b/.github/workflows/samples.yml @@ -44,6 +44,10 @@ jobs: with: java-version: 21 distribution: corretto + + # Install events module + - name: Install events with Maven + run: mvn -B install --file aws-lambda-java-events/pom.xml # Build custom-serialization samples - name: install sam uses: aws-actions/setup-sam@v2 From ea2458086f3b83f3f3fda4e9df714ba7547e32da Mon Sep 17 00:00:00 2001 From: Sahil Bondre Date: Mon, 3 Feb 2025 18:14:05 +0000 Subject: [PATCH 3/7] fix: specify compiler flag for Java 21 --- .github/workflows/samples.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/samples.yml b/.github/workflows/samples.yml index 6f7a674f..54257e00 100644 --- a/.github/workflows/samples.yml +++ b/.github/workflows/samples.yml @@ -47,7 +47,12 @@ jobs: # Install events module - name: Install events with Maven - run: mvn -B install --file aws-lambda-java-events/pom.xml + run: | + mvn -B install \ + -Dmaven.compiler.plugin.version=3.11.0 \ + -Dmaven.compiler.source=21 \ + -Dmaven.compiler.target=21 \ + --file aws-lambda-java-events/pom.xml # Build custom-serialization samples - name: install sam uses: aws-actions/setup-sam@v2 From 217c93d6a97ae46ad33f041d40f6ce9150462a21 Mon Sep 17 00:00:00 2001 From: Sahil Bondre Date: Mon, 3 Feb 2025 18:17:59 +0000 Subject: [PATCH 4/7] fix: update compilation spec --- .github/workflows/samples.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/samples.yml b/.github/workflows/samples.yml index 54257e00..da1f7df3 100644 --- a/.github/workflows/samples.yml +++ b/.github/workflows/samples.yml @@ -50,8 +50,8 @@ jobs: run: | mvn -B install \ -Dmaven.compiler.plugin.version=3.11.0 \ - -Dmaven.compiler.source=21 \ - -Dmaven.compiler.target=21 \ + -Dmaven.compiler.source=1.8 \ + -Dmaven.compiler.target=1.8 \ --file aws-lambda-java-events/pom.xml # Build custom-serialization samples - name: install sam From 5609b1b3af95c910ca17979881b604d45c6dc899 Mon Sep 17 00:00:00 2001 From: Sahil Bondre Date: Mon, 3 Feb 2025 18:21:21 +0000 Subject: [PATCH 5/7] fix: use release profile for installing events --- .github/workflows/samples.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/samples.yml b/.github/workflows/samples.yml index da1f7df3..6bbe12a9 100644 --- a/.github/workflows/samples.yml +++ b/.github/workflows/samples.yml @@ -48,10 +48,8 @@ jobs: # Install events module - name: Install events with Maven run: | - mvn -B install \ - -Dmaven.compiler.plugin.version=3.11.0 \ - -Dmaven.compiler.source=1.8 \ - -Dmaven.compiler.target=1.8 \ + mvn -B clean install \ + -P release \ --file aws-lambda-java-events/pom.xml # Build custom-serialization samples - name: install sam From cf1f9f3e1b6a412e66a6fda3f3c00add7d469b2b Mon Sep 17 00:00:00 2001 From: Sahil Bondre Date: Mon, 3 Feb 2025 18:25:47 +0000 Subject: [PATCH 6/7] fix: install events using Java 8 --- .github/workflows/samples.yml | 29 ++++++++++++++++++++++++----- 1 file changed, 24 insertions(+), 5 deletions(-) diff --git a/.github/workflows/samples.yml b/.github/workflows/samples.yml index 6bbe12a9..f1576847 100644 --- a/.github/workflows/samples.yml +++ b/.github/workflows/samples.yml @@ -40,17 +40,37 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: actions/setup-java@v4 + # Set up both Java 8 and 21 + - name: Set up Java 8 and 21 + uses: actions/setup-java@v4 with: - java-version: 21 + java-version: | + 8 + 21 distribution: corretto - # Install events module + # Check Java versions + - name: Verify Java installations + run: | + echo "Default Java version:" + java -version + echo "JAVA_HOME=$JAVA_HOME" + + # Install events module using Java 8 - name: Install events with Maven run: | + export JAVA_HOME=$JAVA_HOME_8_X64 mvn -B clean install \ - -P release \ + -Dmaven.compiler.source=1.8 \ + -Dmaven.compiler.target=1.8 \ + -Dmaven.compiler.forceJavacCompilerUse=true \ + -Dmaven.compiler.plugin.version=3.5.1 \ --file aws-lambda-java-events/pom.xml + + # Switch back to Java 21 for the rest of the build + - name: Set JAVA_HOME back to Java 21 + run: export JAVA_HOME=$JAVA_HOME_21_X64 + # Build custom-serialization samples - name: install sam uses: aws-actions/setup-sam@v2 @@ -64,4 +84,3 @@ jobs: run: cd samples/custom-serialization/moshi && sam build && sam local invoke -e events/event.json | grep 200 - name: test request-stream-handler run: cd samples/custom-serialization/request-stream-handler && sam build && sam local invoke -e events/event.json | grep 200 - From d5706e5620bcef92b7d9efcc669243de216ec931 Mon Sep 17 00:00:00 2001 From: Sahil Bondre Date: Mon, 3 Feb 2025 18:29:08 +0000 Subject: [PATCH 7/7] fix: remove redundant $JAVA_HOME switches --- .github/workflows/samples.yml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/.github/workflows/samples.yml b/.github/workflows/samples.yml index f1576847..c1131648 100644 --- a/.github/workflows/samples.yml +++ b/.github/workflows/samples.yml @@ -49,13 +49,6 @@ jobs: 21 distribution: corretto - # Check Java versions - - name: Verify Java installations - run: | - echo "Default Java version:" - java -version - echo "JAVA_HOME=$JAVA_HOME" - # Install events module using Java 8 - name: Install events with Maven run: | @@ -63,14 +56,8 @@ jobs: mvn -B clean install \ -Dmaven.compiler.source=1.8 \ -Dmaven.compiler.target=1.8 \ - -Dmaven.compiler.forceJavacCompilerUse=true \ - -Dmaven.compiler.plugin.version=3.5.1 \ --file aws-lambda-java-events/pom.xml - # Switch back to Java 21 for the rest of the build - - name: Set JAVA_HOME back to Java 21 - run: export JAVA_HOME=$JAVA_HOME_21_X64 - # Build custom-serialization samples - name: install sam uses: aws-actions/setup-sam@v2