[java-opensaml] 10/10: IDP-1793 Use Suppliers for HttpRequest/Response

Rod Widdowson rdw at steadingsoftware.com
Tue Aug 2 19:34:48 UTC 2022


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

rdw pushed a commit to branch dev/4/IDP-1793
in repository java-opensaml.

View the commit online:
http://git.shibboleth.net/view/?p=java-opensaml.git;a=commit;h=2ab35008859b10e52b31992578c0ab45e7c2de8c

commit 2ab35008859b10e52b31992578c0ab45e7c2de8c
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Tue Aug 2 20:22:41 2022 +0100

    IDP-1793  Use Suppliers for HttpRequest/Response
    
    https://shibboleth.atlassian.net/browse/IDP-1793
    
    org.opensaml.messaging.encoder.servlet.HttpServletResponseMessageEncoder (interface)
    org.opensaml.messaging.encoder.servlet.AbstractHttpServletResponseMessageEncoder (base)
    
    Gain setters for a Supplier for the HttpResponse, the setter for the raw object being deprecated.
    Additionally the base class gains a getter for the Supplier.
---
 .../AbstractHttpServletResponseMessageEncoder.java | 69 +++++++++++++++++-----
 .../servlet/HttpServletResponseMessageEncoder.java | 20 +++++--
 .../binding/encoding/impl/HTTPPostEncoderTest.java |  5 +-
 .../encoding/impl/HTTPSOAP11EncoderTest.java       |  5 +-
 .../binding/encoding/impl/HTTPPostEncoderTest.java |  7 ++-
 .../impl/HTTPPostSimpleSignEncoderTest.java        |  9 ++-
 .../impl/HTTPRedirectDeflateEncoderTest.java       | 23 ++++----
 .../encoding/impl/HTTPSOAP11EncoderTest.java       |  7 ++-
 ...SAML2HTTPPostSimpleSignSecurityHandlerTest.java |  3 +-
 ...edirectDeflateSignatureSecurityHandlerTest.java |  3 +-
 10 files changed, 110 insertions(+), 41 deletions(-)

diff --git a/opensaml-messaging-api/src/main/java/org/opensaml/messaging/encoder/servlet/AbstractHttpServletResponseMessageEncoder.java b/opensaml-messaging-api/src/main/java/org/opensaml/messaging/encoder/servlet/AbstractHttpServletResponseMessageEncoder.java
index 2ddf37283..e58ffad74 100644
--- a/opensaml-messaging-api/src/main/java/org/opensaml/messaging/encoder/servlet/AbstractHttpServletResponseMessageEncoder.java
+++ b/opensaml-messaging-api/src/main/java/org/opensaml/messaging/encoder/servlet/AbstractHttpServletResponseMessageEncoder.java
@@ -17,13 +17,20 @@
 
 package org.opensaml.messaging.encoder.servlet;
 
+import java.util.function.Supplier;
+
 import javax.annotation.Nullable;
 import javax.servlet.http.HttpServletResponse;
 
+import org.opensaml.messaging.encoder.AbstractMessageEncoder;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
 import net.shibboleth.utilities.java.support.component.ComponentSupport;
-
-import org.opensaml.messaging.encoder.AbstractMessageEncoder;
+import net.shibboleth.utilities.java.support.net.ThreadLocalHttpServletResponseProxy;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport;
+import net.shibboleth.utilities.java.support.primitive.DeprecationSupport.ObjectType;
 
 /**
  * Abstract implementation of {@link HttpServletResponseMessageEncoder}.
@@ -31,34 +38,64 @@ import org.opensaml.messaging.encoder.AbstractMessageEncoder;
 public abstract class AbstractHttpServletResponseMessageEncoder extends AbstractMessageEncoder
         implements HttpServletResponseMessageEncoder {
 
-    /** The HTTP servlet response. */
-    @Nullable private HttpServletResponse response;
+    /** Logger. */
+    private final Logger log = LoggerFactory.getLogger(AbstractHttpServletResponseMessageEncoder.class);
 
-    /** {@inheritDoc} */
+    /** Supplier for the Current HTTP servlet response, if available. */
+    @Nullable private Supplier<HttpServletResponse> httpServletResponseSupplier;
+
+    /**
+     * {@inheritDoc}
+     */
     @Nullable public HttpServletResponse getHttpServletResponse() {
-        return response;
+        if (httpServletResponseSupplier == null) {
+            return null;
+        }
+        return httpServletResponseSupplier.get();
     }
