[java-identity-provider] branch main updated: Add S3 CNAME as backup metadata location for first-party plugins.

Scott Cantor cantor.2 at osu.edu
Tue Apr 27 20:49:04 UTC 2021


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=d23f1d55b80270af4cd51910bbd04c4fc4702526

The following commit(s) were added to refs/heads/main by this push:
       new  d23f1d55b Add S3 CNAME as backup metadata location for first-party plugins.
d23f1d55b is described below

commit d23f1d55b80270af4cd51910bbd04c4fc4702526
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue Apr 27 16:49:01 2021 -0400

    Add S3 CNAME as backup metadata location for first-party plugins.
---
 .../java/net/shibboleth/idp/plugin/AbstractIdPPlugin.java     |  8 +++++---
 .../src/main/java/net/shibboleth/idp/plugin/IdPPlugin.java    | 10 ++++++----
 .../net/shibboleth/idp/plugin/PropertyDrivenIdPPlugin.java    |  8 +++++---
 .../net/shibboleth/idp/plugin/impl/FirstPartyIdPPlugin.java   | 11 +++++++----
 4 files changed, 23 insertions(+), 14 deletions(-)

diff --git a/idp-admin-api/src/main/java/net/shibboleth/idp/plugin/AbstractIdPPlugin.java b/idp-admin-api/src/main/java/net/shibboleth/idp/plugin/AbstractIdPPlugin.java
index a4325e8bc..0798d1cda 100644
--- a/idp-admin-api/src/main/java/net/shibboleth/idp/plugin/AbstractIdPPlugin.java
+++ b/idp-admin-api/src/main/java/net/shibboleth/idp/plugin/AbstractIdPPlugin.java
@@ -26,6 +26,8 @@ import javax.annotation.Nonnull;
 import net.shibboleth.idp.module.IdPModule;
 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;
 
 /**
  * A base class implementing {@link IdPPlugin} that defaults common settings.
@@ -57,12 +59,12 @@ public abstract class AbstractIdPPlugin implements IdPPlugin {
     }
 
     /** {@inheritDoc} */
