[java-opensaml COMMIT] in /trunk: opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AffiliationDescrip...

noreply at shibboleth.net noreply at shibboleth.net
Fri Oct 31 21:25:37 EDT 2014


Author: putmanb
Date: Fri Oct 31 21:25:36 2014
New Revision: 4123

URL: http://svn.shibboleth.net/view/java-opensaml?rev=4123&view=rev
Log:
Strawman approach for supporting PKIX-based signature validation on metadata.  Tests pending.

Added:
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/BasicDynamicTrustedNamesStrategy.java   (with props)
    trunk/opensaml-security-api/src/main/java/org/opensaml/security/x509/TrustedNamesCriterion.java   (with props)
Modified:
    trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AffiliationDescriptor.java
    trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/metadata/resolver/filter/impl/SignatureValidationFilter.java
    trunk/opensaml-security-impl/src/main/java/org/opensaml/security/x509/impl/StaticPKIXValidationInformationResolver.java

Modified: trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AffiliationDescriptor.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AffiliationDescriptor.java?rev=4123&r1=4122&r2=4123&view=diff
==============================================================================
--- trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AffiliationDescriptor.java (original)
+++ trunk/opensaml-saml-api/src/main/java/org/opensaml/saml/saml2/metadata/AffiliationDescriptor.java Fri Oct 31 21:25:36 2014
@@ -54,7 +54,7 @@
     public static final String ID_ATTRIB_NAME = "ID";
 
     /**
-     * Gets the ID of the owner of this affiliation. The owner may, or may not, be a memeber of the affiliation.
+     * Gets the ID of the owner of this affiliation. The owner may, or may not, be a member of the affiliation.
      * 
      * @return the ID of the owner of this affiliation
      */

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=4123&r1=4122&r2=4123&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 Oct 31 21:25:36 2014
@@ -19,6 +19,7 @@
 
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.Set;
 
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
@@ -36,6 +37,7 @@
 import org.opensaml.security.SecurityException;
 import org.opensaml.security.credential.UsageType;
 import org.opensaml.security.criteria.UsageCriterion;
+import org.opensaml.security.x509.TrustedNamesCriterion;
 import org.opensaml.xmlsec.signature.SignableXMLObject;
 import org.opensaml.xmlsec.signature.Signature;
 import org.opensaml.xmlsec.signature.support.SignatureException;
@@ -44,6 +46,8 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.base.Function;
+
 /**
  * A metadata filter that validates XML signatures.
  */
@@ -63,6 +67,9 @@
     
     /** Prevalidator for XML Signature instances. */
     private SignaturePrevalidator signaturePrevalidator;
+    
+    /** Strategy function for extracting dynamic trusted names from signed metadata elements. */
+    private Function<XMLObject, Set<String>> dynamicTrustedNamesStrategy;
 
     /**
      * Constructor.
@@ -80,6 +87,24 @@
 
         signatureTrustEngine = engine;
         signaturePrevalidator = new SAMLSignatureProfileValidator();
+    }
+
+    /**
+     * Get the strategy function for extracting dynamic trusted names from signed metadata elements.
+     * 
+     * @return the function, or null
+     */
+    @Nullable public Function<XMLObject, Set<String>> getDynamicTrustedNamesStrategy() {
+        return dynamicTrustedNamesStrategy;
+    }
+
+    /**
+     * Get the strategy function for extracting dynamic trusted names from signed metadata elements.
+     * 
+     * @param strategy the function, may be null
+     */
+    public void setDynamicTrustedNamesStrategy(@Nullable final Function<XMLObject, Set<String>> strategy) {
+        dynamicTrustedNamesStrategy = strategy;
     }
 
     /**
@@ -398,17 +423,13 @@
             newCriteriaSet.add( new UsageCriterion(UsageType.SIGNING) );
         }
         
-        // TODO how to handle adding dynamic entity ID and/or other criteria for trust engine consumption?
-        //
-        // Have 4 signed metadata types:
-        // 1) EntitiesDescriptor
-        // 2) EntityDescriptor
-        // 3) RoleDescriptor
-        // 4) AffiliationDescriptor
-        //
-        // Logic will likely vary for how to specify criteria to trust engine for different types + specific use cases,
-        // e.g. for federation metadata publishers of EntitiesDescriptors vs. "self-signed" EntityDescriptors.

[... 88 lines stripped ...]


More information about the commits mailing list