Merge branch 'stable-2.16' into master
* stable-2.16:
Respect auth.userNameToLowerCase configuration
Change-Id: I454683f72f52fbc2235ff2c1f79dca457047332a
diff --git a/src/main/java/com/googlesource/gerrit/plugins/saml/SamlWebFilter.java b/src/main/java/com/googlesource/gerrit/plugins/saml/SamlWebFilter.java
index 1166389..b91f539 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/saml/SamlWebFilter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/saml/SamlWebFilter.java
@@ -28,6 +28,7 @@
import java.util.Enumeration;
import java.util.HashSet;
import java.util.List;
+import java.util.Locale;
import java.util.Objects;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
@@ -69,6 +70,7 @@
private final String httpEmailHeader;
private final String httpExternalIdHeader;
private final HashSet<String> authHeaders;
+ private final boolean userNameToLowerCase;
@Inject
SamlWebFilter(@GerritServerConfig Config gerritConfig, SitePaths sitePaths, SamlConfig samlConfig)
@@ -115,6 +117,7 @@
+ "httpDisplaynameHeader, httpEmailHeader and httpExternalIdHeader "
+ "are required.");
}
+ userNameToLowerCase = gerritConfig.getBoolean("auth", "userNameToLowerCase", false);
saml2Client.setCallbackUrl(callbackUrl);
}
@@ -269,7 +272,8 @@
}
private String getUserName(SAML2Profile user) {
- return getAttributeOrElseId(user, samlConfig.getUserNameAttr());
+ String username = getAttributeOrElseId(user, samlConfig.getUserNameAttr());
+ return userNameToLowerCase ? username.toLowerCase(Locale.US) : username;
}
private static Path ensureExists(Path dataDir) throws IOException {