[java-metadata-aggregator COMMIT] in /trunk: aggregator-parent/doc/RELEASE-NOTES.txt aggregator-pipeline/src/main/jav...
noreply at shibboleth.net
noreply at shibboleth.net
Sun Oct 13 13:57:46 EDT 2013
Author: iay
Date: Sun Oct 13 13:57:46 2013
New Revision: 272
URL: http://svn.shibboleth.net/view/java-metadata-aggregator?rev=272&view=rev
Log:
MDA-91: allow checking that SAML metadata is signed using ID, not empty reference
Added:
trunk/aggregator-pipeline/src/test/resources/net/shibboleth/metadata/dom/XMLSignatureValidationStage-emptyref.xml (with props)
Modified:
trunk/aggregator-parent/doc/RELEASE-NOTES.txt
trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/XMLSignatureValidationStage.java
trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/XMLSignatureValidator.java
trunk/aggregator-pipeline/src/test/java/net/shibboleth/metadata/dom/XMLSignatureValidationStageTest.java
Modified: trunk/aggregator-parent/doc/RELEASE-NOTES.txt
URL: http://svn.shibboleth.net/view/java-metadata-aggregator/trunk/aggregator-parent/doc/RELEASE-NOTES.txt?rev=272&r1=271&r2=272&view=diff
==============================================================================
--- trunk/aggregator-parent/doc/RELEASE-NOTES.txt (original)
+++ trunk/aggregator-parent/doc/RELEASE-NOTES.txt Sun Oct 13 13:57:46 2013
@@ -3,7 +3,8 @@
Highlights
* API changes for new Shibboleth coding conventions
- * Algorithm blacklisting during signature validation
+ * Signature validation can reject empty references, blacklist
+ algorithm URIs and protects against "wrapping" attacks.
* Moved to Java 7, Apache Santuario V1.5
* Improved CLI experience
* bug fixes
@@ -46,6 +47,7 @@
** New Feature
* [MDA-88] - assist debugging of signature creation by making pre-digest data available
+ * [MDA-91] - allow checking that SAML metadata is signed using ID, not empty reference
* [MDA-120] - signature validation stage should allow algorithm blacklisting
** Task
Modified: trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/XMLSignatureValidationStage.java
URL: http://svn.shibboleth.net/view/java-metadata-aggregator/trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/XMLSignatureValidationStage.java?rev=272&r1=271&r2=272&view=diff
==============================================================================
--- trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/XMLSignatureValidationStage.java (original)
+++ trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/XMLSignatureValidationStage.java Sun Oct 13 13:57:46 2013
@@ -85,6 +85,9 @@
/** Set of blacklisted signature method URIs. Default value: empty set. */
@Nonnull private Set<String> blacklistedSignatureMethods = Collections.emptySet();
+ /** Option to determine whether empty references are to be permitted. Default value: <code>true</code>. */
+ private boolean permittingEmptyReferences = true;
+
/** Validator used for all signatures validated by this stage instance. */
private XMLSignatureValidator validator;
@@ -217,6 +220,27 @@
return Collections.unmodifiableSet(blacklistedSignatureMethods);
}
+ /**
+ * Gets whether empty references are permitted.
+ *
+ * @return whether empty references are permitted
+ */
+ public boolean isPermittingEmptyReferences() {
+ return permittingEmptyReferences;
+ }
+
+ /**
+ * Sets whether empty references are permitted.
+ *
+ * @param permit whether empty references are permitted
+ */
+ public synchronized void setPermittingEmptyReferences(final boolean permit) {
+ ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+ ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+
+ permittingEmptyReferences = permit;
+ }
+
/** {@inheritDoc} */
protected boolean doExecute(@Nonnull final DOMElementItem item) throws StageProcessingException {
@@ -282,7 +306,8 @@
+ ", no verification key was specified");
}
- validator = new XMLSignatureValidator(verificationKey, blacklistedDigests, blacklistedSignatureMethods);
+ validator = new XMLSignatureValidator(verificationKey,
+ blacklistedDigests, blacklistedSignatureMethods, permittingEmptyReferences);
if (!Init.isInitialized()) {
Init.init();
Modified: trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/XMLSignatureValidator.java
URL: http://svn.shibboleth.net/view/java-metadata-aggregator/trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/XMLSignatureValidator.java?rev=272&r1=271&r2=272&view=diff
==============================================================================
--- trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/XMLSignatureValidator.java (original)
+++ trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/XMLSignatureValidator.java Sun Oct 13 13:57:46 2013
@@ -73,15 +73,20 @@
/** Set of blacklisted signature methods. */
private final Set<String> blacklistedSignatureMethods;
+ /** Whether an empty reference is permitted. */
[... 119 lines stripped ...]
More information about the commits
mailing list