[java-identity-provider] branch master updated: IDP-1348 Restrict conditions when security name space warns.
Rod Widdowson
rdw at steadingsoftware.com
Tue Oct 16 08:38:51 EDT 2018
This is an automated email from the git hooks/post-receive script.
rdw pushed a commit to branch master
in repository java-identity-provider.
View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=56896c5afa9755868367b46ea7c2e08e6279562b
The following commit(s) were added to refs/heads/master by this push:
new 56896c5 IDP-1348 Restrict conditions when security name space warns.
56896c5 is described below
commit 56896c5afa9755868367b46ea7c2e08e6279562b
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Tue Oct 16 13:37:27 2018 +0100
IDP-1348 Restrict conditions when security name space warns.
https://issues.shibboleth.net/jira/browse/IDP-1348
---
.../impl/AbstractWarningSecurityParser.java | 31 ++++++++++++++++++++--
.../filter/SignatureValidationParserTest.java | 6 +++++
2 files changed, 35 insertions(+), 2 deletions(-)
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/impl/AbstractWarningSecurityParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/impl/AbstractWarningSecurityParser.java
index a881dcf..5e4d51f 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/impl/AbstractWarningSecurityParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/security/impl/AbstractWarningSecurityParser.java
@@ -17,11 +17,15 @@
package net.shibboleth.idp.profile.spring.relyingparty.security.impl;
+import javax.xml.namespace.QName;
+
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;
import org.springframework.beans.factory.xml.ParserContext;
import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import net.shibboleth.idp.profile.spring.relyingparty.metadata.AbstractMetadataProviderParser;
import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
@@ -32,10 +36,31 @@ import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.Object
@Deprecated
public class AbstractWarningSecurityParser extends AbstractSingleBeanDefinitionParser {
+ /** Is this element ultimately parented by a MetadataFilter Element?
+ * @param element what to inspect
+ * @return if it is.
+ */
+ private boolean isDescendantOfSignatureFilter(final Element element) {
+ final Node parent = element.getParentNode();
+ if ((null == parent)||!(parent instanceof Element)) {
+ return false;
+ }
+ if (AbstractMetadataProviderParser.SECURITY_NAMESPACE.equals(parent.getNamespaceURI())) {
+ return isDescendantOfSignatureFilter((Element) parent);
+ }
+ final QName filterQname = AbstractMetadataProviderParser.METADATA_FILTER_ELEMENT_NAME;
+ return filterQname.getNamespaceURI().equals(parent.getNamespaceURI())&&
+ filterQname.getLocalPart().equals(parent.getLocalName());
+ }
+
/** {@inheritDoc} */
@Override
protected void doParse(final Element element, final BeanDefinitionBuilder builder) {
- DeprecationSupport.warnOnce(ObjectType.ELEMENT, element.getPrefix() +":" + element.getLocalName(), null, null);
+
+ if (!isDescendantOfSignatureFilter(element)){
+ DeprecationSupport.warnOnce(ObjectType.ELEMENT,
+ element.getPrefix() +":" + element.getLocalName(), null, null);
+ }
super.doParse(element, builder);
}
@@ -43,8 +68,10 @@ public class AbstractWarningSecurityParser extends AbstractSingleBeanDefinitionP
@Override
protected void doParse(final Element element, final ParserContext parserContext,
final BeanDefinitionBuilder builder) {
- DeprecationSupport.warnOnce(ObjectType.ELEMENT, element.getPrefix() +":" + element.getLocalName(),
+ if (!isDescendantOfSignatureFilter(element)){
+ DeprecationSupport.warnOnce(ObjectType.ELEMENT, element.getPrefix() +":" + element.getLocalName(),
parserContext.getReaderContext().getResource().getDescription(), null);
+ }
super.doParse(element, parserContext, builder);
}
}
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/SignatureValidationParserTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/SignatureValidationParserTest.java
index d21f8b0..bb79261 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/SignatureValidationParserTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/filter/SignatureValidationParserTest.java
@@ -20,6 +20,7 @@ package net.shibboleth.idp.profile.spring.relyingparty.metadata.filter;
import java.io.IOException;
import net.shibboleth.idp.profile.spring.relyingparty.metadata.AbstractMetadataParserTest;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
import net.shibboleth.utilities.java.support.resolver.ResolverException;
import org.opensaml.saml.metadata.resolver.MetadataResolver;
@@ -28,6 +29,7 @@ import org.opensaml.saml.saml2.metadata.EntityDescriptor;
import org.springframework.beans.factory.BeanDefinitionStoreException;
import org.springframework.context.ApplicationContext;
import org.testng.Assert;
+import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
@@ -36,6 +38,10 @@ import org.testng.annotations.Test;
*/
public class SignatureValidationParserTest extends AbstractMetadataParserTest {
+ @BeforeMethod public void clearDeprecateWarn() {
+ DeprecationSupport.clearWarningState();
+ }
+
@Test public void correctSig() throws IOException, ResolverException {
MetadataResolver resolver =
getBean(MetadataResolver.class, "filter/switch-metadata.xml", "filter/switch.xml", "beans.xml");
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list