[java-identity-provider] 14/19: IDP-1793 Use Suppliers for HttpRequest/Response

Rod Widdowson rdw at steadingsoftware.com
Wed Aug 10 13:17:06 UTC 2022


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

rdw pushed a commit to branch maint-4
in repository java-identity-provider.

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

commit ffe033145ef2d897f90c84423085dd6f1481b665
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Sat Aug 6 17:10:15 2022 +0100

    IDP-1793  Use Suppliers for HttpRequest/Response
    
    https://shibboleth.atlassian.net/browse/IDP-1793
    
    The CookieManager has gained setters for a Supplier<HttpServletRequest>
    and lost the setters for the raw objects.  Use the Supplier versions.
---
 .../spnego/impl/SPNEGOAutoLoginManagerTest.java      | 11 ++++++++---
 .../src/test/resources/spring/test-flow-beans.xml    | 20 ++++++++++----------
 .../net/shibboleth/idp/conf/global-system.xml        | 12 ++++++------
 .../impl/StorageBackedIdPSessionSerializerTest.java  | 11 +++++++----
 .../impl/testing/SessionManagerBaseTestCase.java     | 18 +++++++++---------
 5 files changed, 40 insertions(+), 32 deletions(-)

diff --git a/idp-authn-impl/src/test/java/net/shibboleth/idp/authn/spnego/impl/SPNEGOAutoLoginManagerTest.java b/idp-authn-impl/src/test/java/net/shibboleth/idp/authn/spnego/impl/SPNEGOAutoLoginManagerTest.java
index 83065b2e8..78b9955f7 100644
--- a/idp-authn-impl/src/test/java/net/shibboleth/idp/authn/spnego/impl/SPNEGOAutoLoginManagerTest.java
+++ b/idp-authn-impl/src/test/java/net/shibboleth/idp/authn/spnego/impl/SPNEGOAutoLoginManagerTest.java
@@ -18,9 +18,12 @@
 package net.shibboleth.idp.authn.spnego.impl;
 
 import javax.servlet.http.Cookie;
-
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import net.shibboleth.utilities.java.support.net.CookieManager;
 
+import java.util.function.Supplier;
+
 import org.springframework.mock.web.MockHttpServletRequest;
 import org.springframework.mock.web.MockHttpServletResponse;
 import org.testng.Assert;
