[java-opensaml COMMIT] in /trunk/opensaml-saml-impl/src: main/java/org/opensaml/saml/security/impl/SAMLMetadataSignat...
noreply at shibboleth.net
noreply at shibboleth.net
Thu May 15 21:16:03 EDT 2014
Author: putmanb
Date: Thu May 15 21:16:03 2014
New Revision: 3878
URL: http://svn.shibboleth.net/view/java-opensaml?rev=3878&view=rev
Log:
Initial tests for SAMLMetadataSignatureSigningParametersResolver.
Add some debug and trace logging to resolver.
Added:
trunk/opensaml-saml-impl/src/test/java/org/opensaml/saml/security/impl/SAMLMetadataSignatureSigningParametersResolverTest.java (with props)
Modified:
trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/SAMLMetadataSignatureSigningParametersResolver.java
Modified: trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/SAMLMetadataSignatureSigningParametersResolver.java
URL: http://svn.shibboleth.net/view/java-opensaml/trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/SAMLMetadataSignatureSigningParametersResolver.java?rev=3878&r1=3877&r2=3878&view=diff
==============================================================================
--- trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/SAMLMetadataSignatureSigningParametersResolver.java (original)
+++ trunk/opensaml-saml-impl/src/main/java/org/opensaml/saml/security/impl/SAMLMetadataSignatureSigningParametersResolver.java Thu May 15 21:16:03 2014
@@ -82,18 +82,39 @@
for (XMLObject xmlObject : signingMethods) {
SigningMethod signingMethod = (SigningMethod) xmlObject;
+
+ log.trace("Evaluating SAML metadata SigningMethod with algorithm: {}, minKeySize: {}, maxKeySize: {}",
+ signingMethod.getAlgorithm(), signingMethod.getMinKeySize(), signingMethod.getMaxKeySize());
+
if (signingMethod.getAlgorithm() == null
|| !whitelistBlacklistPredicate.apply(signingMethod.getAlgorithm())) {
continue;
}
+
for (Credential credential : credentials) {
+
+ if (log.isTraceEnabled()) {
+ Key key = CredentialSupport.extractSigningKey(credential);
+ log.trace("Evaluating credential of type: {}, with length: {}",
+ key != null ? key.getAlgorithm() : "n/a",
+ KeySupport.getKeyLength(key));
+ }
+
if (credentialSupportsSigningMethod(credential, signingMethod)) {
+ log.trace("Credential passed eval against SigningMethod");
+ log.debug("Resolved signature algorithm URI from SAML metadata SigningMethod: {}",
+ signingMethod.getAlgorithm());
params.setSigningCredential(credential);
params.setSignatureAlgorithmURI(signingMethod.getAlgorithm());
return;
+ } else {
+ log.trace("Credential failed eval against SigningMethod");
}
}
}
+
+ log.debug("Could not resolve signing credential and algorithm based on SAML metadata, "
+ + "falling back to locally configured algorithms");
super.resolveAndPopulateCredentialAndSignatureAlgorithm(params, criteria, whitelistBlacklistPredicate);
}
@@ -125,10 +146,12 @@
}
if (signingMethod.getMinKeySize() != null && keyLength < signingMethod.getMinKeySize()) {
+ log.trace("Candidate signing credential does not meet minKeySize requirement");
return false;
}
if (signingMethod.getMaxKeySize() != null && keyLength > signingMethod.getMaxKeySize()) {
+ log.trace("Candidate signing credential does not meet maxKeySize requirement");
return false;
}
}
@@ -152,10 +175,18 @@
for (XMLObject xmlObject : digestMethods) {
DigestMethod digestMethod = (DigestMethod) xmlObject;
+
+ log.trace("Evaluating SAML metadata DigestMethod with algorithm: {}", digestMethod.getAlgorithm());
+
if (digestMethod.getAlgorithm() != null && whitelistBlacklistPredicate.apply(digestMethod.getAlgorithm())) {
+ log.debug("Resolved reference digest method algorithm URI from SAML metadata DigestMethod: {}",
+ digestMethod.getAlgorithm());
return digestMethod.getAlgorithm();
}
}
+
+ log.debug("Could not resolve signature reference digest method algorithm based on SAML metadata, "
+ + "falling back to locally configured algorithms");
return super.resolveReferenceDigestMethod(criteria, whitelistBlacklistPredicate);
}
@@ -177,6 +208,7 @@
if (extensions != null) {
result = extensions.getUnknownXMLObjects(extensionName);
if (!result.isEmpty()) {
+ log.trace("Resolved extensions from RoleDescriptor: {}", extensionName);
return result;
}
[... 10 lines stripped ...]
More information about the commits
mailing list