[java-identity-provider] branch master updated: OSJ-302: outgoing MDQ request may not use the correct Accept header
Brent Putman
putmanb at georgetown.edu
Tue Mar 3 15:04:12 EST 2020
This is an automated email from the git hooks/post-receive script.
putmanb 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=bb1ef9605f538224810083c87032b70bb0f521d5
The following commit(s) were added to refs/heads/master by this push:
new bb1ef96 OSJ-302: outgoing MDQ request may not use the correct Accept header
bb1ef96 is described below
commit bb1ef9605f538224810083c87032b70bb0f521d5
Author: Brent Putman <putmanb at georgetown.edu>
AuthorDate: Wed Feb 26 17:55:57 2020 -0500
OSJ-302: outgoing MDQ request may not use the correct Accept header
---
.../metadata/impl/DynamicHTTPMetadataProviderParser.java | 10 ++++++++--
.../metadata/DynamicHTTPMetadataProviderParserTest.java | 14 ++++++++++++++
...dynamicMetadataQueryProtocolWithContentTypeOverride.xml | 14 ++++++++++++++
3 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/DynamicHTTPMetadataProviderParser.java b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/DynamicHTTPMetadataProviderParser.java
index 466a193..3b6a198 100644
--- a/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/DynamicHTTPMetadataProviderParser.java
+++ b/idp-profile-spring/src/main/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/impl/DynamicHTTPMetadataProviderParser.java
@@ -67,7 +67,7 @@ public class DynamicHTTPMetadataProviderParser extends AbstractDynamicHTTPMetada
final BeanDefinitionBuilder builder) {
super.doNativeParse(element, parserContext, builder);
- builder.addPropertyValue("requestURLBuilder", getRequestURLBuilder(element));
+ builder.addPropertyValue("requestURLBuilder", getRequestURLBuilder(element, builder));
}
@@ -75,9 +75,11 @@ public class DynamicHTTPMetadataProviderParser extends AbstractDynamicHTTPMetada
* Build and return an instance of the {@link java.util.function.Function} used as the request URL builder.
*
* @param element the parent metadata provider element
+ * @param parentBuilder metadata provider element's bean builder
* @return the function
*/
- protected BeanDefinition getRequestURLBuilder(final Element element) {
+ // Checkstyle: MethodLength OFF
+ protected BeanDefinition getRequestURLBuilder(final Element element, final BeanDefinitionBuilder parentBuilder) {
// Note: we have to do this BeanDefinitionBuilder business b/c for the template one, we need to
// inject the VelocityEngine. Otherwise would be easier to just return the Function directly.
@@ -138,6 +140,9 @@ public class DynamicHTTPMetadataProviderParser extends AbstractDynamicHTTPMetada
if (secondaryURLBuildersRef != null) {
builder.addConstructorArgReference(secondaryURLBuildersRef);
}
+ if (!element.hasAttributeNS(null, "supportedContentTypes")) {
+ parentBuilder.addPropertyValue("supportedContentTypes", "application/samlmetadata+xml");
+ }
return builder.getBeanDefinition();
}
@@ -146,6 +151,7 @@ public class DynamicHTTPMetadataProviderParser extends AbstractDynamicHTTPMetada
BeanDefinitionBuilder.genericBeanDefinition(HTTPEntityIDRequestURLBuilder.class);
return builder.getBeanDefinition();
}
+ // Checkstyle: MethodLength ON
/**
* Parse the 'encodingStyle' attributes for Template element types.
diff --git a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/DynamicHTTPMetadataProviderParserTest.java b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/DynamicHTTPMetadataProviderParserTest.java
index c2f8996..3b926b8 100644
--- a/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/DynamicHTTPMetadataProviderParserTest.java
+++ b/idp-profile-spring/src/test/java/net/shibboleth/idp/profile/spring/relyingparty/metadata/DynamicHTTPMetadataProviderParserTest.java
@@ -41,6 +41,8 @@ import org.springframework.mock.env.MockPropertySource;
import org.testng.Assert;
import org.testng.annotations.Test;
+import com.google.common.collect.Lists;
+
import net.shibboleth.utilities.java.support.repository.RepositorySupport;
import net.shibboleth.utilities.java.support.resolver.CriteriaSet;
@@ -248,6 +250,8 @@ public class DynamicHTTPMetadataProviderParserTest extends AbstractMetadataParse
final FunctionDrivenDynamicHTTPMetadataResolver resolver = getBean(FunctionDrivenDynamicHTTPMetadataResolver.class,
"dynamicMetadataQueryProtocol.xml", "beans.xml");
+ Assert.assertEquals(resolver.getSupportedContentTypes(), Lists.newArrayList("application/samlmetadata+xml"));
+
final String entityID = "https://foo1.example.org/idp/shibboleth";
final CriteriaSet criteriaSet = new CriteriaSet( new EntityIdCriterion(entityID));
@@ -258,6 +262,16 @@ public class DynamicHTTPMetadataProviderParserTest extends AbstractMetadataParse
}
@Test
+ public void testMDQWithContentTypeOverride() throws Exception {
+ final FunctionDrivenDynamicHTTPMetadataResolver resolver = getBean(FunctionDrivenDynamicHTTPMetadataResolver.class,
+ "dynamicMetadataQueryProtocolWithContentTypeOverride.xml", "beans.xml");
+
+ Assert.assertEquals(resolver.getSupportedContentTypes(), Lists.newArrayList("application/xml", "test/foo"));
+
+ // Note we can't actually execute the request as the test MDQ server only supports application/samlmetadata+xml
+ }
+
+ @Test
public void testMDQWithSecondaryURLBuilderForArtifact() throws Exception {
final FunctionDrivenDynamicHTTPMetadataResolver resolver = getBean(FunctionDrivenDynamicHTTPMetadataResolver.class,
"dynamicMetadataQueryProtocolWithSecondaryURLBuilders.xml", "beans.xml");
diff --git a/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/dynamicMetadataQueryProtocolWithContentTypeOverride.xml b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/dynamicMetadataQueryProtocolWithContentTypeOverride.xml
new file mode 100644
index 0000000..e108401
--- /dev/null
+++ b/idp-profile-spring/src/test/resources/net/shibboleth/idp/profile/spring/relyingparty/metadata/dynamicMetadataQueryProtocolWithContentTypeOverride.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<metadata:MetadataProvider xmlns="urn:oasis:names:tc:SAML:2.0:metadata"
+ xmlns:metadata="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd
+ urn:oasis:names:tc:SAML:2.0:metadata http://docs.oasis-open.org/security/saml/v2.0/saml-schema-metadata-2.0.xsd"
+
+ id="dynamicMDQ" xsi:type="metadata:DynamicHTTPMetadataProvider"
+ supportedContentTypes="application/xml test/foo" >
+
+ <metadata:MetadataQueryProtocol>
+ http://shibboleth.net:9000
+ </metadata:MetadataQueryProtocol>
+
+</metadata:MetadataProvider>
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list