Allow to set service provider entity id
Change-Id: Ic2b9ac2101eb66cdadfef9d0c69c5d6247fdbcc5
diff --git a/README.md b/README.md
index 9266e27..89abd32 100644
--- a/README.md
+++ b/README.md
@@ -151,3 +151,6 @@
Default is `UserName`
+**saml.serviceProviderEntityId**: Saml service provider entity id
+
+Default is not set.
diff --git a/src/main/java/com/thesamet/gerrit/plugins/saml/SamlConfig.java b/src/main/java/com/thesamet/gerrit/plugins/saml/SamlConfig.java
index ef01d02..1906d02 100644
--- a/src/main/java/com/thesamet/gerrit/plugins/saml/SamlConfig.java
+++ b/src/main/java/com/thesamet/gerrit/plugins/saml/SamlConfig.java
@@ -24,6 +24,7 @@
public class SamlConfig {
private static final String SAML_SECTION = "saml";
+ private final String serviceProviderEntityId;
private final String metadataPath;
private final String keystorePath;
private final String privateKeyPassword;
@@ -39,6 +40,7 @@
@Inject
SamlConfig(@GerritServerConfig Config cfg) {
+ serviceProviderEntityId = getString(cfg, "serviceProviderEntityId");
metadataPath = getString(cfg, "metadataPath");
keystorePath = getString(cfg, "keystorePath");
privateKeyPassword = getString(cfg, "privateKeyPassword");
@@ -107,4 +109,8 @@
public boolean isComputedDisplayName() {
return computedDisplayName;
}
+
+ public String getServiceProviderEntityId() {
+ return serviceProviderEntityId;
+ }
}
diff --git a/src/main/java/com/thesamet/gerrit/plugins/saml/SamlWebFilter.java b/src/main/java/com/thesamet/gerrit/plugins/saml/SamlWebFilter.java
index df30139..60e2659 100644
--- a/src/main/java/com/thesamet/gerrit/plugins/saml/SamlWebFilter.java
+++ b/src/main/java/com/thesamet/gerrit/plugins/saml/SamlWebFilter.java
@@ -14,6 +14,7 @@
package com.thesamet.gerrit.plugins.saml;
+import com.google.common.base.Strings;
import com.google.common.collect.Iterators;
import com.google.common.collect.Sets;
import com.google.gerrit.extensions.restapi.Url;
@@ -81,6 +82,9 @@
samlClientConfig.setMaximumAuthenticationLifetime(samlConfig.getMaxAuthLifetimeAttr());
samlClientConfig.setServiceProviderMetadataPath(
ensureExists(sitePaths.data_dir).resolve("sp-metadata.xml").toString());
+ if (!Strings.isNullOrEmpty(samlConfig.getServiceProviderEntityId())) {
+ samlClientConfig.setServiceProviderEntityId(samlConfig.getServiceProviderEntityId());
+ }
saml2Client = new SAML2Client(samlClientConfig);
String callbackUrl = gerritConfig.getString("gerrit", null, "canonicalWebUrl") + SAML_CALLBACK;