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

noreply at shibboleth.net noreply at shibboleth.net
Wed Sep 11 20:02:55 EDT 2013


Author: putmanb
Date: Wed Sep 11 20:02:55 2013
New Revision: 3439

URL: http://svn.shibboleth.net/view/java-opensaml?rev=3439&view=rev
Log:
OSJ-41: Allow metadata filters to completely filter out a metadata set.
Fundamental approach is to modify MetadataFilter interface to return the filtered XMLObject.
Returning null may then be used to indicate filtering out of the top-level element.

Modified:
    trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/filter/MetadataFilter.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/EntityRoleFilter.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/MetadataFilterChain.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/RequiredValidUntilFilter.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/SchemaValidationFilter.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/SignatureValidationFilter.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractBatchMetadataResolver.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractMetadataResolver.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/AbstractReloadingMetadataResolver.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/impl/FileBackedHTTPMetadataResolver.java
    trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/RequiredValidUntilTest.java
    trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/SignatureValidationFilterTest.java

Modified: trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/filter/MetadataFilter.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/filter/MetadataFilter.java?rev=3439&r1=3438&r2=3439&view=diff
==============================================================================
--- trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/filter/MetadataFilter.java (original)
+++ trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/metadata/resolver/filter/MetadataFilter.java Wed Sep 11 20:02:55 2013
@@ -17,14 +17,27 @@
 
 package org.opensaml.saml.metadata.resolver.filter;
 
+import javax.annotation.Nullable;
+
 import org.opensaml.core.xml.XMLObject;
+import org.opensaml.saml.saml2.metadata.EntitiesDescriptor;
+import org.opensaml.saml.saml2.metadata.EntityDescriptor;
 
 /**
- * A metadata filter is used to process a metadata document after it has been unmarshalled into object.
+ * A metadata filter is used to process a metadata document after it has been unmarshalled into an 
+ * instance of {@link XMLObject}, either an {@link EntityDescriptor} or an {@link EntitiesDescriptor}.
  * 
+ * <p>
  * Some example filters might remove everything but identity providers roles, decreasing the data a service provider
  * needs to work with, or a filter could be used to perform integrity checking on the retrieved metadata by verifying a
  * digital signature.
+ * </p>
+ * 
+ * <p>
+ * If a filter wishes to completely remove the top-level document element, or otherwise indicate that it
+ * has successfully produced an empty data set from the input document, <code>null</code> may be returned
+ * by the filter's {@link #filter(XMLObject)} method.
+ * </p>
  */
 public interface MetadataFilter {
 
@@ -33,7 +46,11 @@
      * 
      * @param metadata the metadata to be filtered.
      * 
+     * @return the filtered XMLObject, which may or may not be the same as the XMLObject instance
+     *          passed in to the method. Maybe be null, for example if the top-level element 
+     *          was removed by the filter.
+     * 
      * @throws FilterException thrown if an error occurs during the filtering process
      */
-    public void doFilter(XMLObject metadata) throws FilterException;
+    @Nullable public XMLObject filter(@Nullable XMLObject metadata) throws FilterException;
 }

Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/EntityRoleFilter.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/EntityRoleFilter.java?rev=3439&r1=3438&r2=3439&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/EntityRoleFilter.java (original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/EntityRoleFilter.java Wed Sep 11 20:02:55 2013
@@ -131,9 +131,9 @@
     }
 
     /** {@inheritDoc} */
-    public void doFilter(XMLObject metadata) throws FilterException {
+    public XMLObject filter(XMLObject metadata) throws FilterException {

[... 461 lines stripped ...]


More information about the commits mailing list