[java-idp-plugin-duo] branch main updated: Aligning configuration naming, and adding IdPModule with default config.
Scott Cantor
cantor.2 at osu.edu
Tue Oct 6 14:53:51 UTC 2020
This is an automated email from the git hooks/post-receive script.
scantor pushed a commit to branch main
in repository java-idp-plugin-duo.
View the commit online:
http://git.shibboleth.net/view/?p=java-idp-plugin-duo.git;a=commit;h=3bb1aa2e34e10cdf2a98a5722ebc593bac814f81
The following commit(s) were added to refs/heads/main by this push:
new 3bb1aa2 Aligning configuration naming, and adding IdPModule with default config.
3bb1aa2 is described below
commit 3bb1aa2e34e10cdf2a98a5722ebc593bac814f81
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue Oct 6 10:53:48 2020 -0400
Aligning configuration naming, and adding IdPModule with default config.
---
idp-duo-impl/pom.xml | 7 ++++
.../idp/plugin/authn/duo/DuoOIDCModule.java | 20 +++++++++
.../META-INF/net.shibboleth.idp/postconfig.xml | 26 ++++++------
.../flows/authn/DuoOIDC/duo-oidc-authn-beans.xml | 47 ++++++++++------------
.../services/net.shibboleth.idp.module.IdPModule | 1 +
.../idp/plugin/authn/duo/module.properties | 12 ++++++
.../module/conf/authn/duo-oidc-authn-config.xml} | 22 +++++++---
.../duo/module/conf/authn/duo-oidc.properties | 13 ++++++
.../authn/duo-oidc-authn-config-custom-factory.xml | 2 +-
...duo-oidc-authn-config-multiple-integrations.xml | 2 +-
idp-duo-native-client-impl/.classpath | 4 +-
.../plugin/authn/duo}/duo-client-factory-bean.xml | 6 +--
.../.classpath | 5 +++
idp-duo-nimbus-client-impl/.project | 23 +++++++++++
.../.settings/org.eclipse.core.resources.prefs | 5 +++
.../.settings/org.eclipse.jdt.core.prefs | 8 ++++
.../.settings/org.eclipse.m2e.core.prefs | 4 ++
.../plugin/authn/duo}/duo-client-factory-bean.xml | 16 ++++----
18 files changed, 164 insertions(+), 59 deletions(-)
diff --git a/idp-duo-impl/pom.xml b/idp-duo-impl/pom.xml
index 864a834..01bada9 100644
--- a/idp-duo-impl/pom.xml
+++ b/idp-duo-impl/pom.xml
@@ -98,6 +98,13 @@
<scope>provided</scope>
</dependency>
+ <!-- Needed for module/plugin impls. -->
+ <dependency>
+ <groupId>${idp.groupId}</groupId>
+ <artifactId>idp-admin-impl</artifactId>
+ <scope>provided</scope>
+ </dependency>
+
<!-- Test Dependencies -->
<dependency>
<groupId>${spring.groupId}</groupId>
diff --git a/idp-duo-impl/src/main/java/net/shibboleth/idp/plugin/authn/duo/DuoOIDCModule.java b/idp-duo-impl/src/main/java/net/shibboleth/idp/plugin/authn/duo/DuoOIDCModule.java
new file mode 100644
index 0000000..d03c3af
--- /dev/null
+++ b/idp-duo-impl/src/main/java/net/shibboleth/idp/plugin/authn/duo/DuoOIDCModule.java
@@ -0,0 +1,20 @@
+package net.shibboleth.idp.plugin.authn.duo;
+
+import java.io.IOException;
+
+import net.shibboleth.idp.module.ModuleException;
+import net.shibboleth.idp.module.impl.PluginIdPModule;
+
+public class DuoOIDCModule extends PluginIdPModule {
+
+ /**
+ * Constructor.
+ *
+ * @throws IOException if the property file cannot be loaded
+ * @throws ModuleException if other errors occur
+ */
+ public DuoOIDCModule() throws IOException, ModuleException {
+ super(DuoOIDCModule.class);
+ }
+
+}
\ No newline at end of file
diff --git a/idp-duo-impl/src/main/resources/META-INF/net.shibboleth.idp/postconfig.xml b/idp-duo-impl/src/main/resources/META-INF/net.shibboleth.idp/postconfig.xml
index c7a1c73..f034656 100644
--- a/idp-duo-impl/src/main/resources/META-INF/net.shibboleth.idp/postconfig.xml
+++ b/idp-duo-impl/src/main/resources/META-INF/net.shibboleth.idp/postconfig.xml
@@ -13,20 +13,20 @@
<!-- Authentication Flow Descriptor -->
<bean id="authn/DuoOIDC" parent="shibboleth.AuthenticationFlow"
- p:order="%{idp.authn.Duo.OIDC.order:1000}"
- p:nonBrowserSupported="%{idp.authn.Duo.OIDC.nonBrowserSupported:false}"
- p:passiveAuthenticationSupported="%{idp.authn.Duo.OIDC.passiveAuthenticationSupported:false}"
- p:forcedAuthenticationSupported="%{idp.authn.Duo.OIDC.forcedAuthenticationSupported:true}"
- p:proxyRestrictionsEnforced="%{idp.authn.Duo.OIDC.proxyRestrictionsEnforced:%{idp.authn.enforceProxyRestrictions:true}}"
- p:proxyScopingEnforced="%{idp.authn.Duo.OIDC.proxyScopingEnforced:false}"
- p:discoveryRequired="%{idp.authn.Duo.OIDC.discoveryRequired:false}"
- p:lifetime="%{idp.authn.Duo.OIDC.lifetime:%{idp.authn.defaultLifetime:PT1H}}"
- p:inactivityTimeout="%{idp.authn.Duo.OIDC.inactivityTimeout:%{idp.authn.defaultTimeout:PT30M}}"
- p:reuseCondition-ref="#{'%{idp.authn.Duo.OIDC.reuseCondition:shibboleth.Conditions.TRUE}'.trim()}"
- p:activationCondition-ref="#{'%{idp.authn.Duo.OIDC.activationCondition:shibboleth.Conditions.TRUE}'.trim()}">
+ p:order="%{idp.authn.DuoOIDC.order:1000}"
+ p:nonBrowserSupported="%{idp.authn.DuoOIDC.nonBrowserSupported:false}"
+ p:passiveAuthenticationSupported="%{idp.authn.DuoOIDC.passiveAuthenticationSupported:false}"
+ p:forcedAuthenticationSupported="%{idp.authn.DuoOIDC.forcedAuthenticationSupported:true}"
+ p:proxyRestrictionsEnforced="%{idp.authn.DuoOIDC.proxyRestrictionsEnforced:%{idp.authn.enforceProxyRestrictions:true}}"
+ p:proxyScopingEnforced="%{idp.authn.DuoOIDC.proxyScopingEnforced:false}"
+ p:discoveryRequired="%{idp.authn.DuoOIDC.discoveryRequired:false}"
+ p:lifetime="%{idp.authn.DuoOIDC.lifetime:%{idp.authn.defaultLifetime:PT1H}}"
+ p:inactivityTimeout="%{idp.authn.DuoOIDC.inactivityTimeout:%{idp.authn.defaultTimeout:PT30M}}"
+ p:reuseCondition-ref="#{'%{idp.authn.DuoOIDC.reuseCondition:shibboleth.Conditions.TRUE}'.trim()}"
+ p:activationCondition-ref="#{'%{idp.authn.DuoOIDC.activationCondition:shibboleth.Conditions.TRUE}'.trim()}">
<property name="supportedPrincipalsByString">
<bean parent="shibboleth.CommaDelimStringArray"
- c:_0="#{'%{idp.authn.Duo.OIDC.supportedPrincipals:}'.trim()}" />
+ c:_0="#{'%{idp.authn.DuoOIDC.supportedPrincipals:%{idp.authn.Duo.supportedPrincipals}}'.trim()}" />
</property>
</bean>
@@ -34,6 +34,4 @@
<bean id="shibboleth.DuoOIDCAuthnController"
class="net.shibboleth.idp.plugin.authn.duo.impl.DuoOIDCAuthnController" />
-
-
</beans>
\ No newline at end of file
diff --git a/idp-duo-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/DuoOIDC/duo-oidc-authn-beans.xml b/idp-duo-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/DuoOIDC/duo-oidc-authn-beans.xml
index 4c027bb..e952ca9 100644
--- a/idp-duo-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/DuoOIDC/duo-oidc-authn-beans.xml
+++ b/idp-duo-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/authn/DuoOIDC/duo-oidc-authn-beans.xml
@@ -16,51 +16,49 @@
<bean class="net.shibboleth.ext.spring.config.IdentifiableBeanPostProcessor" />
<bean class="net.shibboleth.idp.profile.impl.ProfileActionBeanPostProcessor" />
- <bean id="shibboleth.authn.duo.OIDC.externalAuthnPath" class="java.lang.String"
- c:_0="servletRelative:%{idp.authn.duo.OIDC.externalAuthnPath:/Authn/Duo/2FA/}" />
+ <bean id="shibboleth.authn.DuoOIDC.externalAuthnPath" class="java.lang.String"
+ c:_0="servletRelative:%{idp.authn.DuoOIDC.externalAuthnPath:/Authn/Duo/2FA/}" />
<!-- Default strategy function to obtain the external path. -->
- <bean id="shibboleth.authn.duo.OIDC.externalAuthnPathStrategy" parent="shibboleth.Functions.Constant"
- c:target-ref="shibboleth.authn.duo.OIDC.externalAuthnPath" />
+ <bean id="shibboleth.authn.DuoOIDC.externalAuthnPathStrategy" parent="shibboleth.Functions.Constant"
+ c:target-ref="shibboleth.authn.DuoOIDC.externalAuthnPath" />
<!-- Default Duo Integration -->
- <bean id="shibboleth.authn.duo.OIDC.DuoIntegration"
+ <bean id="shibboleth.authn.DuoOIDC.DuoIntegration"
class="net.shibboleth.idp.plugin.authn.duo.DefaultDuoOIDCIntegration" p:APIHost="%{idp.duo.oidc.apiHost:none}"
p:clientId="%{idp.duo.oidc.clientId:none}" p:secretKey="%{idp.duo.oidc.secretKey:none}"
- p:redirectURI="%{idp.duo.oidc.redirectUri:none}"
+ p:redirectURI="%{idp.duo.oidc.redirectURL:none}"
p:healthCheckEndpoint="%{idp.duo.oidc.endpoint.health:/oauth/v1/health_check}"
p:tokenEndpoint="%{idp.duo.oidc.endpoint.token:/oauth/v1/token}"
p:authorizeEndpoint="%{idp.duo.oidc.endpoint.authorize:/oauth/v1/authorize}"
/>
- <bean id="shibboleth.authn.duo.OIDC.DuoIntegrationStrategy" parent="shibboleth.Functions.Constant"
- c:target-ref="shibboleth.authn.duo.OIDC.DuoIntegration" />
+ <bean id="shibboleth.authn.DuoOIDC.DuoIntegrationStrategy" parent="shibboleth.Functions.Constant"
+ c:target-ref="shibboleth.authn.DuoOIDC.DuoIntegration" />
<!-- Default username comes from previous c14n or session. -->
- <bean id="shibboleth.authn.duo.OIDC.UsernameLookupStrategy"
+ <bean id="shibboleth.authn.DuoOIDC.UsernameLookupStrategy"
class="net.shibboleth.idp.session.context.navigate.CanonicalUsernameLookupStrategy" />
<!-- Duo Client factory and bean registry -->
- <bean id="shibboleth.authn.duo.OIDC.clientRegistry" scope="singleton"
+ <bean id="shibboleth.authn.DuoOIDC.clientRegistry" scope="singleton"
class="net.shibboleth.idp.plugin.authn.duo.impl.DefaultDuoOIDCClientRegistry"
- p:clientFactory-ref="%{idp.duo.oidc.clientFactoryBean:shibboleth.authn.duo.OIDC.native.sdk.clientFactory}" />
+ p:clientFactory-ref="%{idp.duo.oidc.clientFactoryBean:shibboleth.authn.DuoOIDC.native.sdk.clientFactory}" />
<!-- Load all (or none) factory bean definitions from the classpath. The actual factory bean to use is defined in the
client registry and overridable by the property idp.duo.oidc.clientFactoryBean -->
- <import resource="classpath*:duo-client-factory-bean.xml" />
+ <import resource="classpath*:/net/shibboleth/idp/plugin/authn/duo/duo-client-factory-bean.xml" />
<!-- Can override one or more of the beans above. Note, the property override is mostly to allow tests
to change the location of the user config file. -->
<!-- FIXME: Add this back in as conditional import-->
- <import resource="conditional:%{idp.home}%{idp.duo.oidc.user.config.home:/conf/authn/duo-authn-config.xml}" />
-
-
+ <import resource="conditional:%{idp.home}%{idp.duo.oidc.user.config.home:/conf/authn/duo-oidc-authn-config.xml}" />
<!-- Prototype per conversation beans -->
<bean id="PopulateDuoAuthenticationContext" scope="prototype"
class="net.shibboleth.idp.plugin.authn.duo.impl.PopulateDuoAuthenticationContext"
- p:duoIntegrationLookupStrategy-ref="shibboleth.authn.duo.OIDC.DuoIntegrationStrategy"
- p:usernameLookupStrategy-ref="shibboleth.authn.duo.OIDC.UsernameLookupStrategy"
- p:clientRegistry-ref="shibboleth.authn.duo.OIDC.clientRegistry" />
+ p:duoIntegrationLookupStrategy-ref="shibboleth.authn.DuoOIDC.DuoIntegrationStrategy"
+ p:usernameLookupStrategy-ref="shibboleth.authn.DuoOIDC.UsernameLookupStrategy"
+ p:clientRegistry-ref="shibboleth.authn.DuoOIDC.clientRegistry" />
<bean id="HealthCheckDuoOIDCAuthAPI" scope="prototype"
class="net.shibboleth.idp.plugin.authn.duo.impl.HealthCheckDuoOIDCAuthAPI" />
@@ -74,21 +72,20 @@
<bean id="ValidateTokenClaims" scope="prototype"
class="net.shibboleth.idp.plugin.authn.duo.impl.ValidateTokenClaims" />
-
<bean id="ExchangeCodeForDuoToken" scope="prototype"
class="net.shibboleth.idp.plugin.authn.duo.impl.ExchangeCodeForDuoToken" />
<bean id="ValidateDuoTokenAuthenticationResult" scope="prototype"
class="net.shibboleth.idp.plugin.authn.duo.impl.ValidateDuoTokenAuthenticationResult"
- p:classifiedMessages="#{getObject('shibboleth.authn.duo.OIDC.ClassifiedMessageMap') ?: getObject('shibboleth.authn.duo.OIDC.DefaultClassifiedMessageMap')}"
- p:resultCachingPredicate="#{getObject('shibboleth.authn.duo.OIDC.resultCachingPredicate')}"
- p:cleanupHook="#{getObject('shibboleth.authn.duo.OIDC.CleanUpHook')}"
- p:contextToPrincipalMappingStrategy="#{getObject('shibboleth.authn.duo.OIDC.ContextToPrincipalMappingStrategy')}"
- p:addDefaultPrincipals="#{getObject('shibboleth.authn.duo.OIDC.ContextToPrincipalMappingStrategy') == null}"/>
+ p:classifiedMessages="#{getObject('shibboleth.authn.DuoOIDC.ClassifiedMessageMap') ?: getObject('shibboleth.authn.DuoOIDC.DefaultClassifiedMessageMap')}"
+ p:resultCachingPredicate="#{getObject('shibboleth.authn.DuoOIDC.resultCachingPredicate')}"
+ p:cleanupHook="#{getObject('shibboleth.authn.DuoOIDC.CleanUpHook')}"
+ p:contextToPrincipalMappingStrategy="#{getObject('shibboleth.authn.DuoOIDC.ContextToPrincipalMappingStrategy')}"
+ p:addDefaultPrincipals="#{getObject('shibboleth.authn.DuoOIDC.ContextToPrincipalMappingStrategy') == null}"/>
<!-- TODO may not be the correct values for the new API -->
- <util:map id="shibboleth.authn.duo.OIDC.DefaultClassifiedMessageMap">
+ <util:map id="shibboleth.authn.DuoOIDC.DefaultClassifiedMessageMap">
<entry key="AccountLocked">
<list>
<value>locked_out</value>
diff --git a/idp-duo-impl/src/main/resources/META-INF/services/net.shibboleth.idp.module.IdPModule b/idp-duo-impl/src/main/resources/META-INF/services/net.shibboleth.idp.module.IdPModule
new file mode 100644
index 0000000..1bd79be
--- /dev/null
+++ b/idp-duo-impl/src/main/resources/META-INF/services/net.shibboleth.idp.module.IdPModule
@@ -0,0 +1 @@
+net.shibboleth.idp.plugin.authn.duo.DuoOIDCModule
diff --git a/idp-duo-impl/src/main/resources/net/shibboleth/idp/plugin/authn/duo/module.properties b/idp-duo-impl/src/main/resources/net/shibboleth/idp/plugin/authn/duo/module.properties
new file mode 100644
index 0000000..a8d3a2a
--- /dev/null
+++ b/idp-duo-impl/src/main/resources/net/shibboleth/idp/plugin/authn/duo/module.properties
@@ -0,0 +1,12 @@
+# Properties defining plugin module(s)
+
+# Class to Module ID mappings
+net.shibboleth.idp.plugin.authn.duo.DuoOIDCModule = idp.authn.DuoOIDC
+
+idp.authn.Duo.name = Duo "Universal Prompt" OIDC-based Authentication
+idp.authn.Duo.desc = Login flow for Duo Security's second-factor authentication service using the OIDC-based Universal Prompt
+idp.authn.Duo.url = /DuoOIDCAuthnConfiguration
+idp.authn.Duo.1.src = /net/shibboleth/idp/plugin/authn/duo/module/conf/authn/duo-oidc-authn-config.xml
+idp.authn.Duo.1.dest = conf/authn/duo-oidc-authn-config.xml
+idp.authn.Duo.2.src = /net/shibboleth/idp/plugin/authn/duo/module/conf/authn/duo-oidc.properties
+idp.authn.Duo.2.dest = conf/authn/duo-oidc.properties
diff --git a/idp-duo-impl/src/test/resources/conf/authn/duo-oidc-authn-config-custom-factory.xml b/idp-duo-impl/src/main/resources/net/shibboleth/idp/plugin/authn/duo/module/conf/authn/duo-oidc-authn-config.xml
similarity index 50%
copy from idp-duo-impl/src/test/resources/conf/authn/duo-oidc-authn-config-custom-factory.xml
copy to idp-duo-impl/src/main/resources/net/shibboleth/idp/plugin/authn/duo/module/conf/authn/duo-oidc-authn-config.xml
index 4a2969f..5aa4f3e 100644
--- a/idp-duo-impl/src/test/resources/conf/authn/duo-oidc-authn-config-custom-factory.xml
+++ b/idp-duo-impl/src/main/resources/net/shibboleth/idp/plugin/authn/duo/module/conf/authn/duo-oidc-authn-config.xml
@@ -7,12 +7,22 @@
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"
default-init-method="initialize" default-destroy-method="destroy">
-
- <!-- Add a custom Duo client factory in the same way a user would-->
-
- <bean id="shibboleth.authn.duo.OIDC.test.clientFactory"
- class="net.shibboleth.idp.plugin.authn.mock.MockDuoOIDCClientFactory_OK_Client" scope="singleton">
- </bean>
+ <!--
+ By default, the DuoOIDC flow will use statically-defined integrations defined via
+ properties. If you need more flexibility, you can define a function bean
+ called "shibboleth.authn.DuoOIDC.DuoIntegrationStrategy" to return an instance of
+ net.shibboleth.idp.plugin.authn.duo.DefaultDuoOIDCIntegration based on the state
+ of the request.
+
+ The Duo flow is designed to operate in conjunction with some other login flow,
+ usually orchestrated by the MFA login flow. It obtains the username to send to
+ Duo based on the output of the other login flow or a previous session with the
+ user. You can override that approach using a function bean called
+ "shibboleth.authn.DuoOIDC.UsernameLookupStrategy" to supply the username from a
+ different source.
+
+ Various other beans are supported, per the documentation.
+ -->
</beans>
diff --git a/idp-duo-impl/src/main/resources/net/shibboleth/idp/plugin/authn/duo/module/conf/authn/duo-oidc.properties b/idp-duo-impl/src/main/resources/net/shibboleth/idp/plugin/authn/duo/module/conf/authn/duo-oidc.properties
new file mode 100644
index 0000000..e7eea13
--- /dev/null
+++ b/idp-duo-impl/src/main/resources/net/shibboleth/idp/plugin/authn/duo/module/conf/authn/duo-oidc.properties
@@ -0,0 +1,13 @@
+## DuoOIDC default integration settings
+
+#idp.duo.oidc.endpoint.health = /oauth/v1/health_check
+#idp.duo.oidc.endpoint.token = /oauth/v1/token
+#idp.duo.oidc.endpoint.authorize = /oauth/v1/authorize
+
+idp.duo.oidc.apiHost = hostname
+idp.duo.oidc.clientId = clientid
+idp.duo.oidc.redirectURL = https://something
+idp.duo.oidc.integrationKey = key
+
+# We suggest defining this in credentials/secrets.properties
+#idp.duo.oidc.secretKey = key
diff --git a/idp-duo-impl/src/test/resources/conf/authn/duo-oidc-authn-config-custom-factory.xml b/idp-duo-impl/src/test/resources/conf/authn/duo-oidc-authn-config-custom-factory.xml
index 4a2969f..dfd19e7 100644
--- a/idp-duo-impl/src/test/resources/conf/authn/duo-oidc-authn-config-custom-factory.xml
+++ b/idp-duo-impl/src/test/resources/conf/authn/duo-oidc-authn-config-custom-factory.xml
@@ -10,7 +10,7 @@
<!-- Add a custom Duo client factory in the same way a user would-->
- <bean id="shibboleth.authn.duo.OIDC.test.clientFactory"
+ <bean id="shibboleth.authn.DuoOIDC.test.clientFactory"
class="net.shibboleth.idp.plugin.authn.mock.MockDuoOIDCClientFactory_OK_Client" scope="singleton">
</bean>
diff --git a/idp-duo-impl/src/test/resources/conf/authn/duo-oidc-authn-config-multiple-integrations.xml b/idp-duo-impl/src/test/resources/conf/authn/duo-oidc-authn-config-multiple-integrations.xml
index 751c539..96aa1b4 100644
--- a/idp-duo-impl/src/test/resources/conf/authn/duo-oidc-authn-config-multiple-integrations.xml
+++ b/idp-duo-impl/src/test/resources/conf/authn/duo-oidc-authn-config-multiple-integrations.xml
@@ -8,7 +8,7 @@
default-init-method="initialize" default-destroy-method="destroy">
- <bean id="shibboleth.authn.duo.OIDC.DuoIntegrationStrategy"
+ <bean id="shibboleth.authn.DuoOIDC.DuoIntegrationStrategy"
class="net.shibboleth.idp.plugin.authn.duo.impl.DualDuoIntegrationStrategy" />
</beans>
diff --git a/idp-duo-native-client-impl/.classpath b/idp-duo-native-client-impl/.classpath
index 4559ca0..9efc6d8 100644
--- a/idp-duo-native-client-impl/.classpath
+++ b/idp-duo-native-client-impl/.classpath
@@ -6,15 +6,17 @@
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
+ <classpathentry kind="src" output="target/classes" path="src/main/resources"/>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
+ <attribute name="test" value="true"/>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
- <attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11">
<attributes>
+ <attribute name="module" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
diff --git a/idp-duo-native-client-impl/src/main/resources/duo-client-factory-bean.xml b/idp-duo-native-client-impl/src/main/resources/net/shibboleth/idp/plugin/authn/duo/duo-client-factory-bean.xml
similarity index 85%
rename from idp-duo-native-client-impl/src/main/resources/duo-client-factory-bean.xml
rename to idp-duo-native-client-impl/src/main/resources/net/shibboleth/idp/plugin/authn/duo/duo-client-factory-bean.xml
index 6aa4760..724fe05 100644
--- a/idp-duo-native-client-impl/src/main/resources/duo-client-factory-bean.xml
+++ b/idp-duo-native-client-impl/src/main/resources/net/shibboleth/idp/plugin/authn/duo/duo-client-factory-bean.xml
@@ -10,14 +10,14 @@
default-init-method="initialize" default-destroy-method="destroy">
- <bean id="shibboleth.authn.duo.OIDC.native.sdk.clientFactory"
+ <bean id="shibboleth.authn.DuoOIDC.native.sdk.clientFactory"
class="net.shibboleth.idp.plugin.authn.duo.sdk.impl.DuoSDKClientFactory" scope="singleton"
- p:caCerts="#{getObject('shibboleth.authn.duo.OIDC.native.sdk.caCerts') ?: getObject('shibboleth.authn.duo.OIDC.native.sdk.defaultCaCerts')}">
+ p:caCerts="#{getObject('shibboleth.authn.DuoOIDC.native.sdk.caCerts') ?: getObject('shibboleth.authn.DuoOIDC.native.sdk.defaultCaCerts')}">
</bean>
<!-- The Default set of CA Certificate Pins used by the Duo SDK -->
- <util:list id="shibboleth.authn.duo.OIDC.native.sdk.defaultCaCerts" value-type="java.lang.String"
+ <util:list id="shibboleth.authn.DuoOIDC.native.sdk.defaultCaCerts" value-type="java.lang.String"
list-class="java.util.ArrayList">
<value>sha256/I/Lt/z7ekCWanjD0Cvj5EqXls2lOaThEA0H2Bg4BT/o=</value>
<value>sha256/r/mIkG3eEpVdm+u/ko/cwxzOMo1bk4TyHIlByibiA5E=</value>
diff --git a/idp-duo-native-client-impl/.classpath b/idp-duo-nimbus-client-impl/.classpath
similarity index 84%
copy from idp-duo-native-client-impl/.classpath
copy to idp-duo-nimbus-client-impl/.classpath
index 4559ca0..234db15 100644
--- a/idp-duo-native-client-impl/.classpath
+++ b/idp-duo-nimbus-client-impl/.classpath
@@ -6,6 +6,11 @@
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
+ <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
+ <attributes>
+ <attribute name="maven.pomderived" value="true"/>
+ </attributes>
+ </classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
diff --git a/idp-duo-nimbus-client-impl/.project b/idp-duo-nimbus-client-impl/.project
new file mode 100644
index 0000000..7f43b14
--- /dev/null
+++ b/idp-duo-nimbus-client-impl/.project
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>idp-plugin-duo-nimbus-client-impl</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.eclipse.m2e.core.maven2Nature</nature>
+ </natures>
+</projectDescription>
diff --git a/idp-duo-nimbus-client-impl/.settings/org.eclipse.core.resources.prefs b/idp-duo-nimbus-client-impl/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..839d647
--- /dev/null
+++ b/idp-duo-nimbus-client-impl/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,5 @@
+eclipse.preferences.version=1
+encoding//src/main/java=UTF-8
+encoding//src/main/resources=UTF-8
+encoding//src/test/java=UTF-8
+encoding/<project>=UTF-8
diff --git a/idp-duo-nimbus-client-impl/.settings/org.eclipse.jdt.core.prefs b/idp-duo-nimbus-client-impl/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..b5490a0
--- /dev/null
+++ b/idp-duo-nimbus-client-impl/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,8 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=11
+org.eclipse.jdt.core.compiler.compliance=11
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
+org.eclipse.jdt.core.compiler.release=enabled
+org.eclipse.jdt.core.compiler.source=11
diff --git a/idp-duo-nimbus-client-impl/.settings/org.eclipse.m2e.core.prefs b/idp-duo-nimbus-client-impl/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/idp-duo-nimbus-client-impl/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/idp-duo-nimbus-client-impl/src/main/resources/duo-client-factory-bean.xml b/idp-duo-nimbus-client-impl/src/main/resources/net/shibboleth/idp/plugin/authn/duo/duo-client-factory-bean.xml
similarity index 73%
rename from idp-duo-nimbus-client-impl/src/main/resources/duo-client-factory-bean.xml
rename to idp-duo-nimbus-client-impl/src/main/resources/net/shibboleth/idp/plugin/authn/duo/duo-client-factory-bean.xml
index 1496ca4..a499b15 100644
--- a/idp-duo-nimbus-client-impl/src/main/resources/duo-client-factory-bean.xml
+++ b/idp-duo-nimbus-client-impl/src/main/resources/net/shibboleth/idp/plugin/authn/duo/duo-client-factory-bean.xml
@@ -9,16 +9,16 @@
default-init-method="initialize" default-destroy-method="destroy">
- <bean id="shibboleth.authn.duo.OIDC.nimbus.clientFactory"
+ <bean id="shibboleth.authn.DuoOIDC.nimbus.clientFactory"
class="net.shibboleth.idp.plugin.authn.duo.nimbus.NimbusClientFactory" scope="singleton"
- p:httpClient="#{getObject('shibboleth.authn.Duo.OIDC.HttpClient') ?: getObject('shibboleth.authn.Duo.OIDC.InternalHttpClient')}"
+ p:httpClient="#{getObject('shibboleth.authn.DuoOIDC.HttpClient') ?: getObject('shibboleth.authn.DuoOIDC.InternalHttpClient')}"
p:objectMapper-ref="shibboleth.authn.duo.OIDC.JSONObjectMapper">
</bean>
<!-- Create a default HTTP Client using the global http settings overrides -->
- <bean id="shibboleth.authn.Duo.OIDC.InternalHttpClient" class="net.shibboleth.idp.plugin.authn.duo.nimbus.DuoHttpClientFactoryBean" lazy-init="true"
- p:tLSSocketFactory="#{ %{idp.httpclient.useTrustEngineTLSSocketFactory:false} or %{idp.httpclient.useSecurityEnhancedTLSSocketFactory:false} ? @'shibboleth.SecurityEnhancedTLSSocketFactory' : null }"
+ <bean id="shibboleth.authn.DuoOIDC.InternalHttpClient" class="net.shibboleth.idp.plugin.authn.duo.nimbus.DuoHttpClientFactoryBean" lazy-init="true"
+ p:tLSSocketFactory-ref="shibboleth.SecurityEnhancedTLSSocketFactory"
p:connectionDisregardTLSCertificate="%{idp.httpclient.connectionDisregardTLSCertificate:false}"
p:connectionTimeout="%{idp.httpclient.connectionTimeout:PT1M}"
p:connectionRequestTimeout="%{idp.httpclient.connectionRequestTimeout:PT1M}"
@@ -27,10 +27,10 @@
p:maxConnectionsPerRoute="%{idp.httpclient.maxConnectionsPerRoute:100}" />
<!-- Create a default object mapper. Setup should not change once injected -->
- <bean id="shibboleth.authn.duo.OIDC.JSONObjectMapper" class="com.fasterxml.jackson.databind.ObjectMapper" />
+ <bean id="shibboleth.authn.DuoOIDC.JSONObjectMapper" class="com.fasterxml.jackson.databind.ObjectMapper" />
<bean class="org.springframework.beans.factory.config.MethodInvokingBean"
- p:targetObject-ref="shibboleth.authn.duo.OIDC.JSONObjectMapper"
+ p:targetObject-ref="shibboleth.authn.DuoOIDC.JSONObjectMapper"
p:targetMethod="setSerializationInclusion">
<property name="arguments">
<util:constant static-field="com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL" />
@@ -38,7 +38,7 @@
</bean>
<bean class="org.springframework.beans.factory.config.MethodInvokingBean"
- p:targetObject-ref="shibboleth.authn.duo.OIDC.JSONObjectMapper"
+ p:targetObject-ref="shibboleth.authn.DuoOIDC.JSONObjectMapper"
p:targetMethod="registerModule">
<property name="arguments">
<bean class="com.fasterxml.jackson.datatype.jsr310.JavaTimeModule" />
@@ -46,7 +46,7 @@
</bean>
<bean class="org.springframework.beans.factory.config.MethodInvokingBean"
- p:targetObject-ref="shibboleth.authn.duo.OIDC.JSONObjectMapper"
+ p:targetObject-ref="shibboleth.authn.DuoOIDC.JSONObjectMapper"
p:targetMethod="setDateFormat">
<property name="arguments">
<bean class="java.text.SimpleDateFormat" c:_0="YYYY-MM-dd'T'HH:mm:ss.SSSZZ" />
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list