[java-shib-metadata] branch main updated: JSMD-11: Add support for HttpClient responseTimeout
Brent Putman
putmanb at georgetown.edu
Fri Oct 18 20:29:45 UTC 2024
This is an automated email from the git hooks/post-receive script.
putmanb pushed a commit to branch main
in repository java-shib-metadata.
View the commit online:
http://git.shibboleth.net/view/?p=java-shib-metadata.git;a=commit;h=e861b0ea81d18f66ca5de48523d9bb4242dedb43
The following commit(s) were added to refs/heads/main by this push:
new e861b0ea JSMD-11: Add support for HttpClient responseTimeout
e861b0ea is described below
commit e861b0ea81d18f66ca5de48523d9bb4242dedb43
Author: Brent Putman <putmanb at georgetown.edu>
AuthorDate: Fri Oct 18 16:21:59 2024 -0400
JSMD-11: Add support for HttpClient responseTimeout
---
.../AbstractDynamicHTTPMetadataProviderParser.java | 10 +++++++++-
.../spring/metadata/HTTPMetadataProviderParser.java | 3 ++-
.../metadata/HTTPMetadataProvidersParserSupport.java | 4 ++++
.../main/resources/schema/shibboleth-metadata.xsd | 20 ++++++++++++++++++--
4 files changed, 33 insertions(+), 4 deletions(-)
diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/AbstractDynamicHTTPMetadataProviderParser.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/AbstractDynamicHTTPMetadataProviderParser.java
index a19b08f4..3b8f4950 100644
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/AbstractDynamicHTTPMetadataProviderParser.java
+++ b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/AbstractDynamicHTTPMetadataProviderParser.java
@@ -55,6 +55,10 @@ public abstract class AbstractDynamicHTTPMetadataProviderParser extends Abstract
/** Default socket timeout. */
@Nonnull @NotEmpty private static final String DEFAULT_SOCKET_TIMEOUT = "PT5S";
+ // TODO Leaving at 0 seconds for now to avoid a change in behavior. But change in v6 to something more sensible.
+ /** Default response timeout. */
+ @Nonnull @NotEmpty private static final String DEFAULT_RESPONSE_TIMEOUT = "PT0S";
+
/** Logger. */
private final Logger log = LoggerFactory.getLogger(AbstractDynamicHTTPMetadataProviderParser.class);
@@ -79,12 +83,13 @@ public abstract class AbstractDynamicHTTPMetadataProviderParser extends Abstract
if (element.hasAttributeNS(null, "connectionTimeout")
|| element.hasAttributeNS(null, "connectionRequestTimeout")
|| element.hasAttributeNS(null, "socketTimeout")
+ || element.hasAttributeNS(null, "responseTimeout")
|| element.hasAttributeNS(null, "maxConnectionsTotal")
|| element.hasAttributeNS(null, "maxConnectionsPerRoute")
|| element.hasAttributeNS(null, "disregardTLSCertificate")
|| element.hasAttributeNS(null, "proxyHost") || element.hasAttributeNS(null, "proxyPort")
|| element.hasAttributeNS(null, "proxyUser") || element.hasAttributeNS(null, "proxyPassword")) {
- log.warn("httpClientRef overrides settings for connectionTimeout, "
+ log.warn("httpClientRef overrides settings for connectionTimeout, responseTimeout, "
+ "connectionRequestTimeout, socketTimeout, maxConnectionsTotal, maxConnectionsPerRoute, "
+ "disregardTLSCertificate, proxyHost, proxyPort, "
+ "proxyUser and proxyPassword");
@@ -131,6 +136,9 @@ public abstract class AbstractDynamicHTTPMetadataProviderParser extends Abstract
if (!element.hasAttributeNS(null, "socketTimeout")) {
clientBuilder.addPropertyValue("socketTimeout", DEFAULT_SOCKET_TIMEOUT);
}
+ if (!element.hasAttributeNS(null, "responseTimeout")) {
+ clientBuilder.addPropertyValue("responseTimeout", DEFAULT_RESPONSE_TIMEOUT);
+ }
if (element.hasAttributeNS(null, "maxConnectionsTotal")) {
clientBuilder.addPropertyValue("maxConnectionsTotal",
diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/HTTPMetadataProviderParser.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/HTTPMetadataProviderParser.java
index 4da68421..7766383f 100644
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/HTTPMetadataProviderParser.java
+++ b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/HTTPMetadataProviderParser.java
@@ -61,10 +61,11 @@ public abstract class HTTPMetadataProviderParser extends AbstractReloadingMetada
if (element.hasAttributeNS(null, "connectionTimeout")
|| element.hasAttributeNS(null, "connectionRequestTimeout")
|| element.hasAttributeNS(null, "socketTimeout")
+ || element.hasAttributeNS(null, "responseTimeout")
|| element.hasAttributeNS(null, "disregardTLSCertificate")
|| element.hasAttributeNS(null, "proxyHost") || element.hasAttributeNS(null, "proxyPort")
|| element.hasAttributeNS(null, "proxyUser") || element.hasAttributeNS(null, "proxyPassword")) {
- log.warn("httpClientRef overrides settings for connectionTimeout, "
+ log.warn("httpClientRef overrides settings for connectionTimeout, responseTimeout, "
+ "connectionRequestTimeout, socketTimeout, disregardTLSCertificate, "
+ " proxyHost, proxyPort, proxyUser and proxyPassword");
}
diff --git a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/HTTPMetadataProvidersParserSupport.java b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/HTTPMetadataProvidersParserSupport.java
index e368ad58..d26978e6 100644
--- a/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/HTTPMetadataProvidersParserSupport.java
+++ b/shib-metadata-spring/src/main/java/net/shibboleth/spring/metadata/HTTPMetadataProvidersParserSupport.java
@@ -189,6 +189,10 @@ public final class HTTPMetadataProvidersParserSupport {
clientBuilder.addPropertyValue("socketTimeout",
StringSupport.trimOrNull(element.getAttributeNS(null, "socketTimeout")));
}
+ if (element.hasAttributeNS(null, "responseTimeout")) {
+ clientBuilder.addPropertyValue("responseTimeout",
+ StringSupport.trimOrNull(element.getAttributeNS(null, "responseTimeout")));
+ }
clientBuilder.addPropertyValue("tLSSocketFactory",
HTTPMetadataProvidersParserSupport.buildTLSSocketFactory(
diff --git a/shib-metadata-spring/src/main/resources/schema/shibboleth-metadata.xsd b/shib-metadata-spring/src/main/resources/schema/shibboleth-metadata.xsd
index 7798f3ba..d82f2139 100644
--- a/shib-metadata-spring/src/main/resources/schema/shibboleth-metadata.xsd
+++ b/shib-metadata-spring/src/main/resources/schema/shibboleth-metadata.xsd
@@ -183,7 +183,7 @@
<attribute name="connectionTimeout" type="shibmd:string">
<annotation>
<documentation>
- The maximum length of time to wait for the remote server to response.
+ The maximum length of time to wait for a connection to the remote server.
Timeout is expressed in ISO8601 duration notation.
</documentation>
</annotation>
@@ -204,6 +204,14 @@
</documentation>
</annotation>
</attribute>
+ <attribute name="responseTimeout" type="shibmd:string">
+ <annotation>
+ <documentation>
+ The maximum period to wait until the arrival of a response from the remote server.
+ Timeout is expressed in ISO8601 duration notation.
+ </documentation>
+ </annotation>
+ </attribute>
<attribute name="proxyHost" type="shibmd:string">
<annotation>
<documentation>
@@ -422,7 +430,7 @@
<attribute name="connectionTimeout" type="shibmd:string">
<annotation>
<documentation>
- The maximum length of time to wait for the remote server to response.
+ The maximum length of time to wait for a connection to the remote server.
Timeout is expressed in ISO8601 duration notation.
</documentation>
</annotation>
@@ -443,6 +451,14 @@
</documentation>
</annotation>
</attribute>
+ <attribute name="responseTimeout" type="shibmd:string">
+ <annotation>
+ <documentation>
+ The maximum period to wait until the arrival of a response from the remote server.
+ Timeout is expressed in ISO8601 duration notation.
+ </documentation>
+ </annotation>
+ </attribute>
<attribute name="maxConnectionsTotal" type="shibmd:string">
<annotation>
<documentation>
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.
More information about the commits
mailing list