[java-identity-provider] branch main updated: Add detection of unknown module IDs.

Scott Cantor cantor.2 at osu.edu
Tue Mar 9 20:12:48 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=3ac52cd6754bad744af19816aa61186cba78d575

The following commit(s) were added to refs/heads/main by this push:
       new  3ac52cd67 Add detection of unknown module IDs.
3ac52cd67 is described below

commit 3ac52cd6754bad744af19816aa61186cba78d575
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Tue Mar 9 15:12:44 2021 -0500

    Add detection of unknown module IDs.
---
 .../idp/module/impl/ModuleManagerArguments.java    |  4 +--
 .../idp/module/impl/ModuleManagerCLI.java          | 31 ++++++++++++++++++++--
 2 files changed, 31 insertions(+), 4 deletions(-)

diff --git a/idp-admin-impl/src/main/java/net/shibboleth/idp/module/impl/ModuleManagerArguments.java b/idp-admin-impl/src/main/java/net/shibboleth/idp/module/impl/ModuleManagerArguments.java
index 85724c3b8..05b94a58f 100644
--- a/idp-admin-impl/src/main/java/net/shibboleth/idp/module/impl/ModuleManagerArguments.java
+++ b/idp-admin-impl/src/main/java/net/shibboleth/idp/module/impl/ModuleManagerArguments.java
@@ -49,11 +49,11 @@ public class ModuleManagerArguments extends AbstractIdPHomeAwareCommandLineArgum
     @Parameter(names= {"-l", "--list"})
     @Nullable private boolean list;
 
-    /** Detailed info about an installed module. */
+    /** Detailed info about installed module(s). */
     @Parameter(names= {"-i", "--info"})
     @Nullable @NonnullElements private List<String> infoModuleIds = new ArrayList<>();
 
-    /** Detailed info about installed module(s). */
+    /** Test status of installed module(s). */
     @Parameter(names= {"-t", "--test"})
     @Nullable @NonnullElements private List<String> testModuleIds = new ArrayList<>();
 
diff --git a/idp-admin-impl/src/main/java/net/shibboleth/idp/module/impl/ModuleManagerCLI.java b/idp-admin-impl/src/main/java/net/shibboleth/idp/module/impl/ModuleManagerCLI.java
index 489263708..9ce1e0dbb 100644
--- a/idp-admin-impl/src/main/java/net/shibboleth/idp/module/impl/ModuleManagerCLI.java
+++ b/idp-admin-impl/src/main/java/net/shibboleth/idp/module/impl/ModuleManagerCLI.java
@@ -22,11 +22,13 @@ import java.io.IOException;
 import java.io.PrintStream;
 import java.nio.charset.Charset;
 import java.util.Collection;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.ServiceConfigurationError;
 import java.util.ServiceLoader;
+import java.util.Set;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
@@ -126,6 +128,9 @@ public final class ModuleManagerCLI extends AbstractIdPHomeAwareCommandLine<Modu
         int ret = RC_OK;
         
         final Iterator<IdPModule> modules = ServiceLoader.load(IdPModule.class).iterator();
+
+        final Set<String> unknownTestModules = new HashSet<>(args.getTestModuleIds());
+        final Set<String> unknownInfoModules = new HashSet<>(args.getInfoModuleIds());
         
         while (modules.hasNext()) {
             try {
@@ -135,6 +140,7 @@ public final class ModuleManagerCLI extends AbstractIdPHomeAwareCommandLine<Modu
                     if (!module.isEnabled(moduleContext)) {
                         ret = RC_UNKNOWN;
                     }
+                    unknownTestModules.remove(module.getId());
                 }
                 
                 if (args.getInfoModuleIds().contains(module.getId())) {
@@ -158,14 +164,16 @@ public final class ModuleManagerCLI extends AbstractIdPHomeAwareCommandLine<Modu
                                 r.getDestination());
                     });
                     System.out.println();
+                    unknownInfoModules.remove(module.getId());
                 }
                 
                 if (args.getInfoModuleIds().isEmpty() && args.getTestModuleIds().isEmpty()) {
+                    System.out.print("Module: " + module.getId());
                     if (module.isEnabled(moduleContext)) {
-                        System.out.println("Module: " + module.getId() +
+                        System.out.println(
                                 TerminalCodes.GREEN.code(args) + " [ENABLED]" + TerminalCodes.RESET.code(args));
                     } else {
-                        System.out.println("Module: " + module.getId() +
+                        System.out.println(
                                 TerminalCodes.RED.code(args) + " [DISABLED]" + TerminalCodes.RESET.code(args));
                     }
                 }
@@ -174,6 +182,15 @@ public final class ModuleManagerCLI extends AbstractIdPHomeAwareCommandLine<Modu
             }
         }
         
+        if (!unknownTestModules.isEmpty()) {
+            return RC_UNKNOWN;
+        }
+        
+        if (!unknownInfoModules.isEmpty()) {
+            System.out.println("Unknown modules: " + unknownInfoModules);
+            return RC_UNKNOWN;
+        }
+        
         return ret;
     }
 // Checkstyle: CyclomaticComplexity ON
@@ -194,14 +211,19 @@ public final class ModuleManagerCLI extends AbstractIdPHomeAwareCommandLine<Modu
         int ret = RC_OK;
         final Iterator<IdPModule> modules = ServiceLoader.load(IdPModule.class).iterator();
         
+        final Set<String> unknownModules = new HashSet<>(args.getEnableModuleIds());
+        unknownModules.addAll(args.getDisableModuleIds());
+        
         while (modules.hasNext()) {
             try {
                 final IdPModule module = modules.next();
                 final boolean enable;
                 if (args.getEnableModuleIds().contains(module.getId())) {
                     enable = true;
+                    unknownModules.remove(module.getId());
                 } else if (args.getDisableModuleIds().contains(module.getId())) {
                     enable = false;
+                    unknownModules.remove(module.getId());
                 } else {
                     continue;
                 }
@@ -234,6 +256,11 @@ public final class ModuleManagerCLI extends AbstractIdPHomeAwareCommandLine<Modu
             }
         }
         
+        if (!unknownModules.isEmpty()) {
+            System.out.println("Unknown modules: " + unknownModules);
+            return RC_UNKNOWN;
+        }
+        
         return ret;
     }
     

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


More information about the commits mailing list