-
-    /** {@inheritDoc} */
-    public synchronized void setHttpServletResponse(@Nullable final HttpServletResponse servletResponse) {
+    
+    /**
+     * {@inheritDoc}
+     */
+    public void setHttpServletResponseSupplier(@Nullable final Supplier<HttpServletResponse> supplier) {
         ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
-        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
 
-        response = servletResponse;
+        httpServletResponseSupplier = supplier;
     }
 
-    /** {@inheritDoc} */
-    protected void doDestroy() {
-        response = null;
+    /**
+     * Get the supplier for the current HTTP response if available.
+     *
+     * @return the supplier for the current HTTP response or null
+     */
+    @Nullable public Supplier<HttpServletResponse> getHttpServletResponseSupplier() {
+        return httpServletResponseSupplier;
+    }
 
-        super.doDestroy();
+    /**
+     * {@inheritDoc}
+     */
+    @Deprecated(since = "4.3", forRemoval = true)
+    public void setHttpServletResponse(@Nullable final HttpServletResponse response) {
+        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+
+        DeprecationSupport.warnOnce(ObjectType.METHOD, "setHttpServletResponse",
+                getClass().getCanonicalName(), "setHttpServletResponseSupplier");
+        if (response != null && !(response instanceof ThreadLocalHttpServletResponseProxy)) {
+            log.warn("Unsafe HttpServletRequest injected");
+        }
+        httpServletResponseSupplier = new Supplier<>() {
+            public HttpServletResponse get() {
+                return response;
+            };
+        };
     }
 
     /** {@inheritDoc} */
     protected void doInitialize() throws ComponentInitializationException {
         super.doInitialize();
 
-        if (response == null) {
+        if (getHttpServletResponse() == null) {
             throw new ComponentInitializationException("HTTP servlet response cannot be null");
         }
     }
diff --git a/opensaml-messaging-api/src/main/java/org/opensaml/messaging/encoder/servlet/HttpServletResponseMessageEncoder.java b/opensaml-messaging-api/src/main/java/org/opensaml/messaging/encoder/servlet/HttpServletResponseMessageEncoder.java
index 61d3bad2c..ee3f48e8c 100644
--- a/opensaml-messaging-api/src/main/java/org/opensaml/messaging/encoder/servlet/HttpServletResponseMessageEncoder.java
+++ b/opensaml-messaging-api/src/main/java/org/opensaml/messaging/encoder/servlet/HttpServletResponseMessageEncoder.java
@@ -17,6 +17,8 @@
 
 package org.opensaml.messaging.encoder.servlet;
 
+import java.util.function.Supplier;
+
 import javax.annotation.Nullable;
 import javax.servlet.http.HttpServletResponse;
 
@@ -28,17 +30,27 @@ import org.opensaml.messaging.encoder.MessageEncoder;
 public interface HttpServletResponseMessageEncoder extends MessageEncoder {
     
     /**
-     * Get the HTTP servlet response on which to operate.
-     * 
-     * @return the HTTP servlet response
+     * Get the current Http Servlet response if available.
+     *
+     * @return current Http Servlet response or null
      */
     @Nullable HttpServletResponse getHttpServletResponse();
     
     /**
-     * Set the HTTP servlet response on which to operate.
+     * Set the Http servlet response on which to operate.
      * 
      * @param response the HTTP servlet response
      */
+    @Deprecated(forRemoval = true, since="4.3")
     void setHttpServletResponse(@Nullable final HttpServletResponse response);
     
+    /**
+     * Set the supplier for the HTTP servlet response on which to operate.
+     *
+     * @param responseSupplier the supplier for the HTTP servlet response
+     */
+    default void setHttpServletResponseSupplier(@Nullable final Supplier<HttpServletResponse> responseSupplier) {
+        setHttpServletResponse(responseSupplier.get());
+    }
+
 }
\ No newline at end of file
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/binding/encoding/impl/HTTPPostEncoderTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/binding/encoding/impl/HTTPPostEncoderTest.java
index f56d5969d..16db65ceb 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/binding/encoding/impl/HTTPPostEncoderTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/binding/encoding/impl/HTTPPostEncoderTest.java
@@ -20,6 +20,9 @@ package org.opensaml.saml.saml1.binding.encoding.impl;
 import java.io.ByteArrayInputStream;
 import java.time.Instant;
 import java.util.List;
+import java.util.function.Supplier;
+
+import javax.servlet.http.HttpServletResponse;
 
 import org.apache.velocity.app.VelocityEngine;
 import org.apache.velocity.runtime.RuntimeConstants;
@@ -94,7 +97,7 @@ public class HTTPPostEncoderTest extends XMLObjectBaseTestCase {
         
         HTTPPostEncoder encoder = new HTTPPostEncoder();
         encoder.setMessageContext(messageContext);
-        encoder.setHttpServletResponse(response);
+        encoder.setHttpServletResponseSupplier(new Supplier<>() {public HttpServletResponse get() {return response;}});
         
         encoder.setVelocityEngine(velocityEngine);
 
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/binding/encoding/impl/HTTPSOAP11EncoderTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/binding/encoding/impl/HTTPSOAP11EncoderTest.java
index 4c843e985..820db710e 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/binding/encoding/impl/HTTPSOAP11EncoderTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml1/binding/encoding/impl/HTTPSOAP11EncoderTest.java
@@ -19,6 +19,9 @@ package org.opensaml.saml.saml1.binding.encoding.impl;
 
 import java.io.ByteArrayInputStream;
 import java.time.Instant;
+import java.util.function.Supplier;
+
+import javax.servlet.http.HttpServletResponse;
 
 import org.opensaml.core.testing.XMLObjectBaseTestCase;
 import org.opensaml.core.xml.XMLObject;
@@ -73,7 +76,7 @@ public class HTTPSOAP11EncoderTest extends XMLObjectBaseTestCase {
         
         HTTPSOAP11Encoder encoder = new HTTPSOAP11Encoder();
         encoder.setMessageContext(messageContext);
-        encoder.setHttpServletResponse(response);
+        encoder.setHttpServletResponseSupplier(new Supplier<>() {public HttpServletResponse get() {return response;}});
         
         encoder.initialize();
         encoder.prepareContext();
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostEncoderTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostEncoderTest.java
index ba09dccba..3b29ddf27 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostEncoderTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostEncoderTest.java
@@ -20,6 +20,9 @@ package org.opensaml.saml.saml2.binding.encoding.impl;
 import java.io.ByteArrayInputStream;
 import java.time.Instant;
 import java.util.List;
+import java.util.function.Supplier;
+
+import javax.servlet.http.HttpServletResponse;
 
 import org.apache.velocity.app.VelocityEngine;
 import org.apache.velocity.runtime.RuntimeConstants;
@@ -114,7 +117,7 @@ public class HTTPPostEncoderTest extends XMLObjectBaseTestCase {
         
         HTTPPostEncoder encoder = new HTTPPostEncoder();
         encoder.setMessageContext(messageContext);
-        encoder.setHttpServletResponse(response);
+        encoder.setHttpServletResponseSupplier(new Supplier<>() {public HttpServletResponse get() {return response;}});
         
         encoder.setVelocityEngine(velocityEngine);
         
@@ -208,7 +211,7 @@ public class HTTPPostEncoderTest extends XMLObjectBaseTestCase {
         
         HTTPPostEncoder encoder = new HTTPPostEncoder();
         encoder.setMessageContext(messageContext);
-        encoder.setHttpServletResponse(response);
+        encoder.setHttpServletResponseSupplier(new Supplier<>() {public HttpServletResponse get() {return response;}});
         
         encoder.setVelocityEngine(velocityEngine);
         
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostSimpleSignEncoderTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostSimpleSignEncoderTest.java
index 4f2091d42..44e00feb4 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostSimpleSignEncoderTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPPostSimpleSignEncoderTest.java
@@ -21,6 +21,9 @@ import java.io.ByteArrayInputStream;
 import java.security.KeyPair;
 import java.time.Instant;
 import java.util.List;
+import java.util.function.Supplier;
+
+import javax.servlet.http.HttpServletResponse;
 
 import org.apache.velocity.app.VelocityEngine;
 import org.apache.velocity.runtime.RuntimeConstants;
@@ -124,7 +127,7 @@ public class HTTPPostSimpleSignEncoderTest extends XMLObjectBaseTestCase {
         
         HTTPPostSimpleSignEncoder encoder = new HTTPPostSimpleSignEncoder();
         encoder.setMessageContext(messageContext);
-        encoder.setHttpServletResponse(response);
+        encoder.setHttpServletResponseSupplier(new Supplier<>() {public HttpServletResponse get() {return response;}});
         
         encoder.setVelocityEngine(velocityEngine);
         
@@ -218,7 +221,7 @@ public class HTTPPostSimpleSignEncoderTest extends XMLObjectBaseTestCase {
         
         HTTPPostSimpleSignEncoder encoder = new HTTPPostSimpleSignEncoder();
         encoder.setMessageContext(messageContext);
-        encoder.setHttpServletResponse(response);
+        encoder.setHttpServletResponseSupplier(new Supplier<>() {public HttpServletResponse get() {return response;}});
         
         encoder.setVelocityEngine(velocityEngine);
         
@@ -320,7 +323,7 @@ public class HTTPPostSimpleSignEncoderTest extends XMLObjectBaseTestCase {
         
         HTTPPostSimpleSignEncoder encoder = new HTTPPostSimpleSignEncoder();
         encoder.setMessageContext(messageContext);
-        encoder.setHttpServletResponse(response);
+        encoder.setHttpServletResponseSupplier(new Supplier<>() {public HttpServletResponse get() {return response;}});
         
         encoder.setVelocityEngine(velocityEngine);
         
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPRedirectDeflateEncoderTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPRedirectDeflateEncoderTest.java
index 85b25793d..4d5398b69 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPRedirectDeflateEncoderTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPRedirectDeflateEncoderTest.java
@@ -21,9 +21,12 @@ import java.io.ByteArrayInputStream;
 import java.security.KeyPair;
 import java.time.Instant;
 import java.util.Map;
+import java.util.function.Supplier;
 import java.util.zip.Inflater;
 import java.util.zip.InflaterInputStream;
 
+import javax.servlet.http.HttpServletResponse;
+
 import org.opensaml.core.testing.XMLObjectBaseTestCase;
 import org.opensaml.messaging.context.MessageContext;
 import org.opensaml.saml.common.SAMLObjectBuilder;
@@ -101,7 +104,7 @@ public class HTTPRedirectDeflateEncoderTest extends XMLObjectBaseTestCase {
         
         HTTPRedirectDeflateEncoder encoder = new HTTPRedirectDeflateEncoder();
         encoder.setMessageContext(messageContext);
-        encoder.setHttpServletResponse(response);
+        encoder.setHttpServletResponseSupplier(new Supplier<>() {public HttpServletResponse get() {return response;}});
         
         encoder.initialize();
         encoder.prepareContext();
@@ -178,7 +181,7 @@ public class HTTPRedirectDeflateEncoderTest extends XMLObjectBaseTestCase {
         
         HTTPRedirectDeflateEncoder encoder = new HTTPRedirectDeflateEncoder();
         encoder.setMessageContext(messageContext);
-        encoder.setHttpServletResponse(response);
+        encoder.setHttpServletResponseSupplier(new Supplier<>() {public HttpServletResponse get() {return response;}});
         
         encoder.initialize();
         encoder.prepareContext();
@@ -259,7 +262,7 @@ public class HTTPRedirectDeflateEncoderTest extends XMLObjectBaseTestCase {
         
         HTTPRedirectDeflateEncoder encoder = new HTTPRedirectDeflateEncoder();
         encoder.setMessageContext(messageContext);
-        encoder.setHttpServletResponse(response);
+        encoder.setHttpServletResponseSupplier(new Supplier<>() {public HttpServletResponse get() {return response;}});
         
         encoder.initialize();
         encoder.prepareContext();
@@ -350,7 +353,7 @@ public class HTTPRedirectDeflateEncoderTest extends XMLObjectBaseTestCase {
         
         HTTPRedirectDeflateEncoder encoder = new HTTPRedirectDeflateEncoder();
         encoder.setMessageContext(messageContext);
-        encoder.setHttpServletResponse(response);
+        encoder.setHttpServletResponseSupplier(new Supplier<>() {public HttpServletResponse get() {return response;}});
         
         encoder.initialize();
         encoder.prepareContext();
@@ -434,11 +437,11 @@ public class HTTPRedirectDeflateEncoderTest extends XMLObjectBaseTestCase {
         // the SAMLOutboundDestinationHandler, which would change the data being signed. Not correct vis-a-vis actual 
         //SAML protocol usage, but for purposes of this test it doesn't matter.
         
-        MockHttpServletResponse response = new MockHttpServletResponse();
+        final MockHttpServletResponse response = new MockHttpServletResponse();
         
         HTTPRedirectDeflateEncoder encoder = new HTTPRedirectDeflateEncoder();
         encoder.setMessageContext(messageContext);
-        encoder.setHttpServletResponse(response);
+        encoder.setHttpServletResponseSupplier(new Supplier<>() {public HttpServletResponse get() {return response;}});
         
         encoder.initialize();
         encoder.prepareContext();
@@ -484,18 +487,18 @@ public class HTTPRedirectDeflateEncoderTest extends XMLObjectBaseTestCase {
         
         messageContext.getSubcontext(SecurityParametersContext.class, true).setSignatureSigningParameters(signingParameters);
         
-        response = new MockHttpServletResponse();
+        final MockHttpServletResponse response2 = new MockHttpServletResponse();
         
         encoder = new HTTPRedirectDeflateEncoder();
         encoder.setMessageContext(messageContext);
-        encoder.setHttpServletResponse(response);
+        encoder.setHttpServletResponseSupplier(new Supplier<>() {public HttpServletResponse get() {return response2;}});
         
         encoder.initialize();
         encoder.prepareContext();
         encoder.encode();
         
-        Assert.assertNotNull(response.getRedirectedUrl());
-        urlBuilder = new URLBuilder(response.getRedirectedUrl());
+        Assert.assertNotNull(response2.getRedirectedUrl());
+        urlBuilder = new URLBuilder(response2.getRedirectedUrl());
         Assert.assertEquals(urlBuilder.getScheme(), "http");
         Assert.assertEquals(urlBuilder.getHost(), "example.org");
         Assert.assertEquals(urlBuilder.getPath(), "/response");
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPSOAP11EncoderTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPSOAP11EncoderTest.java
index fe424ed07..c6bea3155 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPSOAP11EncoderTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/encoding/impl/HTTPSOAP11EncoderTest.java
@@ -19,6 +19,9 @@ package org.opensaml.saml.saml2.binding.encoding.impl;
 
 import java.io.ByteArrayInputStream;
 import java.time.Instant;
+import java.util.function.Supplier;
+
+import javax.servlet.http.HttpServletResponse;
 
 import org.opensaml.core.testing.XMLObjectBaseTestCase;
 import org.opensaml.core.xml.XMLObject;
@@ -82,11 +85,11 @@ public class HTTPSOAP11EncoderTest extends XMLObjectBaseTestCase {
         messageContext.getSubcontext(SAMLPeerEntityContext.class, true)
             .getSubcontext(SAMLEndpointContext.class, true).setEndpoint(samlEndpoint);
         
-        MockHttpServletResponse response = new MockHttpServletResponse();
+        final MockHttpServletResponse response = new MockHttpServletResponse();
         
         HTTPSOAP11Encoder encoder = new HTTPSOAP11Encoder();
         encoder.setMessageContext(messageContext);
-        encoder.setHttpServletResponse(response);
+        encoder.setHttpServletResponseSupplier(new Supplier<>() {public HttpServletResponse get() {return response;}});
         
         encoder.initialize();
         encoder.prepareContext();
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPPostSimpleSignSecurityHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPPostSimpleSignSecurityHandlerTest.java
index b0381e61b..f8ca8574c 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPPostSimpleSignSecurityHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPPostSimpleSignSecurityHandlerTest.java
@@ -28,6 +28,7 @@ import java.util.List;
 import java.util.function.Supplier;
 
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import javax.xml.XMLConstants;
 
 import net.shibboleth.utilities.java.support.codec.DecodingException;
@@ -418,7 +419,7 @@ public class SAML2HTTPPostSimpleSignSecurityHandlerTest extends XMLObjectBaseTes
         
         final HTTPPostSimpleSignEncoder encoder = new HTTPPostSimpleSignEncoder();
         encoder.setMessageContext(mc);
-        encoder.setHttpServletResponse(response);
+        encoder.setHttpServletResponseSupplier(new Supplier<>() {public HttpServletResponse get() {return response;}});
         
         encoder.setVelocityEngine(velocityEngine);
         encoder.setVelocityTemplateId("/templates/saml2-post-simplesign-binding.vm");
diff --git a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPRedirectDeflateSignatureSecurityHandlerTest.java b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPRedirectDeflateSignatureSecurityHandlerTest.java
index ec45cda6d..1b36817c4 100644
--- a/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPRedirectDeflateSignatureSecurityHandlerTest.java
+++ b/opensaml-saml-impl/src/test/java/org/opensaml/saml/saml2/binding/security/impl/SAML2HTTPRedirectDeflateSignatureSecurityHandlerTest.java
@@ -28,6 +28,7 @@ import java.util.List;
 import java.util.function.Supplier;
 
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 
 import net.shibboleth.utilities.java.support.collection.Pair;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
@@ -330,7 +331,7 @@ public class SAML2HTTPRedirectDeflateSignatureSecurityHandlerTest extends XMLObj
         
         final HTTPRedirectDeflateEncoder encoder = new HTTPRedirectDeflateEncoder();
         encoder.setMessageContext(mc);
-        encoder.setHttpServletResponse(response);
+        encoder.setHttpServletResponseSupplier(new Supplier<>() {public HttpServletResponse get() {return response;}});
         
         try {
             encoder.initialize();

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


More information about the commits mailing list