@@ -46,8 +49,10 @@ public class SPNEGOAutoLoginManagerTest {
     protected SPNEGOAutoLoginManager createAutoLoginManager(MockHttpServletRequest req, MockHttpServletResponse res)
             throws Exception {
         CookieManager cookieManager = new CookieManager();
-        cookieManager.setHttpServletRequest(req != null ? req : new MockHttpServletRequest());
-        cookieManager.setHttpServletResponse(res != null ? res : new MockHttpServletResponse());
+        final HttpServletRequest request = req != null ? req : new MockHttpServletRequest();
+        final HttpServletResponse response = res != null ? res : new MockHttpServletResponse();
+        cookieManager.setHttpServletRequestSupplier(new Supplier<>() {public HttpServletRequest get() { return request;}});
+        cookieManager.setHttpServletResponseSupplier(new Supplier<>() {public HttpServletResponse get() { return response;}});
         cookieManager.initialize();
 
         SPNEGOAutoLoginManager autoLoginManager = new SPNEGOAutoLoginManager();
diff --git a/idp-cas-impl/src/test/resources/spring/test-flow-beans.xml b/idp-cas-impl/src/test/resources/spring/test-flow-beans.xml
index e6f4f0060..4753d6ae2 100644
--- a/idp-cas-impl/src/test/resources/spring/test-flow-beans.xml
+++ b/idp-cas-impl/src/test/resources/spring/test-flow-beans.xml
@@ -31,23 +31,23 @@
     <bean id="shibboleth.StorageService"
           class="org.opensaml.storage.impl.MemoryStorageService" />
 
-    <bean id="shibboleth.HttpServletRequestSupplier"
+    <bean id="shibboleth.HttpServletRequest" destroy-method=""
           class="net.shibboleth.utilities.java.support.net.ThreadLocalHttpServletRequestProxy" />
 
-    <bean id="shibboleth.HttpServletResponseSupplier"
+    <bean id="shibboleth.HttpServletResponse"  destroy-method=""
           class="net.shibboleth.utilities.java.support.net.ThreadLocalHttpServletResponseProxy" />
 
-    <bean id="shibboleth.HttpServletRequest"
-          class="net.shibboleth.utilities.java.support.net.ThreadLocalHttpServletRequestProxy" />
+    <bean id="shibboleth.HttpServletRequestSupplier"
+        class="net.shibboleth.utilities.java.support.net.ThreadLocalHttpServletRequestSupplier" />
 
-    <bean id="shibboleth.HttpServletResponse"
-          class="net.shibboleth.utilities.java.support.net.ThreadLocalHttpServletResponseProxy" />
+    <bean id="shibboleth.HttpServletResponseSupplier" destroy-method=""
+        class="net.shibboleth.utilities.java.support.net.ThreadLocalHttpServletResponseSupplier" />
 
     <bean id="shibboleth.CookieManager"
-          class="net.shibboleth.utilities.java.support.net.CookieManager"
-          p:httpServletRequest-ref="shibboleth.HttpServletRequest"
-          p:httpServletResponse-ref="shibboleth.HttpServletResponse"
-          p:secure="false" />
+        class="net.shibboleth.utilities.java.support.net.CookieManager"
+        p:httpServletRequestSupplier-ref="shibboleth.HttpServletRequestSupplier"
+        p:httpServletResponseSupplier-ref="shibboleth.HttpServletResponseSupplier"
+        p:secure="false" />
 
     <bean id="shibboleth.SessionIDGenerator"
           class="net.shibboleth.utilities.java.support.security.impl.SecureRandomIdentifierGenerationStrategy"
diff --git a/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/global-system.xml b/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/global-system.xml
index dc7324d27..308b1027f 100644
--- a/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/global-system.xml
+++ b/idp-conf-impl/src/main/resources/net/shibboleth/idp/conf/global-system.xml
@@ -202,8 +202,8 @@
     <bean id="shibboleth.UnmarshallerFactory" factory-method="getUnmarshallerFactory" class="org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport" depends-on="shibboleth.OpenSAMLConfig" />
 
     <bean id="shibboleth.CookieManager" class="net.shibboleth.utilities.java.support.net.CookieManager"
-        p:httpServletRequest-ref="shibboleth.HttpServletRequest"
-        p:httpServletResponse-ref="shibboleth.HttpServletResponse"
+        p:httpServletRequestSupplier-ref="shibboleth.HttpServletRequestSupplier"
+        p:httpServletResponseSupplier-ref="shibboleth.HttpServletResponseSupplier"
         p:secure="%{idp.cookie.secure:true}"
         p:httpOnly="%{idp.cookie.httpOnly:true}"
         p:cookieDomain="%{idp.cookie.domain:}"
@@ -211,8 +211,8 @@
         p:maxAge="-1" />
 
     <bean id="shibboleth.PersistentCookieManager" class="net.shibboleth.utilities.java.support.net.CookieManager"
-        p:httpServletRequest-ref="shibboleth.HttpServletRequest"
-        p:httpServletResponse-ref="shibboleth.HttpServletResponse"
+        p:httpServletRequestSupplier-ref="shibboleth.HttpServletRequestSupplier"
+        p:httpServletResponseSupplier-ref="shibboleth.HttpServletResponseSupplier"
         p:secure="%{idp.cookie.secure:true}"
         p:httpOnly="%{idp.cookie.httpOnly:true}"
         p:cookieDomain="%{idp.cookie.domain:}"
@@ -220,8 +220,8 @@
         p:maxAge="%{idp.cookie.maxAge:31536000}" />
 
     <bean id="shibboleth.UserPrefsCookieManager" class="net.shibboleth.utilities.java.support.net.CookieManager"
-        p:httpServletRequest-ref="shibboleth.HttpServletRequest"
-        p:httpServletResponse-ref="shibboleth.HttpServletResponse"
+        p:httpServletRequestSupplier-ref="shibboleth.HttpServletRequestSupplier"
+        p:httpServletResponseSupplier-ref="shibboleth.HttpServletResponseSupplier"
         p:secure="%{idp.cookie.secure:true}"
         p:httpOnly="false"
         p:cookieDomain="%{idp.cookie.domain:}"
diff --git a/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/StorageBackedIdPSessionSerializerTest.java b/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/StorageBackedIdPSessionSerializerTest.java
index f35c9ae24..7262439d4 100644
--- a/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/StorageBackedIdPSessionSerializerTest.java
+++ b/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/StorageBackedIdPSessionSerializerTest.java
@@ -23,11 +23,12 @@ import java.io.IOException;
 import java.net.URISyntaxException;
 import java.time.Instant;
 import java.util.function.Supplier;
-
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.opensaml.storage.impl.MemoryStorageService;
+import org.springframework.mock.web.MockHttpServletRequest;
+import org.springframework.mock.web.MockHttpServletResponse;
 import org.testng.Assert;
 import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
@@ -65,8 +66,10 @@ public class StorageBackedIdPSessionSerializerTest {
         storageService.initialize();
 
         CookieManager cookieManager = new CookieManager();
-        cookieManager.setHttpServletRequest(new ThreadLocalHttpServletRequestProxy());
-        cookieManager.setHttpServletResponse(new ThreadLocalHttpServletResponseProxy());
+        final HttpServletRequest request = new MockHttpServletRequest();
+        final HttpServletResponse response =  new MockHttpServletResponse();
+        cookieManager.setHttpServletRequestSupplier(new Supplier<>() {public HttpServletRequest get() { return request;}});
+        cookieManager.setHttpServletResponseSupplier(new Supplier<>() {public HttpServletResponse get() { return response;}});
         cookieManager.initialize();
         
         manager = new StorageBackedSessionManager();
@@ -173,4 +176,4 @@ public class StorageBackedIdPSessionSerializerTest {
             return Files.streamToString(stream);
         }
     }
-}
\ No newline at end of file
+}
diff --git a/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/testing/SessionManagerBaseTestCase.java b/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/testing/SessionManagerBaseTestCase.java
index ff60f8f16..86294c842 100644
--- a/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/testing/SessionManagerBaseTestCase.java
+++ b/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/testing/SessionManagerBaseTestCase.java
@@ -25,6 +25,13 @@ import javax.servlet.http.Cookie;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
+import org.opensaml.storage.impl.MemoryStorageService;
+import org.springframework.mock.web.MockHttpServletRequest;
+import org.springframework.mock.web.MockHttpServletResponse;
+import org.testng.annotations.AfterClass;
+import org.testng.annotations.BeforeClass;
+
 import net.shibboleth.idp.session.SessionException;
 import net.shibboleth.idp.session.impl.StorageBackedSessionManager;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
