Skip to content
This repository was archived by the owner on May 16, 2023. It is now read-only.

Commit be3008c

Browse files
author
Sebastian Boerakker
authored
cognito: Fix nullable cognito pre-token-gen event ClaimsOverrideDetails (#105)
* fix cognito pre-toke-generation event: Make ClaimsOverrideDetails optional * fixed some typos in doc string * add test with actual incoming event
1 parent 059de5f commit be3008c

File tree

2 files changed

+46
-4
lines changed

2 files changed

+46
-4
lines changed

aws_lambda_events/src/cognito/mod.rs

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -220,11 +220,11 @@ pub struct CognitoEventUserPoolsPreTokenGenRequest {
220220
pub client_metadata: HashMap<String, String>,
221221
}
222222

223-
/// `CognitoEventUserPoolsPreTokenGenResponse` containst the response portion of a PreTokenGen event
223+
/// `CognitoEventUserPoolsPreTokenGenResponse` contains the response portion of a PreTokenGen event
224224
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
225225
#[serde(rename_all = "camelCase")]
226226
pub struct CognitoEventUserPoolsPreTokenGenResponse {
227-
pub claims_override_details: ClaimsOverrideDetails,
227+
pub claims_override_details: Option<ClaimsOverrideDetails>,
228228
}
229229

230230
/// `CognitoEventUserPoolsPostAuthenticationRequest` contains the request portion of a PostAuthentication event
@@ -286,7 +286,7 @@ pub struct ClaimsOverrideDetails {
286286
pub claims_to_suppress: Vec<String>,
287287
}
288288

289-
/// `GroupConfiguration` allows lambda to override groups, roles and set a perferred role
289+
/// `GroupConfiguration` allows lambda to override groups, roles and set a preferred role
290290
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
291291
#[serde(rename_all = "camelCase")]
292292
pub struct GroupConfiguration {
@@ -363,7 +363,7 @@ pub struct CognitoEventUserPoolsCreateAuthChallengeRequest {
363363
pub client_metadata: HashMap<String, String>,
364364
}
365365

366-
/// `CognitoEventUserPoolsCreateAuthChallengeResponse` defines create auth challenge response rarameters
366+
/// `CognitoEventUserPoolsCreateAuthChallengeResponse` defines create auth challenge response parameters
367367
#[derive(Debug, Clone, PartialEq, Deserialize, Serialize)]
368368
#[serde(rename_all = "camelCase")]
369369
pub struct CognitoEventUserPoolsCreateAuthChallengeResponse {
@@ -618,6 +618,19 @@ mod test {
618618
assert_eq!(parsed, reparsed);
619619
}
620620

621+
#[test]
622+
#[cfg(feature = "cognito")]
623+
fn example_cognito_event_userpools_pretokengen_incoming() {
624+
let data = include_bytes!(
625+
"../generated/fixtures/example-cognito-event-userpools-pretokengen-incoming.json"
626+
);
627+
let parsed: CognitoEventUserPoolsPreTokenGen = serde_json::from_slice(data).unwrap();
628+
let output: String = serde_json::to_string(&parsed).unwrap();
629+
let reparsed: CognitoEventUserPoolsPreTokenGen =
630+
serde_json::from_slice(output.as_bytes()).unwrap();
631+
assert_eq!(parsed, reparsed);
632+
}
633+
621634
#[test]
622635
#[cfg(feature = "cognito")]
623636
fn example_cognito_event_userpools_pretokengen() {
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{
2+
"version": "1",
3+
"triggerSource": "PreTokenGen",
4+
"region": "region",
5+
"userPoolId": "userPoolId",
6+
"userName": "userName",
7+
"callerContext": {
8+
"awsSdkVersion": "calling aws sdk with version",
9+
"clientId": "apps client id"
10+
},
11+
"request": {
12+
"userAttributes": {
13+
"email": "email",
14+
"phone_number": "phone_number"
15+
},
16+
"groupConfiguration": {
17+
"groupsToOverride": ["group-A", "group-B", "group-C"],
18+
"iamRolesToOverride": ["arn:aws:iam::XXXXXXXXXXXX:role/sns_callerA", "arn:aws:iam::XXXXXXXXX:role/sns_callerB", "arn:aws:iam::XXXXXXXXXX:role/sns_callerC"],
19+
"preferredRole": "arn:aws:iam::XXXXXXXXXXX:role/sns_caller"
20+
},
21+
"clientMetadata": {
22+
"exampleMetadataKey": "example metadata value"
23+
}
24+
},
25+
"response": {
26+
"claimsOverrideDetails": null
27+
}
28+
}
29+

0 commit comments

Comments
 (0)