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

Rod Widdowson rdw at steadingsoftware.com
Sat Aug 6 16:42:48 UTC 2022


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

rdw 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=aaf74876484b63af9f9dd16cfd3b7bff6d4848ce

commit aaf74876484b63af9f9dd16cfd3b7bff6d4848ce
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.
---
 .../idp/authn/spnego/impl/SPNEGOAutoLoginManagerTest.java    | 12 +++++++++---
 idp-cas-impl/src/test/resources/spring/test-flow-beans.xml   | 10 ++++++++--
 .../main/resources/net/shibboleth/idp/conf/global-system.xml | 12 ++++++------
 .../session/impl/StorageBackedIdPSessionSerializerTest.java  | 12 ++++++++++--
 .../idp/session/impl/testing/SessionManagerBaseTestCase.java |  8 +++++---
 5 files changed, 38 insertions(+), 16 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 44e09c2ef..2de78513c 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 jakarta.servlet.http.Cookie;
-
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.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,11 @@ 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 9418b2ecb..d578c1662 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
@@ -37,10 +37,16 @@
     <bean id="shibboleth.HttpServletResponse" destroy-method=""
         class="net.shibboleth.utilities.java.support.net.ThreadLocalHttpServletResponseProxy" />
 
+    <bean id="shibboleth.HttpServletRequestSupplier" destroy-method=""
+        class="net.shibboleth.utilities.java.support.net.ThreadLocalHttpServletRequestSupplier" />
+
+    <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:httpServletRequestSupplier-ref="shibboleth.HttpServletRequestSupplier"
+        p:httpServletResponseSupplier-ref="shibboleth.HttpServletResponseSupplier"
         p:secure="false" />
 
     <bean id="shibboleth.SessionIDGenerator" destroy-method=""
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 71bf11439..fb144e78d 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
@@ -203,8 +203,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:}"
@@ -212,8 +212,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:}"
@@ -221,8 +221,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 30e667515..aed5653ce 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
@@ -22,13 +22,18 @@ import java.io.FileInputStream;
 import java.io.IOException;
 import java.net.URISyntaxException;
 import java.time.Instant;
+import java.util.function.Supplier;
 
 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;
 import org.testng.reporters.Files;
 
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import net.shibboleth.idp.authn.AuthenticationResult;
 import net.shibboleth.idp.authn.principal.UsernamePrincipal;
 import net.shibboleth.idp.session.BasicSPSession;
@@ -61,8 +66,11 @@ 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();
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 1d79b4728..bf4cf0443 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
@@ -18,10 +18,12 @@
 package net.shibboleth.idp.session.impl.testing;
 
 import java.time.Duration;
+import java.util.function.Supplier;
 
 import javax.annotation.Nonnull;
 import jakarta.servlet.http.Cookie;
-
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
 import net.shibboleth.idp.session.SessionException;
 import net.shibboleth.idp.session.impl.StorageBackedSessionManager;
 import net.shibboleth.utilities.java.support.annotation.constraint.NotEmpty;
@@ -58,8 +60,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