[java-identity-provider] branch master updated: IDP-1642 - Migrate configuration into jars where feasible

Scott Cantor cantor.2 at osu.edu
Tue Jul 21 17:37:19 UTC 2020


This is an automated email from the git hooks/post-receive script.

scantor pushed a commit to branch master
in repository java-identity-provider.

View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=663d70c4a8e4178713fb8f266ee8c777e00e7bb2

The following commit(s) were added to refs/heads/master by this push:
       new  663d70c4a IDP-1642 - Migrate configuration into jars where feasible
663d70c4a is described below

commit 663d70c4a8e4178713fb8f266ee8c777e00e7bb2
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue Jul 21 13:37:56 2020 -0400

    IDP-1642 - Migrate configuration into jars where feasible
    
    https://issues.shibboleth.net/jira/browse/IDP-1642
    
    Move back to explicit flow registration.
    Prevent jar override of system flows.
---
 .../shibboleth/idp/admin/flows}/hello-beans.xml           |  0
 .../shibboleth/idp/admin/flows}/hello-flow.xml            |  0
 .../shibboleth/idp/admin/flows}/lockout-beans.xml         |  0
 .../shibboleth/idp/admin/flows}/lockout-flow.xml          |  0
 .../shibboleth/idp/admin/flows}/mdquery-beans.xml         |  0
 .../shibboleth/idp/admin/flows}/mdquery-flow.xml          |  0
 .../shibboleth/idp/admin/flows}/metrics-beans.xml         |  0
 .../shibboleth/idp/admin/flows}/metrics-flow.xml          |  0
 .../shibboleth/idp/admin/flows}/reload-metadata-beans.xml |  0
 .../shibboleth/idp/admin/flows}/reload-metadata-flow.xml  |  0
 .../shibboleth/idp/admin/flows}/reload-service-beans.xml  |  0
 .../shibboleth/idp/admin/flows}/reload-service-flow.xml   |  0
 .../shibboleth/idp/admin/flows}/resolvertest-beans.xml    |  0
 .../shibboleth/idp/admin/flows}/resolvertest-flow.xml     |  0
 .../shibboleth/idp/admin/flows}/status-beans.xml          |  0
 .../shibboleth/idp/admin/flows}/status-flow.xml           |  0
 .../shibboleth/idp/admin/flows}/storage-beans.xml         |  0
 .../shibboleth/idp/admin/flows}/storage-flow.xml          |  0
 .../shibboleth/idp/admin/flows}/unlock-keys-beans.xml     |  0
 .../shibboleth/idp/admin/flows}/unlock-keys-flow.xml      |  0
 .../src/main/resources/system/conf/webflow-config.xml     | 15 +++++++++++++--
 .../spring/factory/FlowDefinitionRegistryFactoryBean.java | 15 +++++++++++++++
 22 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/hello/hello-beans.xml b/idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/hello-beans.xml
similarity index 100%
rename from idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/hello/hello-beans.xml
rename to idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/hello-beans.xml
diff --git a/idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/hello/hello-flow.xml b/idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/hello-flow.xml
similarity index 100%
rename from idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/hello/hello-flow.xml
rename to idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/hello-flow.xml
diff --git a/idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/lockout/lockout-beans.xml b/idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/lockout-beans.xml
similarity index 100%
rename from idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/lockout/lockout-beans.xml
rename to idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/lockout-beans.xml
diff --git a/idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/lockout/lockout-flow.xml b/idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/lockout-flow.xml
similarity index 100%
rename from idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/lockout/lockout-flow.xml
rename to idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/lockout-flow.xml
diff --git a/idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/mdquery/mdquery-beans.xml b/idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/mdquery-beans.xml
similarity index 100%
rename from idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/mdquery/mdquery-beans.xml
rename to idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/mdquery-beans.xml
diff --git a/idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/mdquery/mdquery-flow.xml b/idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/mdquery-flow.xml
similarity index 100%
rename from idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/mdquery/mdquery-flow.xml
rename to idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/mdquery-flow.xml
diff --git a/idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/metrics/metrics-beans.xml b/idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/metrics-beans.xml
similarity index 100%
rename from idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/metrics/metrics-beans.xml
rename to idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/metrics-beans.xml
diff --git a/idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/metrics/metrics-flow.xml b/idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/metrics-flow.xml
similarity index 100%
rename from idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/metrics/metrics-flow.xml
rename to idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/metrics-flow.xml
diff --git a/idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/reload-metadata/reload-metadata-beans.xml b/idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/reload-metadata-beans.xml
similarity index 100%
rename from idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/reload-metadata/reload-metadata-beans.xml
rename to idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/reload-metadata-beans.xml
diff --git a/idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/reload-metadata/reload-metadata-flow.xml b/idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/reload-metadata-flow.xml
similarity index 100%
rename from idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/reload-metadata/reload-metadata-flow.xml
rename to idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/reload-metadata-flow.xml
diff --git a/idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/reload-service/reload-service-beans.xml b/idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/reload-service-beans.xml
similarity index 100%
rename from idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/reload-service/reload-service-beans.xml
rename to idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/reload-service-beans.xml
diff --git a/idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/reload-service/reload-service-flow.xml b/idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/reload-service-flow.xml
similarity index 100%
rename from idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/reload-service/reload-service-flow.xml
rename to idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/reload-service-flow.xml
diff --git a/idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/resolvertest/resolvertest-beans.xml b/idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/resolvertest-beans.xml
similarity index 100%
rename from idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/resolvertest/resolvertest-beans.xml
rename to idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/resolvertest-beans.xml
diff --git a/idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/resolvertest/resolvertest-flow.xml b/idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/resolvertest-flow.xml
similarity index 100%
rename from idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/resolvertest/resolvertest-flow.xml
rename to idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/resolvertest-flow.xml
diff --git a/idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/status/status-beans.xml b/idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/status-beans.xml
similarity index 100%
rename from idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/status/status-beans.xml
rename to idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/status-beans.xml
diff --git a/idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/status/status-flow.xml b/idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/status-flow.xml
similarity index 100%
rename from idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/status/status-flow.xml
rename to idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/status-flow.xml
diff --git a/idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/storage/storage-beans.xml b/idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/storage-beans.xml
similarity index 100%
rename from idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/storage/storage-beans.xml
rename to idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/storage-beans.xml
diff --git a/idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/storage/storage-flow.xml b/idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/storage-flow.xml
similarity index 100%
rename from idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/storage/storage-flow.xml
rename to idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/storage-flow.xml
diff --git a/idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/unlock-keys/unlock-keys-beans.xml b/idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/unlock-keys-beans.xml
similarity index 100%
rename from idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/unlock-keys/unlock-keys-beans.xml
rename to idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/unlock-keys-beans.xml
diff --git a/idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/unlock-keys/unlock-keys-flow.xml b/idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/unlock-keys-flow.xml
similarity index 100%
rename from idp-admin-impl/src/main/resources/META-INF/net/shibboleth/idp/flows/admin/unlock-keys/unlock-keys-flow.xml
rename to idp-admin-impl/src/main/resources/net/shibboleth/idp/admin/flows/unlock-keys-flow.xml
diff --git a/idp-conf/src/main/resources/system/conf/webflow-config.xml b/idp-conf/src/main/resources/system/conf/webflow-config.xml
index 4f4ff1361..7cc686c7c 100644
--- a/idp-conf/src/main/resources/system/conf/webflow-config.xml
+++ b/idp-conf/src/main/resources/system/conf/webflow-config.xml
@@ -18,9 +18,20 @@
             <map>
                 <!-- Abstract base flow for admin flows. -->
                 <entry key="admin.abstract" value="classpath:/net/shibboleth/idp/admin/flows/admin-abstract-flow.xml"/>
