From 9d921b6271ad4954a46c1a6a29435543cbfbf73b Mon Sep 17 00:00:00 2001 From: Richard Chen Date: Mon, 6 Mar 2023 18:03:57 -0500 Subject: [PATCH] Skips enum members when looking for potentially sensitive shapes/data --- .../smithy/linters/MissingSensitiveTraitValidator.java | 4 +++- .../errorfiles/missing-sensitive-trait-defaults.smithy | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/smithy-linters/src/main/java/software/amazon/smithy/linters/MissingSensitiveTraitValidator.java b/smithy-linters/src/main/java/software/amazon/smithy/linters/MissingSensitiveTraitValidator.java index f4bd5ae5d69..052baf39746 100644 --- a/smithy-linters/src/main/java/software/amazon/smithy/linters/MissingSensitiveTraitValidator.java +++ b/smithy-linters/src/main/java/software/amazon/smithy/linters/MissingSensitiveTraitValidator.java @@ -143,7 +143,9 @@ private List scanShapes(Model model) { Shape containingShape = model.expectShape(memberShape.getContainer()); Shape targetShape = model.expectShape(memberShape.getTarget()); - if (!containingShape.hasTrait(SensitiveTrait.class) && !targetShape.hasTrait(SensitiveTrait.class)) { + if (!containingShape.hasTrait(SensitiveTrait.class) + && !containingShape.isEnumShape() + && !targetShape.hasTrait(SensitiveTrait.class)) { Optional optionalValidationEvent = detectSensitiveTerms(memberShape.getMemberName(), memberShape); optionalValidationEvent.ifPresent(validationEvents::add); diff --git a/smithy-linters/src/test/resources/software/amazon/smithy/linters/errorfiles/missing-sensitive-trait-defaults.smithy b/smithy-linters/src/test/resources/software/amazon/smithy/linters/errorfiles/missing-sensitive-trait-defaults.smithy index 2f77c7556c4..89d6ae119ec 100644 --- a/smithy-linters/src/test/resources/software/amazon/smithy/linters/errorfiles/missing-sensitive-trait-defaults.smithy +++ b/smithy-linters/src/test/resources/software/amazon/smithy/linters/errorfiles/missing-sensitive-trait-defaults.smithy @@ -41,7 +41,8 @@ structure BillingAddress { safeBank: MySensitiveString, // should get flagged firstName: FirstName, - lastName: LastName + lastName: LastName, + someEnum: MyEnum } @sensitive @@ -53,6 +54,11 @@ structure SafeBillingAddress { lastName: MySensitiveString } +enum MyEnum { + // should not be flagged + IP_ADDRESS +} + string MyString @sensitive