[java-identity-provider] branch main updated: IDP-1664 - Support Module service API

Scott Cantor cantor.2 at osu.edu
Wed Sep 30 16:45:05 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=d894a6695ae3740107ed6fa0664d31c3057e4212

The following commit(s) were added to refs/heads/main by this push:
       new  d894a6695 IDP-1664 - Support Module service API
d894a6695 is described below

commit d894a6695ae3740107ed6fa0664d31c3057e4212
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Wed Sep 30 12:44:37 2020 -0400

    IDP-1664 - Support Module service API
    
    https://issues.shibboleth.net/jira/browse/IDP-1664
    
    Convert module URL to string.
    New impl base classes that factor out wiki links.
---
 .../java/net/shibboleth/idp/module/IdPModule.java  |  3 +-
 .../idp/module/PropertyDrivenIdPModule.java        | 22 ++++---
 .../shibboleth/idp/module/impl/CoreIdPModule.java  | 68 +++++++++++++++++++++
 .../idp/module/impl/PluginIdPModule.java           | 69 ++++++++++++++++++++++
 idp-conf-impl/pom.xml                              |  5 ++
 .../shibboleth/idp/module/admin/impl/Hello.java    |  4 +-
 .../idp/module/admin/impl/UnlockKeys.java          |  4 +-
 .../net/shibboleth/idp/module/authn/impl/Duo.java  |  4 +-
 .../shibboleth/idp/module/authn/impl/External.java |  4 +-
 .../shibboleth/idp/module/authn/impl/Function.java |  4 +-
 .../idp/module/authn/impl/IPAddress.java           |  4 +-
 .../net/shibboleth/idp/module/authn/impl/MFA.java  |  4 +-
 .../shibboleth/idp/module/authn/impl/Password.java |  4 +-
 .../idp/module/authn/impl/RemoteUser.java          |  4 +-
 .../idp/module/authn/impl/RemoteUserInternal.java  |  4 +-
 .../shibboleth/idp/module/authn/impl/SPNEGO.java   |  4 +-
 .../net/shibboleth/idp/module/authn/impl/X509.java |  4 +-
 .../idp/module/intercept/impl/Consent.java         |  4 +-
 .../idp/module/intercept/impl/ContextCheck.java    |  4 +-
 .../module/intercept/impl/ExpiringPassword.java    |  4 +-
 .../idp/module/intercept/impl/Impersonate.java     |  4 +-
 .../idp/module/intercept/impl/Warning.java         |  4 +-
 .../shibboleth/idp/module/profile/impl/CAS.java    |  4 +-
 .../idp/module/admin/impl/module.properties        |  4 +-
 .../idp/module/authn/impl/module.properties        | 20 +++----
 .../idp/module/intercept/impl/module.properties    | 10 ++--
 .../idp/module/profile/impl/module.properties      |  2 +-
 27 files changed, 210 insertions(+), 65 deletions(-)

diff --git a/idp-admin-api/src/main/java/net/shibboleth/idp/module/IdPModule.java b/idp-admin-api/src/main/java/net/shibboleth/idp/module/IdPModule.java
index b2b7c331f..2225eb7a2 100644
--- a/idp-admin-api/src/main/java/net/shibboleth/idp/module/IdPModule.java
+++ b/idp-admin-api/src/main/java/net/shibboleth/idp/module/IdPModule.java
@@ -17,7 +17,6 @@
 
 package net.shibboleth.idp.module;
 
-import java.net.URL;
 import java.nio.file.Path;
 import java.util.Collection;
 import java.util.Map;
