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