[java-opensaml COMMIT] in /trunk/opensaml-saml-impl/src: main/java/org/opensaml/saml/metadata/resolver/filter/impl/Re...

noreply at shibboleth.net noreply at shibboleth.net
Wed Apr 2 04:58:24 EDT 2014


Author: rdw
Date: Wed Apr  2 04:58:23 2014
New Revision: 3755

URL: http://svn.shibboleth.net/view/java-opensaml?rev=3755&view=rev
Log:
IDP-389 Add a millisecond setter for the max validity, plus annotation.  Allows spring to seamlessly convert ISO8601 into a long, and thus allows property replacement during config

Modified:
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/RequiredValidUntilFilter.java
    trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/RequiredValidUntilTest.java

Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/RequiredValidUntilFilter.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/RequiredValidUntilFilter.java?rev=3755&r1=3754&r2=3755&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/RequiredValidUntilFilter.java (original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/RequiredValidUntilFilter.java Wed Apr  2 04:58:23 2014
@@ -16,6 +16,8 @@
  */
 
 package org.opensaml.saml.metadata.resolver.filter.impl;
+
+import net.shibboleth.utilities.java.support.annotation.Duration;
 
 import org.joda.time.DateTime;
 import org.joda.time.chrono.ISOChronology;
@@ -41,7 +43,7 @@
     private final Logger log = LoggerFactory.getLogger(RequiredValidUntilFilter.class);
 
     /** The maximum interval, in milliseconds, between now and the <code>validUntil</code> date. */
-    private long maxValidityInterval;
+    @Duration private long maxValidityInterval;
 
     /** Constructor. */
     public RequiredValidUntilFilter() {
@@ -66,8 +68,19 @@
     public long getMaxValidityInterval() {
         return maxValidityInterval;
     }
+    
+    /**
+     * Sets the maximum internal, in milliseconds, between now and the <code>validUntil</code> date.
+     * A value of less than 1 indicates that there is no restriction.
+     * 
+     * @param validity time in milliseconds between now and the <code>validUntil</code> date
+     */
+    public void setMaxValidityInterval(@Duration long validity) {
+        maxValidityInterval = validity;
+    }
 
     /** {@inheritDoc} */
+    @Override
     public XMLObject filter(XMLObject metadata) throws FilterException {
         if (metadata == null) {
             return null;

Modified: trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/RequiredValidUntilTest.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/RequiredValidUntilTest.java?rev=3755&r1=3754&r2=3755&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/RequiredValidUntilTest.java (original)
+++ trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/RequiredValidUntilTest.java Wed Apr  2 04:58:23 2014
@@ -21,14 +21,12 @@
 import java.net.URL;
 
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
-import net.shibboleth.utilities.java.support.resolver.ResolverException;
 
 import org.joda.time.DateTime;
 import org.joda.time.chrono.ISOChronology;
 import org.opensaml.core.xml.XMLObjectBaseTestCase;
 import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
 import org.opensaml.saml.common.SAMLObjectBuilder;
-import org.opensaml.saml.metadata.resolver.filter.impl.RequiredValidUntilFilter;
 import org.opensaml.saml.metadata.resolver.impl.FilesystemMetadataResolver;
 import org.opensaml.saml.metadata.resolver.impl.FilesystemMetadataResolverTest;
 import org.opensaml.saml.saml2.metadata.EntitiesDescriptor;
@@ -81,6 +79,25 @@
     }
     
     @Test
+    public void testRequiredValidUntilWithMaxValiditySetter() throws Exception {
+        RequiredValidUntilFilter filter = new RequiredValidUntilFilter();
+        filter.setMaxValidityInterval(1);
+
+        FilesystemMetadataResolver metadataProvider = new FilesystemMetadataResolver(metadataFile);
+        metadataProvider.setParserPool(parserPool);
+        metadataProvider.setMetadataFilter(filter);
+
+        try {
+            metadataProvider.initialize();
+            Assert.fail("Filter accepted metadata with longer than allowed validity period.");
+        } catch (ComponentInitializationException e) {
+            // we expect this
+            return;
+        }
+    }
+
+    
+    @Test
     public void testRequiredValidUntilAlreadyPast() throws Exception {
         SAMLObjectBuilder<EntitiesDescriptor> entitiesDescriptorBuilder = 
                 (SAMLObjectBuilder<EntitiesDescriptor>) XMLObjectProviderRegistrySupport.getBuilderFactory().getBuilder(EntitiesDescriptor.TYPE_NAME);



More information about the commits mailing list