[java-identity-provider] branch main updated: OSJ-387: Always use try-with-resources with HttpClient requests ...

Brent Putman putmanb at georgetown.edu
Thu Aug 31 23:33:47 UTC 2023


This is an automated email from the git hooks/post-receive script.

putmanb pushed a commit to branch main
in repository java-identity-provider.

View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=0d50090ba28ef9b617bd8b1bd9e7d77d8c23ee83

The following commit(s) were added to refs/heads/main by this push:
     new 0d50090ba OSJ-387: Always use try-with-resources with HttpClient requests ...
0d50090ba is described below

commit 0d50090ba28ef9b617bd8b1bd9e7d77d8c23ee83
Author: Brent Putman <putmanb at georgetown.edu>
AuthorDate: Thu Aug 31 19:27:02 2023 -0400

    OSJ-387: Always use try-with-resources with HttpClient requests ...
    
    Always use try-with-resources with HttpClient requests not involving
    HttpClientResponseHandler
---
 .../cas/proxy/impl/HttpClientProxyValidator.java   | 41 ++++++++--------------
 1 file changed, 15 insertions(+), 26 deletions(-)

diff --git a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/proxy/impl/HttpClientProxyValidator.java b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/proxy/impl/HttpClientProxyValidator.java
index 7bf4434b7..0b8667059 100644
--- a/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/proxy/impl/HttpClientProxyValidator.java
+++ b/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/proxy/impl/HttpClientProxyValidator.java
@@ -29,23 +29,11 @@ import javax.net.ssl.SSLPeerUnverifiedException;
 import javax.security.auth.login.CredentialException;
 import javax.security.auth.login.FailedLoginException;
 
-import net.shibboleth.idp.cas.config.AbstractProtocolConfiguration;
-import net.shibboleth.idp.cas.protocol.ProtocolContext;
-import net.shibboleth.idp.cas.proxy.ProxyValidator;
-import net.shibboleth.idp.cas.service.Service;
-import net.shibboleth.idp.cas.service.ServiceContext;
-import net.shibboleth.shared.annotation.constraint.NotEmpty;
-import net.shibboleth.shared.collection.CollectionSupport;
-import net.shibboleth.shared.logic.Constraint;
-import net.shibboleth.shared.primitive.LoggerFactory;
-import net.shibboleth.shared.resolver.CriteriaSet;
-
 import org.apache.hc.client5.http.ClientProtocolException;
 import org.apache.hc.client5.http.classic.HttpClient;
 import org.apache.hc.client5.http.classic.methods.HttpGet;
 import org.apache.hc.client5.http.protocol.HttpClientContext;
 import org.apache.hc.core5.http.ClassicHttpResponse;
-
 import org.opensaml.core.criterion.EntityIdCriterion;
 import org.opensaml.messaging.context.navigate.ChildContextLookup;
 import org.opensaml.profile.context.ProfileRequestContext;
@@ -61,6 +49,17 @@ import org.opensaml.security.trust.TrustEngine;
 import org.opensaml.security.x509.TrustedNamesCriterion;
 import org.slf4j.Logger;
 
+import net.shibboleth.idp.cas.config.AbstractProtocolConfiguration;
+import net.shibboleth.idp.cas.protocol.ProtocolContext;
+import net.shibboleth.idp.cas.proxy.ProxyValidator;
+import net.shibboleth.idp.cas.service.Service;
+import net.shibboleth.idp.cas.service.ServiceContext;
+import net.shibboleth.shared.annotation.constraint.NotEmpty;
+import net.shibboleth.shared.collection.CollectionSupport;
+import net.shibboleth.shared.logic.Constraint;
+import net.shibboleth.shared.primitive.LoggerFactory;
+import net.shibboleth.shared.resolver.CriteriaSet;
+
 /**
  * Authenticates a CAS proxy callback endpoint using an {@link HttpClient} instance to establish
  * the connection and a {@link TrustEngine} to verify the TLS certificate presented by the remote peer. The endpoint
@@ -154,12 +153,10 @@ public class HttpClientProxyValidator implements ProxyValidator {
         assert clientContext != null;
         HttpClientSecuritySupport.marshalSecurityParameters(clientContext, securityParameters, true);
         setCASTLSTrustEngineCriteria(clientContext, uri, service);
-        ClassicHttpResponse response = null;
-        try {
-            log.debug("Attempting to validate CAS proxy callback URI {}", uri);
-            final HttpGet request = new HttpGet(uri);
-            assert request != null;
-            response = httpClient.executeOpen(null, request, clientContext);
+        log.debug("Attempting to validate CAS proxy callback URI {}", uri);
+        final HttpGet request = new HttpGet(uri);
+        assert request != null;
+        try (final ClassicHttpResponse response = httpClient.executeOpen(null, request, clientContext)) {
             final String scheme = request.getScheme();
             assert scheme != null;
             HttpClientSecuritySupport.checkTLSCredentialEvaluated(clientContext, scheme);
@@ -175,14 +172,6 @@ public class HttpClientProxyValidator implements ProxyValidator {
             throw new GeneralSecurityException("SSL connection error", e);
         } catch (final IOException e) {
             throw new GeneralSecurityException("IO error", e);
-        } finally {
-            if (response != null) {
-                try {
-                    response.close();
-                } catch (final IOException e) {
-                    log.debug("Error closing HttpResponse", e);
-                }
-            }
         }
     }
 

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list