[java-opensaml] branch main updated: IDP-2083 - Treat NonnullElements as the default for collections

Scott Cantor cantor.2 at osu.edu
Mon Jun 5 14:27:46 UTC 2023


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

scantor pushed a commit to branch main
in repository java-opensaml.

View the commit online:
http://git.shibboleth.net/view/?p=java-opensaml.git;a=commit;h=a93dfdbcc915e31619ab85f95493310c9a56ab28

The following commit(s) were added to refs/heads/main by this push:
     new a93dfdbcc IDP-2083 - Treat NonnullElements as the default for collections
a93dfdbcc is described below

commit a93dfdbcc915e31619ab85f95493310c9a56ab28
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Mon Jun 5 10:27:43 2023 -0400

    IDP-2083 - Treat NonnullElements as the default for collections
    
    https://shibboleth.atlassian.net/browse/IDP-2083
    
    Review opensaml-profile-api/impl.
---
 .../action/AbstractConditionalProfileAction.java        |  2 +-
 .../java/org/opensaml/profile/action/ProfileAction.java |  2 +-
 .../java/org/opensaml/profile/action/package-info.java  |  5 ++++-
 .../java/org/opensaml/profile/context/EventContext.java |  2 +-
 .../org/opensaml/profile/context/MetricContext.java     | 11 +++++------
 .../profile/context/ProxiedRequesterContext.java        |  5 ++---
 .../opensaml/profile/context/navigate/package-info.java |  4 +++-
 .../java/org/opensaml/profile/context/package-info.java |  5 ++++-
 .../org/opensaml/profile/criterion/package-info.java    |  4 +++-
 .../org/opensaml/profile/logic/IPRangePredicate.java    |  7 +++----
 .../opensaml/profile/logic/PredicateAccessControl.java  |  1 +
 .../java/org/opensaml/profile/logic/package-info.java   |  5 ++++-
 .../action/impl/AbstractMessageChannelSecurity.java     | 17 ++++++++++++++++-
 .../java/org/opensaml/profile/action/impl/LogEvent.java |  5 ++---
 .../impl/PopulateClientTLSValidationParameters.java     |  2 --
 .../action/impl/PopulateDecryptionParameters.java       |  2 --
 .../org/opensaml/profile/action/impl/package-info.java  |  5 ++++-
 17 files changed, 54 insertions(+), 30 deletions(-)

diff --git a/opensaml-profile-api/src/main/java/org/opensaml/profile/action/AbstractConditionalProfileAction.java b/opensaml-profile-api/src/main/java/org/opensaml/profile/action/AbstractConditionalProfileAction.java
index 23b9f266c..dde0f35b3 100644
--- a/opensaml-profile-api/src/main/java/org/opensaml/profile/action/AbstractConditionalProfileAction.java
+++ b/opensaml-profile-api/src/main/java/org/opensaml/profile/action/AbstractConditionalProfileAction.java
@@ -22,10 +22,10 @@ import java.util.function.Predicate;
 import javax.annotation.Nonnull;
 
 import org.opensaml.profile.context.ProfileRequestContext;
-import org.slf4j.LoggerFactory;
 
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.logic.PredicateSupport;
+import net.shibboleth.shared.primitive.LoggerFactory;
 
 /**
  * Base class for conditional profile actions.
diff --git a/opensaml-profile-api/src/main/java/org/opensaml/profile/action/ProfileAction.java b/opensaml-profile-api/src/main/java/org/opensaml/profile/action/ProfileAction.java
index 305155076..64f9045c9 100644
--- a/opensaml-profile-api/src/main/java/org/opensaml/profile/action/ProfileAction.java
+++ b/opensaml-profile-api/src/main/java/org/opensaml/profile/action/ProfileAction.java
@@ -40,5 +40,5 @@ public interface ProfileAction extends InitializableComponent {
      * 
      * @param profileRequestContext the current IdP profile request context
      */
-    public void execute(@Nonnull final ProfileRequestContext profileRequestContext);
+    void execute(@Nonnull final ProfileRequestContext profileRequestContext);
 }
