[java-identity-provider] branch main updated: More login modules, convert subset of SPNEGO config into properties.
Scott Cantor
cantor.2 at osu.edu
Fri Sep 11 18:45:21 UTC 2020
This is an automated email from the git hooks/post-receive script.
scantor pushed a commit to branch main
in repository java-identity-provider.
View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=e51259bcd8a10af564226feb55cc6346b89cc935
The following commit(s) were added to refs/heads/main by this push:
new e51259bcd More login modules, convert subset of SPNEGO config into properties.
e51259bcd is described below
commit e51259bcd8a10af564226feb55cc6346b89cc935
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Fri Sep 11 14:45:11 2020 -0400
More login modules, convert subset of SPNEGO config into properties.
---
.../idp/authn/spnego/impl/KerberosSettings.java | 31 +++++-----------
.../shibboleth/idp/module/authn/impl/External.java | 41 ++++++++++++++++++++++
.../idp/module/authn/impl/RemoteUser.java | 41 ++++++++++++++++++++++
.../shibboleth/idp/module/authn/impl/SPNEGO.java | 41 ++++++++++++++++++++++
.../idp/flows/authn/external-authn-beans.xml | 6 ++--
.../idp/flows/authn/remoteuser-authn-beans.xml | 6 ++--
.../idp/flows/authn/spnego-authn-beans.xml | 14 +++++---
.../idp/module/authn/impl/module.properties | 21 +++++++++++
.../module}/conf/authn/external-authn-config.xml | 0
.../module}/conf/authn/remoteuser-authn-config.xml | 0
.../idp/module}/conf/authn/spnego-authn-config.xml | 17 +--------
.../src/main/resources/conf/authn/authn.properties | 3 ++
12 files changed, 171 insertions(+), 50 deletions(-)
diff --git a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/spnego/impl/KerberosSettings.java b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/spnego/impl/KerberosSettings.java
index b2d1dbb6f..a995c94df 100644
--- a/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/spnego/impl/KerberosSettings.java
+++ b/idp-authn-impl/src/main/java/net/shibboleth/idp/authn/spnego/impl/KerberosSettings.java
@@ -22,22 +22,20 @@ import java.util.Collections;
import java.util.List;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
-import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
-import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.component.ComponentSupport;
import net.shibboleth.utilities.java.support.logic.Constraint;
import net.shibboleth.utilities.java.support.primitive.StringSupport;
/**
* Kerberos settings for the SPNEGO authentication flow.
*/
-public class KerberosSettings extends AbstractInitializableComponent {
+public class KerberosSettings {
/** Class name of JAAS LoginModule to acquire Kerberos credentials. */
@Nonnull @NotEmpty private String loginModuleClassName;
@@ -60,8 +58,6 @@ public class KerberosSettings extends AbstractInitializableComponent {
* @param name name of login module class
*/
public void setLoginModuleClassName(@Nonnull @NotEmpty final String name) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
loginModuleClassName =
Constraint.isNotNull(StringSupport.trimOrNull(name), "Class name cannot be null or empty");
}
@@ -81,8 +77,6 @@ public class KerberosSettings extends AbstractInitializableComponent {
* @param flag flag to set
*/
public void setRefreshKrb5Config(final boolean flag) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
refreshKrb5Config = flag;
}
@@ -100,10 +94,12 @@ public class KerberosSettings extends AbstractInitializableComponent {
*
* @param realms realms to set.
*/
- public void setRealms(@Nonnull @NonnullElements final Collection<KerberosRealmSettings> realms) {
- ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-
- realmSettings = List.copyOf(Constraint.isNotNull(realms, "The realms collection cannot be null"));
+ public void setRealms(@Nullable @NonnullElements final Collection<KerberosRealmSettings> realms) {
+ if (realms != null) {
+ realmSettings = List.copyOf(realms);
+ } else {
+ realmSettings = Collections.emptyList();
+ }
}
/**
@@ -114,16 +110,5 @@ public class KerberosSettings extends AbstractInitializableComponent {
@Nonnull @NonnullElements @NotLive @Unmodifiable public Collection<KerberosRealmSettings> getRealms() {
return realmSettings;
}
-
- /** {@inheritDoc} */
- @Override
- protected void doInitialize() throws ComponentInitializationException {
- super.doInitialize();
-
- if (realmSettings.isEmpty()) {
- throw new ComponentInitializationException("Realm collection cannot be empty");
- }
-
- }
}
\ No newline at end of file
diff --git a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/External.java b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/External.java
new file mode 100644
index 000000000..9856dca64
--- /dev/null
+++ b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/External.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the University Corporation for Advanced Internet Development,
+ * Inc. (UCAID) under one or more contributor license agreements. See the
+ * NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The UCAID licenses this file to You under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.module.authn.impl;
+
+import java.io.IOException;
+
+import net.shibboleth.idp.module.IdPModule;
+import net.shibboleth.idp.module.ModuleException;
+import net.shibboleth.idp.module.PropertyDrivenIdPModule;
+
+/**
+ * {@link IdPModule} implementation.
+ */
+public final class External extends PropertyDrivenIdPModule {
+
+ /**
+ * Constructor.
+ *
+ * @throws ModuleException on error
+ * @throws IOException on error
+ */
+ public External() throws IOException, ModuleException {
+ super(External.class);
+ }
+
+}
\ No newline at end of file
diff --git a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/RemoteUser.java b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/RemoteUser.java
new file mode 100644
index 000000000..c02be366b
--- /dev/null
+++ b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/RemoteUser.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the University Corporation for Advanced Internet Development,
+ * Inc. (UCAID) under one or more contributor license agreements. See the
+ * NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The UCAID licenses this file to You under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.module.authn.impl;
+
+import java.io.IOException;
+
+import net.shibboleth.idp.module.IdPModule;
+import net.shibboleth.idp.module.ModuleException;
+import net.shibboleth.idp.module.PropertyDrivenIdPModule;
+
+/**
+ * {@link IdPModule} implementation.
+ */
+public final class RemoteUser extends PropertyDrivenIdPModule {
+
+ /**
+ * Constructor.
+ *
+ * @throws ModuleException on error
+ * @throws IOException on error
+ */
+ public RemoteUser() throws IOException, ModuleException {
+ super(RemoteUser.class);
+ }
+
+}
\ No newline at end of file
diff --git a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/SPNEGO.java b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/SPNEGO.java
new file mode 100644
index 000000000..dfdc30425
--- /dev/null
+++ b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/SPNEGO.java
@@ -0,0 +1,41 @@
+/*
+ * Licensed to the University Corporation for Advanced Internet Development,
+ * Inc. (UCAID) under one or more contributor license agreements. See the
+ * NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The UCAID licenses this file to You under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file except in
+ * compliance with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package net.shibboleth.idp.module.authn.impl;
+
+import java.io.IOException;
+
+import net.shibboleth.idp.module.IdPModule;
+import net.shibboleth.idp.module.ModuleException;
+import net.shibboleth.idp.module.PropertyDrivenIdPModule;
+
+/**
+ * {@link IdPModule} implementation.
+ */
+public final class SPNEGO extends PropertyDrivenIdPModule {
+
+ /**
+ * Constructor.
+ *
+ * @throws ModuleException on error
+ * @throws IOException on error
+ */
+ public SPNEGO() throws IOException, ModuleException {
+ super(SPNEGO.class);
+ }
+
+}
\ No newline at end of file
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/authn/external-authn-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/authn/external-authn-beans.xml
index ca3ae91cc..457c04dab 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/authn/external-authn-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/authn/external-authn-beans.xml
@@ -20,15 +20,15 @@
<!-- Default strategy function to obtain the external path. -->
<bean id="shibboleth.authn.External.externalAuthnPathStrategy" parent="shibboleth.Functions.Constant"
- c:target-ref="shibboleth.authn.External.externalAuthnPath" />
+ c:target="#{getObject('shibboleth.authn.External.externalAuthnPath') ?: 'contextRelative:external.jsp'}" />
- <import resource="%{idp.home}/conf/authn/external-authn-config.xml" />
+ <import resource="conditional:%{idp.home}/conf/authn/external-authn-config.xml" />
<bean id="ValidateExternalAuthentication"
class="net.shibboleth.idp.authn.impl.ValidateExternalAuthentication" scope="prototype"
p:matchExpression="#{getObject('shibboleth.authn.External.matchExpression')}"
p:addDefaultPrincipals="#{getObject('shibboleth.authn.External.addDefaultPrincipals') ?: true}"
- p:classifiedMessages-ref="shibboleth.authn.External.ClassifiedMessageMap"
+ p:classifiedMessages="#{getObject('shibboleth.authn.External.ClassifiedMessageMap')}"
p:resultCachingPredicate="#{getObject('shibboleth.authn.External.resultCachingPredicate')}"
c:filterService-ref="shibboleth.AttributeFilterService"
p:metadataResolver-ref="shibboleth.MetadataResolver" />
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/authn/remoteuser-authn-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/authn/remoteuser-authn-beans.xml
index 259bd71d1..69f3e96b8 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/authn/remoteuser-authn-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/authn/remoteuser-authn-beans.xml
@@ -20,16 +20,16 @@
<!-- Default strategy function to obtain the external path. -->
<bean id="shibboleth.authn.RemoteUser.externalAuthnPathStrategy" parent="shibboleth.Functions.Constant"
- c:target-ref="shibboleth.authn.RemoteUser.externalAuthnPath" />
+ c:target="#{getObject('shibboleth.authn.RemoteUser.externalAuthnPath') ?: 'contextRelative:Authn/RemoteUser'}" />
- <import resource="%{idp.home}/conf/authn/remoteuser-authn-config.xml" />
+ <import resource="conditional:%{idp.home}/conf/authn/remoteuser-authn-config.xml" />
<bean id="ValidateExternalAuthentication"
class="net.shibboleth.idp.authn.impl.ValidateExternalAuthentication" scope="prototype"
p:metricName="net.shibboleth.idp.authn.remoteuser"
p:matchExpression="#{getObject('shibboleth.authn.RemoteUser.matchExpression')}"
p:addDefaultPrincipals="#{getObject('shibboleth.authn.RemoteUser.addDefaultPrincipals') ?: true}"
- p:classifiedMessages-ref="shibboleth.authn.RemoteUser.ClassifiedMessageMap"
+ p:classifiedMessages="#{getObject('shibboleth.authn.RemoteUser.ClassifiedMessageMap')}"
p:resultCachingPredicate="#{getObject('shibboleth.authn.RemoteUser.resultCachingPredicate')}" />
<bean id="PopulateSubjectCanonicalizationContext"
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/authn/spnego-authn-beans.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/authn/spnego-authn-beans.xml
index 80e3b3a39..63558efdd 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/authn/spnego-authn-beans.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/flows/authn/spnego-authn-beans.xml
@@ -22,13 +22,17 @@
class="net.shibboleth.idp.authn.spnego.impl.KerberosRealmSettings" abstract="true" />
<bean id="shibboleth.authn.SPNEGO.externalAuthnPath" class="java.lang.String"
- c:_0="servletRelative:%{idp.authn.spnego.externalAuthnPath:/Authn/SPNEGO}" />
+ c:_0="servletRelative:%{idp.authn.SPNEGO.externalAuthnPath:%{idp.authn.spnego.externalAuthnPath:/Authn/SPNEGO}}" />
<!-- Default strategy function to obtain the external path. -->
<bean id="shibboleth.authn.SPNEGO.externalAuthnPathStrategy" parent="shibboleth.Functions.Constant"
c:target-ref="shibboleth.authn.SPNEGO.externalAuthnPath" />
- <import resource="%{idp.home}/conf/authn/spnego-authn-config.xml" />
+ <!-- Legacy approach to this setting, needed to allow override and aliasing below. -->
+ <bean id="shibboleth.authn.SPNEGO.EnforceRun" class="java.lang.Boolean" factory-method="valueOf"
+ c:_0="%{idp.authn.SPNEGO.enforceRun:false}" />
+
+ <import resource="conditional:%{idp.home}/conf/authn/spnego-authn-config.xml" />
<!-- Make configurable values available in flow. -->
@@ -37,8 +41,8 @@
<!-- Kerberos settings and realms. -->
<bean id="shibboleth.authn.SPNEGO.Krb5.Settings" class="net.shibboleth.idp.authn.spnego.impl.KerberosSettings"
- p:refreshKrb5Config-ref="shibboleth.authn.SPNEGO.Krb5.RefreshConfig"
- p:realms-ref="shibboleth.authn.SPNEGO.Krb5.Realms" />
+ p:refreshKrb5Config="#{getObject('shibboleth.authn.SPNEGO.Krb5.RefreshConfig') ?: %{idp.authn.SPNEGO.refreshKrbConfig:false}}"
+ p:realms="#{getObject('shibboleth.authn.SPNEGO.Krb5.Realms')}" />
<!-- Action beans. -->
@@ -46,7 +50,7 @@
class="net.shibboleth.idp.authn.impl.ValidateExternalAuthentication" scope="prototype"
p:metricName="net.shibboleth.idp.authn.spnego"
p:matchExpression="#{getObject('shibboleth.authn.SPNEGO.matchExpression')}"
- p:classifiedMessages-ref="shibboleth.authn.SPNEGO.ClassifiedMessageMap" />
+ p:classifiedMessages="#{getObject('shibboleth.authn.SPNEGO.ClassifiedMessageMap')}" />
<bean id="SPNEGOAutoLoginManager"
class="net.shibboleth.idp.authn.spnego.impl.SPNEGOAutoLoginManager"
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/authn/impl/module.properties b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/authn/impl/module.properties
index 79446c048..5279ac601 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/authn/impl/module.properties
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/authn/impl/module.properties
@@ -1,12 +1,21 @@
# Properties defining authn modules
# Class to Module ID mappings
+net.shibboleth.idp.module.authn.impl.External = idp.authn.External
net.shibboleth.idp.module.authn.impl.Function = idp.authn.Function
net.shibboleth.idp.module.authn.impl.IPAddress = idp.authn.IPAddress
+net.shibboleth.idp.module.authn.impl.RemoteUser = idp.authn.RemoteUser
net.shibboleth.idp.module.authn.impl.RemoteUserInternal = idp.authn.RemoteUserInternal
+net.shibboleth.idp.module.authn.impl.SPNEGO = idp.authn.SPNEGO
net.shibboleth.idp.module.authn.impl.X509 = idp.authn.X509
net.shibboleth.idp.module.authn.impl.X509Internal = idp.authn.X509Internal
+idp.authn.External.name = External Authentication
+idp.authn.External.desc = Login flow that delegates authentication to a servlet/JSP.
+idp.authn.External.url = https://wiki.shibboleth.net/confluence/display/IDP4/ExternalAuthnConfiguration
+idp.authn.External.1.src = /net/shibboleth/idp/module/conf/authn/external-authn-config.xml
+idp.authn.External.1.dest = conf/authn/external-authn-config.xml
+
idp.authn.Function.name = Function Authentication
idp.authn.Function.desc = Login flow that produces a result from a function.
idp.authn.Function.url = https://wiki.shibboleth.net/confluence/display/IDP4/FunctionAuthnConfiguration
@@ -19,12 +28,24 @@ idp.authn.IPAddress.url = https://wiki.shibboleth.net/confluence/display/IDP4/IP
idp.authn.IPAddress.1.src = /net/shibboleth/idp/module/conf/authn/ipaddress-authn-config.xml
idp.authn.IPAddress.1.dest = conf/authn/ipaddress-authn-config.xml
+idp.authn.RemoteUser.name = RemoteUser Authentication
+idp.authn.RemoteUser.desc = Login flow for container-based authentication with a dedicated protected path.
+idp.authn.RemoteUser.url = https://wiki.shibboleth.net/confluence/display/IDP4/RemoteUserAuthnConfiguration
+idp.authn.RemoteUser.1.src = /net/shibboleth/idp/module/conf/authn/remoteuser-authn-config.xml
+idp.authn.RemoteUser.1.dest = conf/authn/remoteuser-authn-config.xml
+
idp.authn.RemoteUserInternal.name = RemoteUserInternal Authentication
idp.authn.RemoteUserInternal.desc = Login flow for container-based authentication with no redirects.
idp.authn.RemoteUserInternal.url = https://wiki.shibboleth.net/confluence/display/IDP4/RemoteUserInternalAuthnConfiguration
idp.authn.RemoteUserInternal.1.src = /net/shibboleth/idp/module/conf/authn/remoteuser-internal-authn-config.xml
idp.authn.RemoteUserInternal.1.dest = conf/authn/remoteuser-internal-authn-config.xml
+idp.authn.X509.name = SPNEGO Authentication
+idp.authn.X509.desc = Login flow for SPNEGO authentication.
+idp.authn.X509.url = https://wiki.shibboleth.net/confluence/display/IDP4/SPNEGOAuthnConfiguration
+idp.authn.X509.1.src = /net/shibboleth/idp/module/conf/authn/spnego-authn-config.xml
+idp.authn.X509.1.dest = conf/authn/spnego-authn-config.xml
+
idp.authn.X509.name = X509 Authentication
idp.authn.X509.desc = Login flow for X.509 authentication with a dedicated protected path.
idp.authn.X509.url = https://wiki.shibboleth.net/confluence/display/IDP4/X509AuthnConfiguration
diff --git a/idp-conf/src/main/resources/conf/authn/external-authn-config.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/conf/authn/external-authn-config.xml
similarity index 100%
rename from idp-conf/src/main/resources/conf/authn/external-authn-config.xml
rename to idp-conf-impl/src/main/resources/net/shibboleth/idp/module/conf/authn/external-authn-config.xml
diff --git a/idp-conf/src/main/resources/conf/authn/remoteuser-authn-config.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/conf/authn/remoteuser-authn-config.xml
similarity index 100%
rename from idp-conf/src/main/resources/conf/authn/remoteuser-authn-config.xml
rename to idp-conf-impl/src/main/resources/net/shibboleth/idp/module/conf/authn/remoteuser-authn-config.xml
diff --git a/idp-conf/src/main/resources/conf/authn/spnego-authn-config.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/conf/authn/spnego-authn-config.xml
similarity index 80%
rename from idp-conf/src/main/resources/conf/authn/spnego-authn-config.xml
rename to idp-conf-impl/src/main/resources/net/shibboleth/idp/module/conf/authn/spnego-authn-config.xml
index 6c0fa48b7..f3891046e 100644
--- a/idp-conf/src/main/resources/conf/authn/spnego-authn-config.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/conf/authn/spnego-authn-config.xml
@@ -12,21 +12,6 @@
default-init-method="initialize"
default-destroy-method="destroy">
- <!-- General Configuration -->
-
- <!--
- Enforce running SPNEGO for all users, independent of user's autologin state.
- TRUE means that SPNEGO login is always tried (if available).
- FALSE means that SPNEGO login is run only if the user has enabled autologin.
- -->
- <util:constant id="shibboleth.authn.SPNEGO.EnforceRun" static-field="java.lang.Boolean.FALSE" />
-
- <!-- Kerberos Configuration-->
-
- <!-- General Kerberos Settings -->
-
- <util:constant id="shibboleth.authn.SPNEGO.Krb5.RefreshConfig" static-field="java.lang.Boolean.FALSE" />
-
<!-- Kerberos Service Principal(s) -->
<!--
@@ -48,7 +33,7 @@
<!--
<bean id="shibboleth.authn.SPNEGO.matchExpression" class="java.util.regex.Pattern" factory-method="compile"
- c:_0="^(.+)@example\.edu$" />
+ c:_0="^(.+)@example\.org$" />
-->
<!--
diff --git a/idp-conf/src/main/resources/conf/authn/authn.properties b/idp-conf/src/main/resources/conf/authn/authn.properties
index bb821a6e1..453a3f779 100644
--- a/idp-conf/src/main/resources/conf/authn/authn.properties
+++ b/idp-conf/src/main/resources/conf/authn/authn.properties
@@ -59,6 +59,9 @@ idp.authn.flows = Password
#idp.authn.SPNEGO.order = 1000
#idp.authn.SPNEGO.nonBrowserSupported = false
+#idp.authn.SPNEGO.externalAuthnPath = /Authn/SPNEGO
+#idp.authn.SPNEGO.enforceRun = false
+#idp.authn.SPNEGO.refreshKrbConfig = false
#idp.authn.SPNEGO.supportedPrincipals = \
# saml2/urn:oasis:names:tc:SAML:2.0:ac:classes:Kerberos, \
# saml1/urn:ietf:rfc:1510
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list