@@ -35,13 +42,6 @@ import net.shibboleth.utilities.java.support.net.ThreadLocalHttpServletRequestPr
 import net.shibboleth.utilities.java.support.net.ThreadLocalHttpServletResponseProxy;
 import net.shibboleth.utilities.java.support.security.impl.SecureRandomIdentifierGenerationStrategy;
 
-import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
-import org.opensaml.storage.impl.MemoryStorageService;
-import org.springframework.mock.web.MockHttpServletRequest;
-import org.springframework.mock.web.MockHttpServletResponse;
-import org.testng.annotations.AfterClass;
-import org.testng.annotations.BeforeClass;
-
 /** Base class for tests requiring a SessionManager component to be set up. */
 public class SessionManagerBaseTestCase extends OpenSAMLInitBaseTestCase {
     
@@ -61,8 +61,8 @@ public class SessionManagerBaseTestCase extends OpenSAMLInitBaseTestCase {
         storageService.setId("TestStorageService");
 
         CookieManager cookieManager = new CookieManager();
-        cookieManager.setHttpServletRequest(requestProxy);
-        cookieManager.setHttpServletResponse(responseProxy);
+        cookieManager.setHttpServletRequestSupplier(new Supplier<>() {public HttpServletRequest get() { return requestProxy;}});
+        cookieManager.setHttpServletResponseSupplier(new Supplier<>() {public HttpServletResponse get() { return responseProxy;}});
         cookieManager.initialize();
         
         sessionManager = new StorageBackedSessionManager();

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


More information about the commits mailing list