Inject @CanonicalWebUrl instead of reading from config Change-Id: I2d68a7672079c53eac8070145523fe91e028d358
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 a58ef8a..837b4cc 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/saml/SamlWebFilter.java +++ b/src/main/java/com/googlesource/gerrit/plugins/saml/SamlWebFilter.java
@@ -14,10 +14,14 @@ package com.googlesource.gerrit.plugins.saml; +import static com.google.common.base.Preconditions.checkNotNull; + import com.google.common.base.Strings; import com.google.common.collect.Iterators; import com.google.common.collect.Sets; +import com.google.gerrit.common.Nullable; import com.google.gerrit.extensions.restapi.Url; +import com.google.gerrit.server.config.CanonicalWebUrl; import com.google.gerrit.server.config.GerritServerConfig; import com.google.gerrit.server.config.SitePaths; import com.google.inject.Inject; @@ -78,6 +82,7 @@ @Inject SamlWebFilter( @GerritServerConfig Config gerritConfig, + @CanonicalWebUrl @Nullable String canonicalUrl, SitePaths sitePaths, SamlConfig samlConfig, SamlMembership samlMembership) @@ -108,7 +113,6 @@ samlClientConfig.setMaximumAuthenticationLifetime(samlConfig.getMaxAuthLifetimeAttr()); saml2Client = new SAML2Client(samlClientConfig); - String callbackUrl = gerritConfig.getString("gerrit", null, "canonicalWebUrl") + SAML_CALLBACK; httpUserNameHeader = getHeaderFromConfig(gerritConfig, "httpHeader"); httpDisplaynameHeader = getHeaderFromConfig(gerritConfig, "httpDisplaynameHeader"); httpEmailHeader = getHeaderFromConfig(gerritConfig, "httpEmailHeader"); @@ -126,8 +130,8 @@ + "are required."); } userNameToLowerCase = gerritConfig.getBoolean("auth", "userNameToLowerCase", false); - - saml2Client.setCallbackUrl(callbackUrl); + checkNotNull(canonicalUrl, "gerrit.canonicalWebUrl must be set in gerrit.config"); + saml2Client.setCallbackUrl(canonicalUrl + SAML_CALLBACK); } @Override