@@ -1742,23 +1742,30 @@ private String getEncryptedValue(String value) {
17421742 private void maskValues (KeyManagerConfigurationDTO keyManagerConfigurationDTO ) {
17431743 KeyManagerConnectorConfiguration keyManagerConnectorConfiguration = ServiceReferenceHolder .getInstance ()
17441744 .getKeyManagerConnectorConfiguration (keyManagerConfigurationDTO .getType ());
1745-
1746- Map <String , Object > additionalProperties = keyManagerConfigurationDTO .getAdditionalProperties ();
1747- List <ConfigurationDto > connectionConfigurations =
1748- keyManagerConnectorConfiguration .getConnectionConfigurations ();
1749- for (ConfigurationDto connectionConfiguration : connectionConfigurations ) {
1750- if (connectionConfiguration .isMask ()) {
1751- additionalProperties .replace (connectionConfiguration .getName (),
1752- APIConstants .DEFAULT_MODIFIED_ENDPOINT_PASSWORD );
1745+ // When the KM is used for Token Exchange,there won't be any connection configurations to mask.
1746+ if (keyManagerConnectorConfiguration != null ) {
1747+ Map <String , Object > additionalProperties = keyManagerConfigurationDTO .getAdditionalProperties ();
1748+ List <ConfigurationDto > connectionConfigurations =
1749+ keyManagerConnectorConfiguration .getConnectionConfigurations ();
1750+ if (connectionConfigurations != null && !connectionConfigurations .isEmpty ()) {
1751+ for (ConfigurationDto connectionConfiguration : connectionConfigurations ) {
1752+ if (connectionConfiguration .isMask ()) {
1753+ additionalProperties .replace (connectionConfiguration .getName (),
1754+ APIConstants .DEFAULT_MODIFIED_ENDPOINT_PASSWORD );
1755+ }
1756+ }
17531757 }
1754- }
1755- // if authConfiguration array is not empty, check for maskable values there as well
1756- if (keyManagerConnectorConfiguration .getAuthConfigurations () != null
1757- && !(keyManagerConnectorConfiguration .getAuthConfigurations ().isEmpty ())) {
1758- List <ConfigurationDto > authConfigurations = keyManagerConnectorConfiguration .getAuthConfigurations ();
1759- // Recursively check nested objects in authConfigurations and apply masking
1760- for (ConfigurationDto authConfiguration : authConfigurations ) {
1761- applyMaskToNestedFields (authConfiguration .getValues (), additionalProperties );
1758+
1759+ // if authConfiguration array is not empty, check for maskable values there as well
1760+ if (keyManagerConnectorConfiguration .getAuthConfigurations () != null
1761+ && !(keyManagerConnectorConfiguration .getAuthConfigurations ().isEmpty ())) {
1762+ List <ConfigurationDto > authConfigurations = keyManagerConnectorConfiguration .getAuthConfigurations ();
1763+ if (authConfigurations != null && !authConfigurations .isEmpty ()) {
1764+ // Recursively check nested objects in authConfigurations and apply masking
1765+ for (ConfigurationDto authConfiguration : authConfigurations ) {
1766+ applyMaskToNestedFields (authConfiguration .getValues (), additionalProperties );
1767+ }
1768+ }
17621769 }
17631770 }
17641771 }
0 commit comments