[java-opensaml] 03/03: Refactor for cyclomatic complexity.

Brent Putman putmanb at georgetown.edu
Thu Dec 2 03:56:12 UTC 2021


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

putmanb 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=a3913fbb9592da850f2d5948df3c38f77cc1580a

commit a3913fbb9592da850f2d5948df3c38f77cc1580a
Author: Brent Putman <putmanb at georgetown.edu>
AuthorDate: Wed Dec 1 22:50:50 2021 -0500

    Refactor for cyclomatic complexity.
---
 .../binding/impl/SAMLMetadataLookupHandler.java    | 60 ++++++++++++++--------
 1 file changed, 38 insertions(+), 22 deletions(-)

diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/SAMLMetadataLookupHandler.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/SAMLMetadataLookupHandler.java
index 1ae13e076..696bac936 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/SAMLMetadataLookupHandler.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/common/binding/impl/SAMLMetadataLookupHandler.java
@@ -152,34 +152,15 @@ public class SAMLMetadataLookupHandler extends AbstractMessageHandler {
             return;
         }
 
-        final EntityIdCriterion entityIdCriterion = new EntityIdCriterion(entityCtx.getEntityId());
-        final EntityRoleCriterion roleCriterion = new EntityRoleCriterion(entityCtx.getRole());
-        
-        ProtocolCriterion protocolCriterion = null;
-        final SAMLProtocolContext protocolCtx = messageContext.getSubcontext(SAMLProtocolContext.class);
-        if (protocolCtx != null && protocolCtx.getProtocol() != null) {
-            protocolCriterion = new ProtocolCriterion(protocolCtx.getProtocol());
-        }
-        
-        final SAMLMetadataLookupParametersContext lookupParamsContext =
-                messageContext.getSubcontext(SAMLMetadataLookupParametersContext.class); 
-        
-        DetectDuplicateEntityIDsCriterion detectDuplicatesCriterion = null;
-        if (lookupParamsContext != null && lookupParamsContext.getDetectDuplicateEntityIDs() != null) {
-            detectDuplicatesCriterion =
-                    new DetectDuplicateEntityIDsCriterion(lookupParamsContext.getDetectDuplicateEntityIDs()); 
-        }
-        
-        final CriteriaSet criteria = new CriteriaSet(entityIdCriterion, protocolCriterion, roleCriterion,
-                detectDuplicatesCriterion);
+        final CriteriaSet criteria = buildLookupCriteria(messageContext);
         
         try {
             final RoleDescriptor roleMetadata = metadataResolver.resolveSingle(criteria);
             if (roleMetadata == null) {
-                if (protocolCriterion != null) {
+                if (criteria.contains(ProtocolCriterion.class)) {
                     log.info("{} No metadata returned for {} in role {} with protocol {}",
                             getLogPrefix(), entityCtx.getEntityId(), entityCtx.getRole(),
-                            protocolCriterion.getProtocol());
+                            criteria.get(ProtocolCriterion.class).getProtocol());
                 } else {
                     log.info("{} No metadata returned for {} in role {}",
                             getLogPrefix(), entityCtx.getEntityId(), entityCtx.getRole());
@@ -200,6 +181,41 @@ public class SAMLMetadataLookupHandler extends AbstractMessageHandler {
         }
     }
 
+    /**
+     * Build the lookup criteria from the message context data.
+     * 
+     * @param messageContext the current message context
+     * 
+     * @return the new lookup criteria
+     */
+    protected CriteriaSet buildLookupCriteria(final MessageContext messageContext) {
+        
+        // This must be present in the message context, but is already checked in the calling method
+        final AbstractSAMLEntityContext entityCtx = messageContext.getSubcontext(entityContextClass);
+        
+        final EntityIdCriterion entityIdCriterion = new EntityIdCriterion(entityCtx.getEntityId());
+        final EntityRoleCriterion roleCriterion = new EntityRoleCriterion(entityCtx.getRole());
+        
+        ProtocolCriterion protocolCriterion = null;
+        final SAMLProtocolContext protocolCtx = messageContext.getSubcontext(SAMLProtocolContext.class);
+        if (protocolCtx != null && protocolCtx.getProtocol() != null) {
+            protocolCriterion = new ProtocolCriterion(protocolCtx.getProtocol());
+        }
+        
+        final SAMLMetadataLookupParametersContext lookupParamsContext =
+                messageContext.getSubcontext(SAMLMetadataLookupParametersContext.class); 
+        
+        DetectDuplicateEntityIDsCriterion detectDuplicatesCriterion = null;
+        if (lookupParamsContext != null && lookupParamsContext.getDetectDuplicateEntityIDs() != null) {
+            detectDuplicatesCriterion =
+                    new DetectDuplicateEntityIDsCriterion(lookupParamsContext.getDetectDuplicateEntityIDs()); 
+        }
+        
+        final CriteriaSet criteria = new CriteriaSet(entityIdCriterion, protocolCriterion, roleCriterion,
+                detectDuplicatesCriterion);
+        return criteria;
+    }
+
     /**
      * Attempt to resolve an existing {@link SAMLMetadataContext} from which to copy.
      *

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


More information about the commits mailing list