diff options
author | Matteo Mara <matteo.mara@sonarsource.com> | 2022-10-24 18:05:44 +0200 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2022-10-27 20:03:02 +0000 |
commit | 2d0fc24a0bb35bf5c4d464cd4acea871592f6f38 (patch) | |
tree | 0f75426e3e4add615a3a6cfa11a4a4bfdc063b21 | |
parent | 2dd8147eaf2064fd8307b4b75e8a7998bad00459 (diff) | |
download | sonarqube-2d0fc24a0bb35bf5c4d464cd4acea871592f6f38.tar.gz sonarqube-2d0fc24a0bb35bf5c4d464cd4acea871592f6f38.zip |
SONAR-17511 fix wrong behavior of the SAML Groups field when no value is provided.
-rw-r--r-- | server/sonar-auth-saml/src/main/java/org/sonar/auth/saml/SamlAuthenticator.java | 6 | ||||
-rw-r--r-- | server/sonar-auth-saml/src/test/java/org/sonar/auth/saml/SamlIdentityProviderTest.java | 1 |
2 files changed, 4 insertions, 3 deletions
diff --git a/server/sonar-auth-saml/src/main/java/org/sonar/auth/saml/SamlAuthenticator.java b/server/sonar-auth-saml/src/main/java/org/sonar/auth/saml/SamlAuthenticator.java index dba3c5b170f..3ad4326004d 100644 --- a/server/sonar-auth-saml/src/main/java/org/sonar/auth/saml/SamlAuthenticator.java +++ b/server/sonar-auth-saml/src/main/java/org/sonar/auth/saml/SamlAuthenticator.java @@ -78,7 +78,7 @@ public class SamlAuthenticator { .setProviderLogin(login) .setName(this.getName(auth)); this.getEmail(auth).ifPresent(userIdentityBuilder::setEmail); - userIdentityBuilder.setGroups(this.getGroups(auth)); + this.getGroups(auth).ifPresent(userIdentityBuilder::setGroups); return userIdentityBuilder.build(); } @@ -169,8 +169,8 @@ public class SamlAuthenticator { return samlSettings.getUserEmail().map(userEmailField -> getFirstAttribute(auth, userEmailField)); } - private Set<String> getGroups(Auth auth) { - return samlSettings.getGroupName().map(groupsField -> getGroups(auth, groupsField)).orElse(emptySet()); + private Optional<Set<String>> getGroups(Auth auth) { + return samlSettings.getGroupName().map(groupsField -> getGroups(auth, groupsField)); } private static String getNonNullFirstAttribute(Auth auth, String key) { diff --git a/server/sonar-auth-saml/src/test/java/org/sonar/auth/saml/SamlIdentityProviderTest.java b/server/sonar-auth-saml/src/test/java/org/sonar/auth/saml/SamlIdentityProviderTest.java index 5fdc4a9485e..13122e38cae 100644 --- a/server/sonar-auth-saml/src/test/java/org/sonar/auth/saml/SamlIdentityProviderTest.java +++ b/server/sonar-auth-saml/src/test/java/org/sonar/auth/saml/SamlIdentityProviderTest.java @@ -247,6 +247,7 @@ public class SamlIdentityProviderTest { assertThat(callbackContext.userIdentity.getProviderLogin()).isEqualTo("johndoe"); assertThat(callbackContext.userIdentity.getGroups()).isEmpty(); + assertThat(callbackContext.userIdentity.shouldSyncGroups()).isFalse(); } @Test |