[java-opensaml] 04/04: OSJ-200: Improve logging around expired metadata refresh attempts

Brent Putman putmanb at georgetown.edu
Wed May 10 19:39:48 EDT 2017


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

putmanb pushed a commit to branch master
in repository java-opensaml.

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

commit 2ac128c3775f0c7dc6d4eaa9bac87849586a5051
Author: Brent Putman <putmanb at georgetown.edu>
AuthorDate: Wed May 10 19:29:45 2017 -0400

    OSJ-200: Improve logging around expired metadata refresh attempts
    
    Add to AbstractBatchMetadataResolver new methods getRootValidUntil()
    and isRootValid().
---
 .../metadata/resolver/BatchMetadataResolver.java   |  2 ++
 .../impl/AbstractBatchMetadataResolver.java        | 30 ++++++++++++++++++++++
 2 files changed, 32 insertions(+)

diff --git a/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/BatchMetadataResolver.java b/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/BatchMetadataResolver.java
index c8a647f..23e1235 100644
--- a/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/BatchMetadataResolver.java
+++ b/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/BatchMetadataResolver.java
@@ -25,4 +25,6 @@ package org.opensaml.saml.metadata.resolver;
  */
 public interface BatchMetadataResolver extends MetadataResolver {
 
+    //TODO For 4.0: promote getRootValidUntil() and isRootValid() from AbstractBatchMetadataResolver
+
 }
diff --git a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractBatchMetadataResolver.java b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractBatchMetadataResolver.java
index 7967bf7..3211a6c 100644
--- a/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractBatchMetadataResolver.java
+++ b/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractBatchMetadataResolver.java
@@ -33,6 +33,7 @@ import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
 import net.shibboleth.utilities.java.support.resolver.ResolverException;
 
+import org.joda.time.DateTime;
 import org.opensaml.core.criterion.EntityIdCriterion;
 import org.opensaml.core.xml.XMLObject;
 import org.opensaml.saml.metadata.IterableMetadataSource;
@@ -40,6 +41,7 @@ import org.opensaml.saml.metadata.resolver.BatchMetadataResolver;
 import org.opensaml.saml.metadata.resolver.filter.FilterException;
 import org.opensaml.saml.metadata.resolver.index.MetadataIndex;
 import org.opensaml.saml.metadata.resolver.index.impl.MetadataIndexManager;
+import org.opensaml.saml.saml2.common.TimeBoundSAMLObject;
 import org.opensaml.saml.saml2.metadata.EntitiesDescriptor;
 import org.opensaml.saml.saml2.metadata.EntityDescriptor;
 import org.slf4j.Logger;
@@ -151,6 +153,34 @@ public abstract class AbstractBatchMetadataResolver extends AbstractMetadataReso
         resolveViaPredicatesOnly = flag;
     }
 
+    /**
+     * Get the validUntil of of the metadata batch root element, if present.
+     *
+     * @return the validUntil date/time of the root element, or null if not available
+     */
+    @Nullable public DateTime getRootValidUntil() {
+        XMLObject cached = getBackingStore().getCachedOriginalMetadata();
+        if (cached != null && cached instanceof TimeBoundSAMLObject) {
+            return ((TimeBoundSAMLObject)cached).getValidUntil();
+        } else {
+            return null;
+        }
+    }
+
+    /**
+     * Get the validity state of the metadata batch root element, as determined by {@link #isValid(XMLObject)}.
+     *
+     * @return true if root element is valid, false if not valid, null if indeterminate
+     */
+    @Nullable public Boolean isRootValid() {
+        XMLObject cached = getBackingStore().getCachedOriginalMetadata();
+        if (cached == null) {
+            return null;
+        } else {
+            return isValid(cached);
+        }
+    }
+
     /** {@inheritDoc} */
     @Override @Nonnull public Iterable<EntityDescriptor> resolve(final CriteriaSet criteria) throws ResolverException {
         ComponentSupport.ifNotInitializedThrowUninitializedComponentException(this);

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


More information about the commits mailing list