@@ -63,7 +62,7 @@ public interface IdPModule extends IdentifiedComponent {
      * 
      * @return a URL for obtaining additional information about the module
      */
-    @Nullable URL getURL();
+    @Nullable @NotEmpty String getURL();
     
     /**
      * Gets whether module enablement requires access to an {@link HttpClient}.
diff --git a/idp-admin-api/src/main/java/net/shibboleth/idp/module/PropertyDrivenIdPModule.java b/idp-admin-api/src/main/java/net/shibboleth/idp/module/PropertyDrivenIdPModule.java
index 9c8bc91f5..0c2ff37c0 100644
--- a/idp-admin-api/src/main/java/net/shibboleth/idp/module/PropertyDrivenIdPModule.java
+++ b/idp-admin-api/src/main/java/net/shibboleth/idp/module/PropertyDrivenIdPModule.java
@@ -19,8 +19,6 @@ package net.shibboleth.idp.module;
 
 import java.io.IOException;
 import java.io.InputStream;
-import java.net.MalformedURLException;
-import java.net.URL;
 import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -94,7 +92,7 @@ public class PropertyDrivenIdPModule extends AbstractIdPModule {
     @Nonnull @NotEmpty private String moduleName;
 
     /** Module URL. */
-    @Nullable private URL moduleURL;
+    @Nullable @NotEmpty private String moduleURL;
     
     /** Available message locales. */
     @Nonnull @NonnullElements private List<String> locales;
@@ -153,10 +151,7 @@ public class PropertyDrivenIdPModule extends AbstractIdPModule {
             moduleName = Constraint.isNotNull(
                     StringSupport.trimOrNull(moduleProperties.getProperty(getId() + MODULE_NAME_PROPERTY)),
                     "Module name missing from properties");
-            final String url = StringSupport.trimOrNull(moduleProperties.getProperty(getId() + MODULE_URL_PROPERTY));
-            if (url != null) {
-                moduleURL = new URL(url);
-            }
+            moduleURL = StringSupport.trimOrNull(moduleProperties.getProperty(getId() + MODULE_URL_PROPERTY));
             
             locales = StringSupport.stringToList(
                     moduleProperties.getProperty(getId() + MODULE_LANGS_PROPERTY, ""), ", ");
@@ -194,7 +189,7 @@ public class PropertyDrivenIdPModule extends AbstractIdPModule {
             resources.forEach(
                     r -> log.debug("Module {}: Resource {} -> {} ({})",
                             getId(), r.getSource(), r.getDestination(), r.isReplace() ? "replace" : "noreplace"));
-        } catch (final ConstraintViolationException | MalformedURLException e) {
+        } catch (final ConstraintViolationException e) {
             throw new ModuleException(e);
         }
     }
@@ -234,10 +229,19 @@ public class PropertyDrivenIdPModule extends AbstractIdPModule {
     }
 
     /** {@inheritDoc} */
-    @Nullable public URL getURL() {
+    @Nullable @NotEmpty public String getURL() {
         return moduleURL;
     }
     
+    /**
+     * Set the module URL.
+     * 
+     * @param url URL to set
+     */
+    public void setURL(@Nullable @NotEmpty final String url) {
+        moduleURL = StringSupport.trimOrNull(url);
+    }
+    
     /** {@inheritDoc} */
     public boolean isHttpClientRequired() {
         return requireHttpClient;
diff --git a/idp-admin-impl/src/main/java/net/shibboleth/idp/module/impl/CoreIdPModule.java b/idp-admin-impl/src/main/java/net/shibboleth/idp/module/impl/CoreIdPModule.java
new file mode 100644
index 000000000..8243eeeee
--- /dev/null
+++ b/idp-admin-impl/src/main/java/net/shibboleth/idp/module/impl/CoreIdPModule.java
@@ -0,0 +1,68 @@
+/*
+ * 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.impl;
+
+import java.io.IOException;
+
+import javax.annotation.Nonnull;
+
+import net.shibboleth.idp.module.IdPModule;
+import net.shibboleth.idp.module.ModuleException;
+import net.shibboleth.idp.module.PropertyDrivenIdPModule;
+import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+
+/**
+ * Implementation base class for {@IdPModules} that live within the core code
+ * and whose documentation URLs will float with the IdP's own.
+ * 
+ */
+public class CoreIdPModule extends PropertyDrivenIdPModule {
+
+    /** Documentation base URL. */
+    @Nonnull @NotEmpty
+    public static final String MODULE_URL_BASE = "https://wiki.shibboleth.net/confluence/display/IDP4";
+    
+    /**
+     * Constructor.
+     *
+     * @param claz implementation class of the module
+     * 
+     * @throws IOException if an I/O error occurs
+     * @throws ModuleException if a generic error occurs
+     */
+    public CoreIdPModule(@Nonnull final Class<? extends IdPModule> claz) throws IOException, ModuleException {
+        super(claz);
+    }
+
+    /**
+     * {@inheritDoc}
+     * 
+     * The override prepends a known documentation prefix to all module URLs.
+     */
+    @Override
+    protected void load() throws ModuleException {
+        super.load();
+        
+        final String current = getURL();
+        
+        if (current != null && current.startsWith("/")) {
+            setURL(MODULE_URL_BASE + current);
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/idp-admin-impl/src/main/java/net/shibboleth/idp/module/impl/PluginIdPModule.java b/idp-admin-impl/src/main/java/net/shibboleth/idp/module/impl/PluginIdPModule.java
new file mode 100644
index 000000000..832e29426
--- /dev/null
+++ b/idp-admin-impl/src/main/java/net/shibboleth/idp/module/impl/PluginIdPModule.java
@@ -0,0 +1,69 @@
+/*
+ * 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.impl;
+
+import java.io.IOException;
+
+import javax.annotation.Nonnull;
+
+import net.shibboleth.idp.module.IdPModule;
+import net.shibboleth.idp.module.ModuleException;
+import net.shibboleth.idp.module.PropertyDrivenIdPModule;
+import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
+
+/**
+ * Implementation base class for {@IdPModules} that are shipped in plugins
+ * produced by the Shibboleth Project ourselves and for which the documentation
+ * will be in the wiki in a fixed location.
+ * 
+ */
+public class PluginIdPModule extends PropertyDrivenIdPModule {
+
+    /** Documentation base URL. */
+    @Nonnull @NotEmpty
+    public static final String MODULE_URL_BASE = "https://wiki.shibboleth.net/confluence/display/IDPPLUGIN";
+    
+    /**
+     * Constructor.
+     *
+     * @param claz implementation class of the module
+     * 
+     * @throws IOException if an I/O error occurs
+     * @throws ModuleException if a generic error occurs
+     */
+    public PluginIdPModule(@Nonnull final Class<? extends IdPModule> claz) throws IOException, ModuleException {
+        super(claz);
+    }
+
+    /**
+     * {@inheritDoc}
+     * 
+     * The override prepends a known documentation prefix to all module URLs.
+     */
+    @Override
+    protected void load() throws ModuleException {
+        super.load();
+        
+        final String current = getURL();
+        
+        if (current != null && current.startsWith("/")) {
+            setURL(MODULE_URL_BASE + current);
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/idp-conf-impl/pom.xml b/idp-conf-impl/pom.xml
index d765d89bc..9d68fe8e7 100644
--- a/idp-conf-impl/pom.xml
+++ b/idp-conf-impl/pom.xml
@@ -27,6 +27,11 @@
             <artifactId>idp-admin-api</artifactId>
             <version>${project.version}</version>
         </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>idp-admin-impl</artifactId>
+            <version>${project.version}</version>
+        </dependency>
 
         <!-- Provided Dependencies -->
 
diff --git a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/admin/impl/Hello.java b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/admin/impl/Hello.java
index 2f8edd348..66ee65aaa 100644
--- a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/admin/impl/Hello.java
+++ b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/admin/impl/Hello.java
@@ -21,12 +21,12 @@ import java.io.IOException;
 
 import net.shibboleth.idp.module.IdPModule;
 import net.shibboleth.idp.module.ModuleException;
-import net.shibboleth.idp.module.PropertyDrivenIdPModule;
+import net.shibboleth.idp.module.impl.CoreIdPModule;
 
 /**
  * {@link IdPModule} implementation.
  */
-public final class Hello extends PropertyDrivenIdPModule {
+public final class Hello extends CoreIdPModule {
 
     /**
      * Constructor.
diff --git a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/admin/impl/UnlockKeys.java b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/admin/impl/UnlockKeys.java
index 14d4f4abc..90f362365 100644
--- a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/admin/impl/UnlockKeys.java
+++ b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/admin/impl/UnlockKeys.java
@@ -21,12 +21,12 @@ import java.io.IOException;
 
 import net.shibboleth.idp.module.IdPModule;
 import net.shibboleth.idp.module.ModuleException;
-import net.shibboleth.idp.module.PropertyDrivenIdPModule;
+import net.shibboleth.idp.module.impl.CoreIdPModule;
 
 /**
  * {@link IdPModule} implementation.
  */
-public final class UnlockKeys extends PropertyDrivenIdPModule {
+public final class UnlockKeys extends CoreIdPModule {
 
     /**
      * Constructor.
diff --git a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/Duo.java b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/Duo.java
index 81228e090..68236e927 100644
--- a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/Duo.java
+++ b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/Duo.java
@@ -21,12 +21,12 @@ import java.io.IOException;
 
 import net.shibboleth.idp.module.IdPModule;
 import net.shibboleth.idp.module.ModuleException;
-import net.shibboleth.idp.module.PropertyDrivenIdPModule;
+import net.shibboleth.idp.module.impl.CoreIdPModule;
 
 /**
  * {@link IdPModule} implementation.
  */
-public final class Duo extends PropertyDrivenIdPModule {
+public final class Duo extends CoreIdPModule {
 
     /**
      * Constructor.
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
index 9856dca64..7ec4761d4 100644
--- 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
@@ -21,12 +21,12 @@ import java.io.IOException;
 
 import net.shibboleth.idp.module.IdPModule;
 import net.shibboleth.idp.module.ModuleException;
-import net.shibboleth.idp.module.PropertyDrivenIdPModule;
+import net.shibboleth.idp.module.impl.CoreIdPModule;
 
 /**
  * {@link IdPModule} implementation.
  */
-public final class External extends PropertyDrivenIdPModule {
+public final class External extends CoreIdPModule {
 
     /**
      * Constructor.
diff --git a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/Function.java b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/Function.java
index 3dba46da2..ca6fc18ca 100644
--- a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/Function.java
+++ b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/Function.java
@@ -21,12 +21,12 @@ import java.io.IOException;
 
 import net.shibboleth.idp.module.IdPModule;
 import net.shibboleth.idp.module.ModuleException;
-import net.shibboleth.idp.module.PropertyDrivenIdPModule;
+import net.shibboleth.idp.module.impl.CoreIdPModule;
 
 /**
  * {@link IdPModule} implementation.
  */
-public final class Function extends PropertyDrivenIdPModule {
+public final class Function extends CoreIdPModule {
 
     /**
      * Constructor.
diff --git a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/IPAddress.java b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/IPAddress.java
index 6a30c9fa2..d3d129ccd 100644
--- a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/IPAddress.java
+++ b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/IPAddress.java
@@ -21,12 +21,12 @@ import java.io.IOException;
 
 import net.shibboleth.idp.module.IdPModule;
 import net.shibboleth.idp.module.ModuleException;
-import net.shibboleth.idp.module.PropertyDrivenIdPModule;
+import net.shibboleth.idp.module.impl.CoreIdPModule;
 
 /**
  * {@link IdPModule} implementation.
  */
-public final class IPAddress extends PropertyDrivenIdPModule {
+public final class IPAddress extends CoreIdPModule {
 
     /**
      * Constructor.
diff --git a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/MFA.java b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/MFA.java
index 51db8415d..0f19f76e3 100644
--- a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/MFA.java
+++ b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/MFA.java
@@ -21,12 +21,12 @@ import java.io.IOException;
 
 import net.shibboleth.idp.module.IdPModule;
 import net.shibboleth.idp.module.ModuleException;
-import net.shibboleth.idp.module.PropertyDrivenIdPModule;
+import net.shibboleth.idp.module.impl.CoreIdPModule;
 
 /**
  * {@link IdPModule} implementation.
  */
-public final class MFA extends PropertyDrivenIdPModule {
+public final class MFA extends CoreIdPModule {
 
     /**
      * Constructor.
diff --git a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/Password.java b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/Password.java
index c0261e14d..0aec7a533 100644
--- a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/Password.java
+++ b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/Password.java
@@ -21,12 +21,12 @@ import java.io.IOException;
 
 import net.shibboleth.idp.module.IdPModule;
 import net.shibboleth.idp.module.ModuleException;
-import net.shibboleth.idp.module.PropertyDrivenIdPModule;
+import net.shibboleth.idp.module.impl.CoreIdPModule;
 
 /**
  * {@link IdPModule} implementation.
  */
-public final class Password extends PropertyDrivenIdPModule {
+public final class Password extends CoreIdPModule {
 
     /**
      * Constructor.
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
index c02be366b..773384911 100644
--- 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
@@ -21,12 +21,12 @@ import java.io.IOException;
 
 import net.shibboleth.idp.module.IdPModule;
 import net.shibboleth.idp.module.ModuleException;
-import net.shibboleth.idp.module.PropertyDrivenIdPModule;
+import net.shibboleth.idp.module.impl.CoreIdPModule;
 
 /**
  * {@link IdPModule} implementation.
  */
-public final class RemoteUser extends PropertyDrivenIdPModule {
+public final class RemoteUser extends CoreIdPModule {
 
     /**
      * Constructor.
diff --git a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/RemoteUserInternal.java b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/RemoteUserInternal.java
index e8da29e77..021c8cc36 100644
--- a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/RemoteUserInternal.java
+++ b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/RemoteUserInternal.java
@@ -21,12 +21,12 @@ import java.io.IOException;
 
 import net.shibboleth.idp.module.IdPModule;
 import net.shibboleth.idp.module.ModuleException;
-import net.shibboleth.idp.module.PropertyDrivenIdPModule;
+import net.shibboleth.idp.module.impl.CoreIdPModule;
 
 /**
  * {@link IdPModule} implementation.
  */
-public final class RemoteUserInternal extends PropertyDrivenIdPModule {
+public final class RemoteUserInternal extends CoreIdPModule {
 
     /**
      * Constructor.
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
index dfdc30425..f79b9b637 100644
--- 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
@@ -21,12 +21,12 @@ import java.io.IOException;
 
 import net.shibboleth.idp.module.IdPModule;
 import net.shibboleth.idp.module.ModuleException;
-import net.shibboleth.idp.module.PropertyDrivenIdPModule;
+import net.shibboleth.idp.module.impl.CoreIdPModule;
 
 /**
  * {@link IdPModule} implementation.
  */
-public final class SPNEGO extends PropertyDrivenIdPModule {
+public final class SPNEGO extends CoreIdPModule {
 
     /**
      * Constructor.
diff --git a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/X509.java b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/X509.java
index db33cf85a..106d2b360 100644
--- a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/X509.java
+++ b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/authn/impl/X509.java
@@ -21,12 +21,12 @@ import java.io.IOException;
 
 import net.shibboleth.idp.module.IdPModule;
 import net.shibboleth.idp.module.ModuleException;
-import net.shibboleth.idp.module.PropertyDrivenIdPModule;
+import net.shibboleth.idp.module.impl.CoreIdPModule;
 
 /**
  * {@link IdPModule} implementation.
  */
-public final class X509 extends PropertyDrivenIdPModule {
+public final class X509 extends CoreIdPModule {
 
     /**
      * Constructor.
diff --git a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/intercept/impl/Consent.java b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/intercept/impl/Consent.java
index 0107f5da9..06bbb4600 100644
--- a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/intercept/impl/Consent.java
+++ b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/intercept/impl/Consent.java
@@ -21,12 +21,12 @@ import java.io.IOException;
 
 import net.shibboleth.idp.module.IdPModule;
 import net.shibboleth.idp.module.ModuleException;
-import net.shibboleth.idp.module.PropertyDrivenIdPModule;
+import net.shibboleth.idp.module.impl.CoreIdPModule;
 
 /**
  * {@link IdPModule} implementation.
  */
-public final class Consent extends PropertyDrivenIdPModule {
+public final class Consent extends CoreIdPModule {
 
     /**
      * Constructor.
diff --git a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/intercept/impl/ContextCheck.java b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/intercept/impl/ContextCheck.java
index 52925d6a0..5f0d717cd 100644
--- a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/intercept/impl/ContextCheck.java
+++ b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/intercept/impl/ContextCheck.java
@@ -21,12 +21,12 @@ import java.io.IOException;
 
 import net.shibboleth.idp.module.IdPModule;
 import net.shibboleth.idp.module.ModuleException;
-import net.shibboleth.idp.module.PropertyDrivenIdPModule;
+import net.shibboleth.idp.module.impl.CoreIdPModule;
 
 /**
  * {@link IdPModule} implementation.
  */
-public final class ContextCheck extends PropertyDrivenIdPModule {
+public final class ContextCheck extends CoreIdPModule {
 
     /**
      * Constructor.
diff --git a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/intercept/impl/ExpiringPassword.java b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/intercept/impl/ExpiringPassword.java
index d17d01a83..525527509 100644
--- a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/intercept/impl/ExpiringPassword.java
+++ b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/intercept/impl/ExpiringPassword.java
@@ -21,12 +21,12 @@ import java.io.IOException;
 
 import net.shibboleth.idp.module.IdPModule;
 import net.shibboleth.idp.module.ModuleException;
-import net.shibboleth.idp.module.PropertyDrivenIdPModule;
+import net.shibboleth.idp.module.impl.CoreIdPModule;
 
 /**
  * {@link IdPModule} implementation.
  */
-public final class ExpiringPassword extends PropertyDrivenIdPModule {
+public final class ExpiringPassword extends CoreIdPModule {
 
     /**
      * Constructor.
diff --git a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/intercept/impl/Impersonate.java b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/intercept/impl/Impersonate.java
index b00880f60..0d6c02d2f 100644
--- a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/intercept/impl/Impersonate.java
+++ b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/intercept/impl/Impersonate.java
@@ -21,12 +21,12 @@ import java.io.IOException;
 
 import net.shibboleth.idp.module.IdPModule;
 import net.shibboleth.idp.module.ModuleException;
-import net.shibboleth.idp.module.PropertyDrivenIdPModule;
+import net.shibboleth.idp.module.impl.CoreIdPModule;
 
 /**
  * {@link IdPModule} implementation.
  */
-public final class Impersonate extends PropertyDrivenIdPModule {
+public final class Impersonate extends CoreIdPModule {
 
     /**
      * Constructor.
diff --git a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/intercept/impl/Warning.java b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/intercept/impl/Warning.java
index d217e2e46..cc0f949ac 100644
--- a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/intercept/impl/Warning.java
+++ b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/intercept/impl/Warning.java
@@ -21,12 +21,12 @@ import java.io.IOException;
 
 import net.shibboleth.idp.module.IdPModule;
 import net.shibboleth.idp.module.ModuleException;
-import net.shibboleth.idp.module.PropertyDrivenIdPModule;
+import net.shibboleth.idp.module.impl.CoreIdPModule;
 
 /**
  * {@link IdPModule} implementation.
  */
-public final class Warning extends PropertyDrivenIdPModule {
+public final class Warning extends CoreIdPModule {
 
     /**
      * Constructor.
diff --git a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/profile/impl/CAS.java b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/profile/impl/CAS.java
index 9eecff6d4..26107ebfd 100644
--- a/idp-conf-impl/src/main/java/net/shibboleth/idp/module/profile/impl/CAS.java
+++ b/idp-conf-impl/src/main/java/net/shibboleth/idp/module/profile/impl/CAS.java
@@ -21,12 +21,12 @@ import java.io.IOException;
 
 import net.shibboleth.idp.module.IdPModule;
 import net.shibboleth.idp.module.ModuleException;
-import net.shibboleth.idp.module.PropertyDrivenIdPModule;
+import net.shibboleth.idp.module.impl.CoreIdPModule;
 
 /**
  * {@link IdPModule} implementation.
  */
-public final class CAS extends PropertyDrivenIdPModule {
+public final class CAS extends CoreIdPModule {
 
     /**
      * Constructor.
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/admin/impl/module.properties b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/admin/impl/module.properties
index f67975c3a..9b6882a0a 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/admin/impl/module.properties
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/admin/impl/module.properties
@@ -6,13 +6,13 @@ net.shibboleth.idp.module.admin.impl.UnlockKeys = idp.admin.UnlockKeys
 
 idp.admin.Hello.name = Hello World
 idp.admin.Hello.desc = Administrative flow for debugging/initial deployment
-idp.admin.Hello.url = https://wiki.shibboleth.net/confluence/display/IDP4/HelloWorldConfiguration
+idp.admin.Hello.url = /HelloWorldConfiguration
 idp.admin.Hello.1.src = /net/shibboleth/idp/module/views/admin/hello.vm
 idp.admin.Hello.1.dest = views/admin/hello.vm
 
 idp.admin.UnlockKeys.name = Attended Restart
 idp.admin.UnlockKeys.desc = Administrative flow for attended restart
-idp.admin.UnlockKeys.url = https://wiki.shibboleth.net/confluence/display/IDP4/AttendedRestartConfiguration
+idp.admin.UnlockKeys.url = /AttendedRestartConfiguration
 idp.admin.UnlockKeys.1.src = /net/shibboleth/idp/module/conf/admin/unlock-keys.xml
 idp.admin.UnlockKeys.1.dest = conf/admin/unlock-keys.xml
 idp.admin.UnlockKeys.2.src = /net/shibboleth/idp/module/views/admin/unlock-keys.vm
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 0f4a38c3f..512da0d21 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
@@ -14,7 +14,7 @@ net.shibboleth.idp.module.authn.impl.X509 = idp.authn.X509
 
 idp.authn.Duo.name = Duo Authentication
 idp.authn.Duo.desc = Login flow for Duo Security's second-factor authentication service.
-idp.authn.Duo.url = https://wiki.shibboleth.net/confluence/display/IDP4/DuoAuthnConfiguration
+idp.authn.Duo.url = /DuoAuthnConfiguration
 idp.authn.Duo.1.src = /net/shibboleth/idp/module/conf/authn/duo-authn-config.xml
 idp.authn.Duo.1.dest = conf/authn/duo-authn-config.xml
 idp.authn.Duo.2.src = /net/shibboleth/idp/module/conf/authn/duo.properties
@@ -24,31 +24,31 @@ idp.authn.Duo.3.dest = views/duo.vm
 
 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.url = /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
+idp.authn.Function.url = /FunctionAuthnConfiguration
 idp.authn.Function.1.src = /net/shibboleth/idp/module/conf/authn/function-authn-config.xml
 idp.authn.Function.1.dest = conf/authn/function-authn-config.xml
 
 idp.authn.IPAddress.name = IPAddress Authentication
 idp.authn.IPAddress.desc = Login flow that maps IP Address ranges to subjects.
-idp.authn.IPAddress.url = https://wiki.shibboleth.net/confluence/display/IDP4/IPAddressAuthnConfiguration
+idp.authn.IPAddress.url = /IPAddressAuthnConfiguration
 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.MFA.name = MFA Authentication
 idp.authn.MFA.desc = Login flow for orchestration of multiple login methods
-idp.authn.MFA.url = https://wiki.shibboleth.net/confluence/display/IDP4/MultiFactorAuthnConfiguration
+idp.authn.MFA.url = /MultiFactorAuthnConfiguration
 idp.authn.MFA.1.src = /net/shibboleth/idp/module/conf/authn/mfa-authn-config.xml
 idp.authn.MFA.1.dest = conf/authn/mfa-authn-config.xml
 
 idp.authn.Password.name = Password Authentication
 idp.authn.Password.desc = Login flow for pluggable password-based authentication
-idp.authn.Password.url = https://wiki.shibboleth.net/confluence/display/IDP4/PasswordAuthnConfiguration
+idp.authn.Password.url = /PasswordAuthnConfiguration
 idp.authn.Password.1.src = /net/shibboleth/idp/module/conf/authn/password-authn-config.xml
 idp.authn.Password.1.dest = conf/authn/password-authn-config.xml
 idp.authn.Password.2.src = /net/shibboleth/idp/module/views/login.vm
@@ -58,19 +58,19 @@ idp.authn.Password.3.dest = views/login-error.vm
 
 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.url = /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.url = /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.SPNEGO.name = SPNEGO Authentication
 idp.authn.SPNEGO.desc = Login flow for SPNEGO authentication.
-idp.authn.SPNEGO.url = https://wiki.shibboleth.net/confluence/display/IDP4/SPNEGOAuthnConfiguration
+idp.authn.SPNEGO.url = /SPNEGOAuthnConfiguration
 idp.authn.SPNEGO.1.src = /net/shibboleth/idp/module/conf/authn/spnego-authn-config.xml
 idp.authn.SPNEGO.1.dest = conf/authn/spnego-authn-config.xml
 idp.authn.SPNEGO.2.src = /net/shibboleth/idp/module/views/spnego-unavailable.vm
@@ -78,7 +78,7 @@ idp.authn.SPNEGO.2.dest = views/spnego-unavailable.vm
 
 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
+idp.authn.X509.url = /X509AuthnConfiguration
 idp.authn.X509.1.src = /net/shibboleth/idp/module/conf/authn/x509-authn-config.xml
 idp.authn.X509.1.dest = conf/authn/x509-authn-config.xml
 idp.authn.X509.2.src = /net/shibboleth/idp/module/edit-webapp/x509-prompt.jsp
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/intercept/impl/module.properties b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/intercept/impl/module.properties
index a9d94abd9..1842f2b56 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/intercept/impl/module.properties
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/intercept/impl/module.properties
@@ -9,7 +9,7 @@ net.shibboleth.idp.module.intercept.impl.Warning = idp.intercept.Warning
 
 idp.intercept.Consent.name = Consent Interceptors
 idp.intercept.Consent.desc = Interceptor flows for attribute and terms of use consent
-idp.intercept.Consent.url = https://wiki.shibboleth.net/confluence/display/IDP4/ConsentConfiguration
+idp.intercept.Consent.url = /ConsentConfiguration
 idp.intercept.Consent.1.src = /net/shibboleth/idp/module/conf/intercept/consent-intercept-config.xml
 idp.intercept.Consent.1.dest = conf/intercept/consent-intercept-config.xml
 idp.intercept.Consent.2.src = /net/shibboleth/idp/module/views/intercept/attribute-release.vm
@@ -19,13 +19,13 @@ idp.intercept.Consent.3.dest = views/intercept/terms-of-use.vm
 
 idp.intercept.ContextCheck.name = Context Checking Interceptor
 idp.intercept.ContextCheck.desc = Interceptor flow for authorization based on request state
-idp.intercept.ContextCheck.url = https://wiki.shibboleth.net/confluence/display/IDP4/ContextCheckInterceptConfiguration
+idp.intercept.ContextCheck.url = /ContextCheckInterceptConfiguration
 idp.intercept.ContextCheck.1.src = /net/shibboleth/idp/module/conf/intercept/context-check-intercept-config.xml
 idp.intercept.ContextCheck.1.dest = conf/intercept/context-check-intercept-config.xml
 
 idp.intercept.ExpiringPassword.name = Expiring Password Interceptor
 idp.intercept.ExpiringPassword.desc = Interceptor flow for warning about an expired password
-idp.intercept.ExpiringPassword.url = https://wiki.shibboleth.net/confluence/display/IDP4/ExpiringPasswordInterceptConfiguration
+idp.intercept.ExpiringPassword.url = /ExpiringPasswordInterceptConfiguration
 idp.intercept.ExpiringPassword.1.src = /net/shibboleth/idp/module/conf/intercept/expiring-password-intercept-config.xml
 idp.intercept.ExpiringPassword.1.dest = conf/intercept/expiring-password-intercept-config.xml
 idp.intercept.ExpiringPassword.2.src = /net/shibboleth/idp/module/views/intercept/expiring-password.vm
@@ -33,12 +33,12 @@ idp.intercept.ExpiringPassword.2.dest = views/intercept/expiring-password.vm
 
 idp.intercept.Impersonate.name = Impersonation Interceptor
 idp.intercept.Impersonate.desc = Interceptor flow for subject impersonation
-idp.intercept.Impersonate.url = https://wiki.shibboleth.net/confluence/display/IDP4/ImpersonateInterceptConfiguration
+idp.intercept.Impersonate.url = /ImpersonateInterceptConfiguration
 idp.intercept.Impersonate.1.src = /net/shibboleth/idp/module/views/intercept/impersonate.vm
 idp.intercept.Impersonate.1.dest = views/intercept/impersonate.vm
 
 idp.intercept.Warning.name = Warning Interceptor
 idp.intercept.Warning.desc = Interceptor flow for generic warning conditions
-idp.intercept.Warning.url = https://wiki.shibboleth.net/confluence/display/IDP4/WarningInterceptConfiguration
+idp.intercept.Warning.url = /WarningInterceptConfiguration
 idp.intercept.Warning.1.src = /net/shibboleth/idp/module/conf/intercept/warning-intercept-config.xml
 idp.intercept.Warning.1.dest = conf/intercept/warning-intercept-config.xml
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/profile/impl/module.properties b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/profile/impl/module.properties
index 8853d3a12..1b5386846 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/profile/impl/module.properties
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/module/profile/impl/module.properties
@@ -6,6 +6,6 @@ net.shibboleth.idp.module.profile.impl.CAS = idp.profile.CAS
 
 idp.profile.CAS.name = CAS Protocol Suppport
 idp.profile.CAS.desc = Module that provides CAS protocol support
-idp.profile.CAS.url = https://wiki.shibboleth.net/confluence/display/IDP4/CasProtocolConfiguration
+idp.profile.CAS.url = /CasProtocolConfiguration
 idp.profile.CAS.1.src = /net/shibboleth/idp/module/conf/cas-protocol.xml
 idp.profile.CAS.1.dest = conf/cas-protocol.xml

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list