aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatteo Mara <matteo.mara@sonarsource.com>2022-10-24 18:05:44 +0200
committersonartech <sonartech@sonarsource.com>2022-10-27 20:03:02 +0000
commit2d0fc24a0bb35bf5c4d464cd4acea871592f6f38 (patch)
tree0f75426e3e4add615a3a6cfa11a4a4bfdc063b21
parent2dd8147eaf2064fd8307b4b75e8a7998bad00459 (diff)
downloadsonarqube-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.java6
-rw-r--r--server/sonar-auth-saml/src/test/java/org/sonar/auth/saml/SamlIdentityProviderTest.java1
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