\ No newline at end of file
diff --git a/opensaml-profile-api/src/main/java/org/opensaml/profile/action/package-info.java b/opensaml-profile-api/src/main/java/org/opensaml/profile/action/package-info.java
index db835d25f..4b9f5ea6f 100644
--- a/opensaml-profile-api/src/main/java/org/opensaml/profile/action/package-info.java
+++ b/opensaml-profile-api/src/main/java/org/opensaml/profile/action/package-info.java
@@ -19,4 +19,7 @@
  * Interfaces and classes for profile actions, discrete units of behavior that
  * make up a profile.
  */
-package org.opensaml.profile.action;
\ No newline at end of file
+ at NonnullElements
+package org.opensaml.profile.action;
+
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/opensaml-profile-api/src/main/java/org/opensaml/profile/context/EventContext.java b/opensaml-profile-api/src/main/java/org/opensaml/profile/context/EventContext.java
index 3e5cbc70f..8828a5ae3 100644
--- a/opensaml-profile-api/src/main/java/org/opensaml/profile/context/EventContext.java
+++ b/opensaml-profile-api/src/main/java/org/opensaml/profile/context/EventContext.java
@@ -34,7 +34,7 @@ import org.opensaml.messaging.context.BaseContext;
 public class EventContext extends BaseContext {
 
     /** The event represented. */
-    private Object event;
+    @Nullable private Object event;
 
     /**
      * Get the event represented by the context.
diff --git a/opensaml-profile-api/src/main/java/org/opensaml/profile/context/MetricContext.java b/opensaml-profile-api/src/main/java/org/opensaml/profile/context/MetricContext.java
index d37d9714e..579ee5dde 100644
--- a/opensaml-profile-api/src/main/java/org/opensaml/profile/context/MetricContext.java
+++ b/opensaml-profile-api/src/main/java/org/opensaml/profile/context/MetricContext.java
@@ -33,7 +33,6 @@ import com.google.common.collect.ArrayListMultimap;
 import com.google.common.collect.Multimap;
 
 import net.shibboleth.shared.annotation.constraint.Live;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.collection.Pair;
 import net.shibboleth.shared.logic.Constraint;
@@ -50,13 +49,13 @@ public final class MetricContext extends BaseContext {
      * 
      * <p>The first member is the timer name, the second the object to associate with the timer.</p>
      */
-    @Nonnull @NonnullElements private final Multimap<String,Pair<String,String>> timerMap;
+    @Nonnull private final Multimap<String,Pair<String,String>> timerMap;
     
     /** Map of objects to contexts to perform a stop signal. */
-    @Nonnull @NonnullElements private final Multimap<String,Timer.Context> timerContextMap;
+    @Nonnull private final Multimap<String,Timer.Context> timerContextMap;
     
     /** Map of objects to counter names. */
-    @Nonnull @NonnullElements private final Map<String,String> counterMap;
+    @Nonnull private final Map<String,String> counterMap;
     
     /** Constructor. */
     @SuppressWarnings("null")
@@ -97,7 +96,7 @@ public final class MetricContext extends BaseContext {
      * 
      * @return the collection of associated mappings
      */
-    @Nonnull @NonnullElements @Live public Collection<Pair<String,String>> getTimerMappings(
+    @Nonnull @Live public Collection<Pair<String,String>> getTimerMappings(
             @Nonnull @NotEmpty final String objectId) {
         return timerMap.get(objectId);
     }
@@ -126,7 +125,7 @@ public final class MetricContext extends BaseContext {
      * 
      * @return map of counters
      */
-    @Nonnull @NonnullElements @Live public Map<String,String> getCounterMappings() {
+    @Nonnull @Live public Map<String,String> getCounterMappings() {
         return counterMap;
     }
     
diff --git a/opensaml-profile-api/src/main/java/org/opensaml/profile/context/ProxiedRequesterContext.java b/opensaml-profile-api/src/main/java/org/opensaml/profile/context/ProxiedRequesterContext.java
index fc254f046..8aed2e1d6 100644
--- a/opensaml-profile-api/src/main/java/org/opensaml/profile/context/ProxiedRequesterContext.java
+++ b/opensaml-profile-api/src/main/java/org/opensaml/profile/context/ProxiedRequesterContext.java
@@ -25,7 +25,6 @@ import javax.annotation.Nonnull;
 import org.opensaml.messaging.context.BaseContext;
 
 import net.shibboleth.shared.annotation.constraint.Live;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
 
 
 /**
@@ -38,7 +37,7 @@ import net.shibboleth.shared.annotation.constraint.NonnullElements;
 public final class ProxiedRequesterContext extends BaseContext {
 
     /** The resource. */
-    @Nonnull @NonnullElements private Collection<String> requesters;
+    @Nonnull private Collection<String> requesters;
 
     /** Constructor. */
     public ProxiedRequesterContext() {
@@ -50,7 +49,7 @@ public final class ProxiedRequesterContext extends BaseContext {
      * 
      * @return the proxied requesters
      */
-    @Nonnull @NonnullElements @Live public Collection<String> getRequesters() {
+    @Nonnull @Live public Collection<String> getRequesters() {
         return requesters;
     }
 
diff --git a/opensaml-profile-api/src/main/java/org/opensaml/profile/context/navigate/package-info.java b/opensaml-profile-api/src/main/java/org/opensaml/profile/context/navigate/package-info.java
index 9690adc13..bf503ee79 100644
--- a/opensaml-profile-api/src/main/java/org/opensaml/profile/context/navigate/package-info.java
+++ b/opensaml-profile-api/src/main/java/org/opensaml/profile/context/navigate/package-info.java
@@ -18,5 +18,7 @@
 /**
  * Functions for navigating profile context information.
  */
+ at NonnullElements
+package org.opensaml.profile.context.navigate;
 
-package org.opensaml.profile.context.navigate;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/opensaml-profile-api/src/main/java/org/opensaml/profile/context/package-info.java b/opensaml-profile-api/src/main/java/org/opensaml/profile/context/package-info.java
index c606c6054..30525e8a0 100644
--- a/opensaml-profile-api/src/main/java/org/opensaml/profile/context/package-info.java
+++ b/opensaml-profile-api/src/main/java/org/opensaml/profile/context/package-info.java
@@ -18,4 +18,7 @@
 /**
  * Context classes in support of profile behavior.
  */
-package org.opensaml.profile.context;
\ No newline at end of file
+ at NonnullElements
+package org.opensaml.profile.context;
+
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/opensaml-profile-api/src/main/java/org/opensaml/profile/criterion/package-info.java b/opensaml-profile-api/src/main/java/org/opensaml/profile/criterion/package-info.java
index b2b847c38..df223cd23 100644
--- a/opensaml-profile-api/src/main/java/org/opensaml/profile/criterion/package-info.java
+++ b/opensaml-profile-api/src/main/java/org/opensaml/profile/criterion/package-info.java
@@ -18,5 +18,7 @@
 /**
  * Profile {@link net.shibboleth.shared.resolver.Criterion} implementations.
  */
+ at NonnullElements
+package org.opensaml.profile.criterion;
 
-package org.opensaml.profile.criterion;
\ No newline at end of file
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/opensaml-profile-api/src/main/java/org/opensaml/profile/logic/IPRangePredicate.java b/opensaml-profile-api/src/main/java/org/opensaml/profile/logic/IPRangePredicate.java
index bb8d2d0a6..57fd462d7 100644
--- a/opensaml-profile-api/src/main/java/org/opensaml/profile/logic/IPRangePredicate.java
+++ b/opensaml-profile-api/src/main/java/org/opensaml/profile/logic/IPRangePredicate.java
@@ -29,7 +29,6 @@ import org.opensaml.messaging.context.BaseContext;
 import com.google.common.net.InetAddresses;
 
 import jakarta.servlet.http.HttpServletRequest;
-import net.shibboleth.shared.annotation.constraint.NonnullElements;
 import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.net.IPRange;
@@ -44,7 +43,7 @@ public class IPRangePredicate implements Predicate<BaseContext> {
     @Nullable private Supplier<HttpServletRequest> httpRequestSupplier;
     
     /** IP ranges to match against. */
-    @Nonnull @NonnullElements private Collection<IPRange> addressRanges;
+    @Nonnull private Collection<IPRange> addressRanges;
 
     /** Constructor. */
     IPRangePredicate() {
@@ -58,7 +57,7 @@ public class IPRangePredicate implements Predicate<BaseContext> {
      *
      * @since 3.3.0
      */
-    public void setRanges(@Nonnull @NonnullElements final Collection<IPRange> ranges) {
+    public void setRanges(@Nonnull final Collection<IPRange> ranges) {
         Constraint.isNotNull(ranges, "Address range collection cannot be null");
         
         addressRanges = CollectionSupport.copyToList(ranges);
@@ -90,4 +89,4 @@ public class IPRangePredicate implements Predicate<BaseContext> {
         return false;
     }
     
-}
+}
\ No newline at end of file
diff --git a/opensaml-profile-api/src/main/java/org/opensaml/profile/logic/PredicateAccessControl.java b/opensaml-profile-api/src/main/java/org/opensaml/profile/logic/PredicateAccessControl.java
index 0fa12951f..563f2b15f 100644
--- a/opensaml-profile-api/src/main/java/org/opensaml/profile/logic/PredicateAccessControl.java
+++ b/opensaml-profile-api/src/main/java/org/opensaml/profile/logic/PredicateAccessControl.java
@@ -65,6 +65,7 @@ public class PredicateAccessControl extends AbstractIdentifiableInitializableCom
     @Override
     public boolean checkAccess(@Nonnull final ServletRequest request, @Nullable final String operation,
             @Nullable final String resource) {
+        checkComponentActive();
         
         Constraint.isNotNull(request, "ServletRequest cannot be null");
         
diff --git a/opensaml-profile-api/src/main/java/org/opensaml/profile/logic/package-info.java b/opensaml-profile-api/src/main/java/org/opensaml/profile/logic/package-info.java
index 0bfdc2935..afe0168f1 100644
--- a/opensaml-profile-api/src/main/java/org/opensaml/profile/logic/package-info.java
+++ b/opensaml-profile-api/src/main/java/org/opensaml/profile/logic/package-info.java
@@ -18,4 +18,7 @@
 /**
  * First order logic predicates and functions used for working with profile request data.
  */
-package org.opensaml.profile.logic;
\ No newline at end of file
+ at NonnullElements
+package org.opensaml.profile.logic;
+
+import net.shibboleth.shared.annotation.constraint.NonnullElements;
diff --git a/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/AbstractMessageChannelSecurity.java b/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/AbstractMessageChannelSecurity.java
index e223aeba4..b835d91ea 100644
--- a/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/AbstractMessageChannelSecurity.java
+++ b/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/AbstractMessageChannelSecurity.java
@@ -23,6 +23,7 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
 import org.opensaml.messaging.context.BaseContext;
+import org.opensaml.messaging.context.MessageChannelSecurityContext;
 import org.opensaml.profile.action.AbstractProfileAction;
 import org.opensaml.profile.context.ProfileRequestContext;
 
@@ -77,7 +78,7 @@ public abstract class AbstractMessageChannelSecurity extends AbstractProfileActi
     }
     
     /**
-     * Get the parent context on which the {@link org.opensaml.messaging.context.MessageChannelSecurityContext}
+     * Get the parent context on which the {@link MessageChannelSecurityContext}
      * will be populated.
      * 
      * @return the parent context
@@ -86,4 +87,18 @@ public abstract class AbstractMessageChannelSecurity extends AbstractProfileActi
         return parentContext;
     }
 
+    /**
+     * Get the parent context on which the {@link MessageChannelSecurityContext}
+     * will be populated, raising an {@link IllegalStateException} if absent.
+     * 
+     * @return the parent context
+     */
+    @Nonnull protected BaseContext ensureParentContext() {
+        if (parentContext != null) {
+            return parentContext;
+        }
+        
+        throw new IllegalStateException("Parent context was null");
+    }
+
 }
\ No newline at end of file
diff --git a/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/LogEvent.java b/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/LogEvent.java
index ad8b693b4..2116a10e9 100644
--- a/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/LogEvent.java
+++ b/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/LogEvent.java
@@ -31,7 +31,6 @@ import org.opensaml.profile.context.ProfileRequestContext;
 import org.opensaml.profile.context.navigate.CurrentOrPreviousEventLookup;
 import org.slf4j.Logger;
 
-import net.shibboleth.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.collection.CollectionSupport;
 import net.shibboleth.shared.logic.Constraint;
 import net.shibboleth.shared.primitive.LoggerFactory;
@@ -52,7 +51,7 @@ public class LogEvent extends AbstractProfileAction {
     @Nonnull private Function<ProfileRequestContext,EventContext> eventContextLookupStrategy;
 
     /** Set of events to ignore for logging purposes. */
-    @Nonnull @NotEmpty private Set<String> suppressedEvents;
+    @Nonnull private Set<String> suppressedEvents;
     
     /** Constructor. */
     public LogEvent() {
@@ -76,7 +75,7 @@ public class LogEvent extends AbstractProfileAction {
      * 
      * @param events events to ignore
      */
-    public void setSuppressedEvents(@Nullable @NotEmpty final Collection<String> events) {
+    public void setSuppressedEvents(@Nullable final Collection<String> events) {
         checkSetterPreconditions();
         
         if (events != null) {
diff --git a/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/PopulateClientTLSValidationParameters.java b/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/PopulateClientTLSValidationParameters.java
index 5d8c8e907..79e60d441 100644
--- a/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/PopulateClientTLSValidationParameters.java
+++ b/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/PopulateClientTLSValidationParameters.java
@@ -134,7 +134,6 @@ public class PopulateClientTLSValidationParameters extends AbstractProfileAction
         }
     }
     
-// Checkstyle: ReturnCount OFF
     /** {@inheritDoc} */
     @Override
     protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
@@ -167,6 +166,5 @@ public class PopulateClientTLSValidationParameters extends AbstractProfileAction
             ActionSupport.buildEvent(profileRequestContext, EventIds.INVALID_SEC_CFG);
         }
     }
-// Checkstyle: ReturnCount ON
     
 }
\ No newline at end of file
diff --git a/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/PopulateDecryptionParameters.java b/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/PopulateDecryptionParameters.java
index 8593e5df3..02f9ddd0c 100644
--- a/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/PopulateDecryptionParameters.java
+++ b/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/PopulateDecryptionParameters.java
@@ -130,7 +130,6 @@ public class PopulateDecryptionParameters extends AbstractConditionalProfileActi
         }
     }
 
-// Checkstyle: ReturnCount OFF
     /** {@inheritDoc} */
     @Override
     protected void doExecute(@Nonnull final ProfileRequestContext profileRequestContext) {
@@ -164,6 +163,5 @@ public class PopulateDecryptionParameters extends AbstractConditionalProfileActi
             ActionSupport.buildEvent(profileRequestContext, EventIds.INVALID_SEC_CFG);
         }
     }
-// Checkstyle: ReturnCount ON
     
 }
\ No newline at end of file
diff --git a/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/package-info.java b/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/package-info.java
index 862d2ff26..3d271b81d 100644
--- a/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/package-info.java
+++ b/opensaml-profile-impl/src/main/java/org/opensaml/profile/action/impl/package-info.java
@@ -18,4 +18,7 @@
 /**
  * Implementations of general profile actions.
  */
-package org.opensaml.profile.action.impl;
\ No newline at end of file
+ at NonnullElements
+package org.opensaml.profile.action.impl;
+
+import net.shibboleth.shared.annotation.constraint.NonnullElements;

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


More information about the commits mailing list