-                
+
                 <!-- Status flow (extra location is for backward compatibility). -->
-                <entry key="status" value="classpath:/META-INF/net/shibboleth/idp/flows/admin/status/status-flow.xml" />
+                <entry key="status" value="classpath:/net/shibboleth/idp/admin/flows/status-flow.xml" />
+
+                <!-- Administrative and debugging flows. -->
+                <entry key="admin/hello" value="classpath:/net/shibboleth/idp/admin/flows/hello-flow.xml" />
+                <entry key="admin/resolvertest" value="classpath:/net/shibboleth/idp/admin/flows/resolvertest-flow.xml" />
+                <entry key="admin/reload-service" value="classpath:/net/shibboleth/idp/admin/flows/reload-service-flow.xml" />
+                <entry key="admin/reload-metadata" value="classpath:/net/shibboleth/idp/admin/flows/reload-metadata-flow.xml" />
+                <entry key="admin/lockout" value="classpath:/net/shibboleth/idp/admin/flows/lockout-flow.xml" />
+                <entry key="admin/mdquery" value="classpath:/net/shibboleth/idp/admin/flows/mdquery-flow.xml" />
+                <entry key="admin/metrics" value="classpath:/net/shibboleth/idp/admin/flows/metrics-flow.xml" />
+                <entry key="admin/storage" value="classpath:/net/shibboleth/idp/admin/flows/storage-flow.xml" />
+                <entry key="admin/unlock-keys" value="classpath:/net/shibboleth/idp/admin/flows/unlock-keys-flow.xml" />
                         
                 <!-- Proprietary logout flow. -->
                 <entry key="Logout" value="../system/flows/logout/logout-flow.xml" />
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/factory/FlowDefinitionRegistryFactoryBean.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/factory/FlowDefinitionRegistryFactoryBean.java
index b208ecbd9..03399dea7 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/factory/FlowDefinitionRegistryFactoryBean.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/factory/FlowDefinitionRegistryFactoryBean.java
@@ -18,10 +18,13 @@
 package net.shibboleth.idp.profile.spring.factory;
 
 import java.io.IOException;
+import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.LinkedHashMap;
 import java.util.Map;
+import java.util.Set;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
@@ -206,8 +209,20 @@ public class FlowDefinitionRegistryFactoryBean extends AbstractFactoryBean<FlowD
                 throw new IllegalStateException(
                         "An I/O Exception occurred resolving the flow location pattern '" + pattern.getKey() + "'", e);
             }
+            
+            // Establish baseline of registered flows. 
+            final Set<String> existingFlows = new HashSet<>();
+            Arrays.stream(flowRegistry.getFlowDefinitionIds()).forEachOrdered(existingFlows::add);
+            
             for (final FlowDefinitionResource resource : resources) {
+                if (existingFlows.contains(resource.getId())) {
+                    throw new IllegalStateException("Illegal attempt to register pre-existing flow ID '" +
+                            resource.getId() + "'" + "via resource: " + resource.getPath());
+                }
                 registerFlow(resource, flowRegistry);
+                
+                // Update running tracker.
+                existingFlows.add(resource.getId());
             }
         }
     }

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


More information about the commits mailing list