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

noreply at shibboleth.net noreply at shibboleth.net
Fri Nov 6 18:36:39 EST 2015


Author: putmanb
Date: Fri Nov  6 18:36:38 2015
New Revision: 4399

URL: http://svn.shibboleth.net/view/java-opensaml?rev=4399&view=rev
Log:
OSJ-121: On SignatureValidationFilter consider change to behavior on signature failure of root element

Modified:
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/SignatureValidationFilter.java
    trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/SignatureValidationFilterExplicitKeyTest.java
    trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/SignatureValidationFilterPKIXTest.java

Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/SignatureValidationFilter.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/SignatureValidationFilter.java?rev=4399&r1=4398&r2=4399&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/SignatureValidationFilter.java	(original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/SignatureValidationFilter.java	Fri Nov  6 18:36:38 2015
@@ -204,16 +204,24 @@
 
         if (!signableMetadata.isSigned()){
             if (getRequireSignature()) {
-                throw new FilterException("Metadata root element was unsigned and signatures are required.");
-            }
-        }
-        
-        if (signableMetadata instanceof EntityDescriptor) {
-            processEntityDescriptor((EntityDescriptor) signableMetadata);
-        } else if (signableMetadata instanceof EntitiesDescriptor) {
-            processEntityGroup((EntitiesDescriptor) signableMetadata);
-        } else {
-            log.error("Internal error, metadata object was of an unsupported type: {}", metadata.getClass().getName());
+                log.warn("Metadata root element was unsigned and signatures are required, " 
+                        + "metadata will be filtered out.");
+                return null;
+            }
+        }
+        
+        try {
+            if (signableMetadata instanceof EntityDescriptor) {
+                processEntityDescriptor((EntityDescriptor) signableMetadata);
+            } else if (signableMetadata instanceof EntitiesDescriptor) {
+                processEntityGroup((EntitiesDescriptor) signableMetadata);
+            } else {
+                log.error("Internal error, metadata object was of an unsupported type: {}", 
+                        metadata.getClass().getName());
+            }
+        } catch (Throwable t) {
+            log.warn("Saw fatal error validating metadata signature(s), metadata will be filtered out", t);
+            return null;
         }
         
         return metadata;

Modified: trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/SignatureValidationFilterExplicitKeyTest.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/SignatureValidationFilterExplicitKeyTest.java?rev=4399&r1=4398&r2=4399&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/SignatureValidationFilterExplicitKeyTest.java	(original)
+++ trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/metadata/resolver/filter/impl/SignatureValidationFilterExplicitKeyTest.java	Fri Nov  6 18:36:38 2015
@@ -124,7 +124,7 @@
         }
     }
     
-    @Test(expectedExceptions=FilterException.class)
+    @Test
     public void testSWITCHStandaloneBlacklistedSignatureAlgorithm() throws UnmarshallingException, FilterException {
         XMLObject xmlObject = unmarshallerFactory.getUnmarshaller(switchMDDocumentValid
                 .getDocumentElement()).unmarshall(switchMDDocumentValid.getDocumentElement());
@@ -136,21 +136,18 @@
         CriteriaSet defaultCriteriaSet = new CriteriaSet(new SignatureValidationParametersCriterion(sigParams));
         filter.setDefaultCriteria(defaultCriteriaSet);
         
-        filter.filter(xmlObject);
-    }
-    
-    @Test
-    public void testInvalidSWITCHStandalone() throws UnmarshallingException {
+        XMLObject filtered = filter.filter(xmlObject);
+        Assert.assertNull(filtered);
+    }
+    
+    @Test
+    public void testInvalidSWITCHStandalone() throws UnmarshallingException, FilterException {
         XMLObject xmlObject = unmarshallerFactory.getUnmarshaller(switchMDDocumentInvalid
                 .getDocumentElement()).unmarshall(switchMDDocumentInvalid.getDocumentElement());
         
         SignatureValidationFilter filter = new SignatureValidationFilter(switchSigTrustEngine);
-        try {
-            filter.filter(xmlObject);
-            Assert.fail("Filter passed validation, should have failed");

[... 83 lines stripped ...]


More information about the commits mailing list