-    @Nonnull @NonnullElements public Set<String> getRequiredModules() {
+    @Nonnull @NonnullElements @Unmodifiable @NotLive public Set<String> getRequiredModules() {
         return Collections.emptySet();
     }
 
     /** {@inheritDoc} */
-    @Nonnull @NonnullElements public Set<IdPModule> getEnableOnInstall() {
+    @Nonnull @NonnullElements @Unmodifiable @NotLive public Set<IdPModule> getEnableOnInstall() {
         return enableModules;
     }
 
@@ -81,7 +83,7 @@ public abstract class AbstractIdPPlugin implements IdPPlugin {
     }
 
     /** {@inheritDoc} */
-    @Nonnull @NonnullElements public Set<IdPModule> getDisableOnRemoval() {
+    @Nonnull @NonnullElements @Unmodifiable @NotLive public Set<IdPModule> getDisableOnRemoval() {
         return disableModules;
     }
 
diff --git a/idp-admin-api/src/main/java/net/shibboleth/idp/plugin/IdPPlugin.java b/idp-admin-api/src/main/java/net/shibboleth/idp/plugin/IdPPlugin.java
index 589ea2277..ec53f3ace 100644
--- a/idp-admin-api/src/main/java/net/shibboleth/idp/plugin/IdPPlugin.java
+++ b/idp-admin-api/src/main/java/net/shibboleth/idp/plugin/IdPPlugin.java
@@ -29,6 +29,8 @@ import javax.annotation.Nullable;
 import net.shibboleth.idp.module.IdPModule;
 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;
 
 /**
  * This interface is exported (via the service API) by every IdP plugin.
@@ -54,7 +56,7 @@ public interface IdPPlugin {
      * @return Zero or more URLs
      * @throws IOException if the resource construction failed.
      */
-    @Nonnull @NonnullElements List<URL> getUpdateURLs() throws IOException;
+    @Nonnull @NonnullElements @Unmodifiable @NotLive List<URL> getUpdateURLs() throws IOException;
     
     /** Return the major version, (as defined by the 
      * <a href="https://wiki.shibboleth.net/confluence/display/DEV/Java+Product+Version+Policy">
@@ -88,20 +90,20 @@ public interface IdPPlugin {
      * 
      * @return module IDs that are required
      */
-    @Nonnull @NonnullElements Set<String> getRequiredModules();
+    @Nonnull @NonnullElements @Unmodifiable @NotLive Set<String> getRequiredModules();
 
     /**
      * Get the modules to enable after plugin installation or upgrade.
      * 
      * @return modules to enable
      */
-    @Nonnull @NonnullElements Set<IdPModule> getEnableOnInstall();
+    @Nonnull @NonnullElements @Unmodifiable @NotLive Set<IdPModule> getEnableOnInstall();
 
     /**
      * Get the modules to disable after plugin removal.
      * 
      * @return modules to disable
      */
-    @Nonnull @NonnullElements Set<IdPModule> getDisableOnRemoval();
+    @Nonnull @NonnullElements @Unmodifiable @NotLive Set<IdPModule> getDisableOnRemoval();
 
 }
\ No newline at end of file
diff --git a/idp-admin-api/src/main/java/net/shibboleth/idp/plugin/PropertyDrivenIdPPlugin.java b/idp-admin-api/src/main/java/net/shibboleth/idp/plugin/PropertyDrivenIdPPlugin.java
index 884e36cca..9f40b5d47 100644
--- a/idp-admin-api/src/main/java/net/shibboleth/idp/plugin/PropertyDrivenIdPPlugin.java
+++ b/idp-admin-api/src/main/java/net/shibboleth/idp/plugin/PropertyDrivenIdPPlugin.java
@@ -37,6 +37,8 @@ import net.shibboleth.idp.module.PropertyDrivenIdPModule;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonNegative;
 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.logic.Constraint;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
@@ -183,13 +185,13 @@ public abstract class PropertyDrivenIdPPlugin extends AbstractIdPPlugin {
     }
     
     /** {@inheritDoc} */
-    @Nonnull @NonnullElements public List<URL> getUpdateURLs() {
+    @Nonnull @NonnullElements @Unmodifiable @NotLive public List<URL> getUpdateURLs() {
         return updateURLs;
     }
 
     /** {@inheritDoc} */
     @Override
-    @Nonnull @NonnullElements public Set<String> getRequiredModules() {
+    @Nonnull @NonnullElements @Unmodifiable @NotLive public Set<String> getRequiredModules() {
         return requiredModules;
     }
 
@@ -220,7 +222,7 @@ public abstract class PropertyDrivenIdPPlugin extends AbstractIdPPlugin {
      * @return default update locations
      * @throws PluginException 
      */
-    @Nonnull @NonnullElements protected List<URL> getDefaultUpdateURLs() throws PluginException {
+    @Nonnull @NonnullElements @Unmodifiable @NotLive protected List<URL> getDefaultUpdateURLs() throws PluginException {
         return Collections.emptyList();
     }
     
diff --git a/idp-admin-impl/src/main/java/net/shibboleth/idp/plugin/impl/FirstPartyIdPPlugin.java b/idp-admin-impl/src/main/java/net/shibboleth/idp/plugin/impl/FirstPartyIdPPlugin.java
index addfbd960..0fa506a7d 100644
--- a/idp-admin-impl/src/main/java/net/shibboleth/idp/plugin/impl/FirstPartyIdPPlugin.java
+++ b/idp-admin-impl/src/main/java/net/shibboleth/idp/plugin/impl/FirstPartyIdPPlugin.java
@@ -20,7 +20,6 @@ package net.shibboleth.idp.plugin.impl;
 import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
-import java.util.Collections;
 import java.util.List;
 
 import javax.annotation.Nonnull;
@@ -29,6 +28,8 @@ import net.shibboleth.idp.plugin.IdPPlugin;
 import net.shibboleth.idp.plugin.PluginException;
 import net.shibboleth.idp.plugin.PropertyDrivenIdPPlugin;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
+import net.shibboleth.utilities.java.support.annotation.constraint.NotLive;
+import net.shibboleth.utilities.java.support.annotation.constraint.Unmodifiable;
 
 /**
  * Implementation class for plugins from the project itself to centralize
@@ -51,10 +52,12 @@ public class FirstPartyIdPPlugin extends PropertyDrivenIdPPlugin {
     /** {@inheritDoc} 
      * @throws PluginException */
     @Override
-    @Nonnull @NonnullElements public List<URL> getDefaultUpdateURLs() throws PluginException {
+    @Nonnull @NonnullElements @Unmodifiable @NotLive public List<URL> getDefaultUpdateURLs() throws PluginException {
         try {
-            return Collections.singletonList(
-                    new URL("https://shibboleth.net/downloads/identity-provider/plugins/plugins.properties"));
+            // The second location is a backup CNAME pointing into AWS S3 at present.
+            return List.of(
+                    new URL("https://shibboleth.net/downloads/identity-provider/plugins/plugins.properties"),
+                    new URL("http://plugins.shibboleth.net/plugins.properties"));
         } catch (final MalformedURLException e) {
             throw new PluginException(e);
         }

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


More information about the commits mailing list