[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