Instantiate SamlClientProvider instead of injecting it Injecting the SamlClientProvider led to the SamlCLient to be unconfigured, which broke the plugin. The assumed reason is that the SamlWebFilter is being injected, when loading configured filter classes in core, which is happening before plugin modules are being installed or other plugin classes were loaded. Thus, injection didn't work properly. Change-Id: I71796e669cc6064f955a2aca1497561464a21c50
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 2796b08..044d8db 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/saml/SamlWebFilter.java +++ b/src/main/java/com/googlesource/gerrit/plugins/saml/SamlWebFilter.java
@@ -17,16 +17,18 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.Iterators; import com.google.common.collect.Sets; +import com.google.gerrit.common.Nullable; import com.google.gerrit.entities.Account; import com.google.gerrit.extensions.api.GerritApi; import com.google.gerrit.extensions.api.accounts.Accounts; import com.google.gerrit.extensions.restapi.RestApiException; import com.google.gerrit.extensions.restapi.Url; import com.google.gerrit.server.config.AuthConfig; +import com.google.gerrit.server.config.CanonicalWebUrl; +import com.google.gerrit.server.config.SitePaths; import com.google.gerrit.server.util.ManualRequestContext; import com.google.gerrit.server.util.OneOffRequestContext; import com.google.inject.Inject; -import com.google.inject.Provider; import com.google.inject.Singleton; import java.io.IOException; import java.util.Arrays; @@ -78,18 +80,19 @@ @Inject SamlWebFilter( + @CanonicalWebUrl @Nullable String canonicalUrl, + SitePaths sitePaths, AuthConfig auth, SamlConfig samlConfig, SamlMembership samlMembership, GerritApi gApi, Accounts accounts, - OneOffRequestContext oneOffRequestContext, - Provider<SAML2Client> samlClientProvider) { + OneOffRequestContext oneOffRequestContext) { this.auth = auth; this.samlConfig = samlConfig; this.samlMembership = samlMembership; log.debug("Max Authentication Lifetime: " + samlConfig.getMaxAuthLifetimeAttr()); - this.saml2Client = samlClientProvider.get(); + this.saml2Client = new SamlClientProvider(canonicalUrl, sitePaths, samlConfig).get(); this.authHeaders = Sets.newHashSet(