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 {