[java-identity-provider] branch main updated: Sanitize use of servlet proxies out of tests.

Scott Cantor cantor.2 at osu.edu
Thu Nov 10 13:45:51 UTC 2022


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

scantor 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=d7a105f22bcbe3f0c9aad813b16ff3fb16f01c3d

The following commit(s) were added to refs/heads/main by this push:
     new d7a105f22 Sanitize use of servlet proxies out of tests.
d7a105f22 is described below

commit d7a105f22bcbe3f0c9aad813b16ff3fb16f01c3d
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Thu Nov 10 08:45:48 2022 -0500

    Sanitize use of servlet proxies out of tests.
---
 .../profile/impl/SessionManagerBaseTestCase.java      | 19 +++++--------------
 .../idp/session/impl/PopulateSessionContextTest.java  | 16 +++++++---------
 .../idp/session/impl/ProcessLogoutTest.java           | 15 +++++++--------
 .../idp/session/impl/SessionManagerBaseTestCase.java  | 19 +++++--------------
 .../impl/StorageBackedIdPSessionSerializerTest.java   | 16 ++++------------
 5 files changed, 28 insertions(+), 57 deletions(-)

diff --git a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/SessionManagerBaseTestCase.java b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/SessionManagerBaseTestCase.java
index 20ff6810b..9de8145e1 100644
--- a/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/SessionManagerBaseTestCase.java
+++ b/idp-saml-impl/src/test/java/net/shibboleth/idp/saml/saml2/profile/impl/SessionManagerBaseTestCase.java
@@ -18,12 +18,9 @@
 package net.shibboleth.idp.saml.saml2.profile.impl;
 
 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.shared.annotation.constraint.NotEmpty;
@@ -32,8 +29,8 @@ import net.shibboleth.shared.net.CookieManager;
 import net.shibboleth.shared.security.IdentifierGenerationStrategy;
 import net.shibboleth.shared.security.IdentifierGenerationStrategy.ProviderType;
 import net.shibboleth.shared.servlet.impl.HttpServletRequestResponseContext;
-import net.shibboleth.shared.servlet.impl.ThreadLocalHttpServletRequestProxy;
-import net.shibboleth.shared.servlet.impl.ThreadLocalHttpServletResponseProxy;
+import net.shibboleth.shared.servlet.impl.ThreadLocalHttpServletRequestSupplier;
+import net.shibboleth.shared.servlet.impl.ThreadLocalHttpServletResponseSupplier;
 
 import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
 import org.opensaml.storage.impl.MemoryStorageService;
@@ -49,27 +46,21 @@ public class SessionManagerBaseTestCase extends OpenSAMLInitBaseTestCase {
     
     protected StorageBackedSessionManager sessionManager;
     
-    protected ThreadLocalHttpServletRequestProxy requestProxy;
-    
-    protected ThreadLocalHttpServletResponseProxy responseProxy;
-    
     @BeforeClass public void setUp() throws ComponentInitializationException {
-        requestProxy = new ThreadLocalHttpServletRequestProxy();
-        responseProxy = new ThreadLocalHttpServletResponseProxy();
         
         storageService = new MemoryStorageService();
         storageService.setId("TestStorageService");
 
         CookieManager cookieManager = new CookieManager();
-        cookieManager.setHttpServletRequestSupplier(new Supplier<>() {public HttpServletRequest get() { return requestProxy;}});
-        cookieManager.setHttpServletResponseSupplier(new Supplier<>() {public HttpServletResponse get() { return responseProxy;}});
+        cookieManager.setHttpServletRequestSupplier(new ThreadLocalHttpServletRequestSupplier());
+        cookieManager.setHttpServletResponseSupplier(new ThreadLocalHttpServletResponseSupplier());
         cookieManager.initialize();
         
         sessionManager = new StorageBackedSessionManager();
         sessionManager.setSessionTimeout(Duration.ofSeconds(15));
         sessionManager.setStorageService(storageService);
         sessionManager.setIDGenerator(IdentifierGenerationStrategy.getInstance(ProviderType.SECURE));
-        sessionManager.setHttpServletRequestSupplier(new Supplier<>() {public HttpServletRequest get() {return requestProxy;}});
+        sessionManager.setHttpServletRequestSupplier(new ThreadLocalHttpServletRequestSupplier());
         sessionManager.setCookieManager(cookieManager);
         sessionManager.setId("Test Session Manager");
 
diff --git a/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/PopulateSessionContextTest.java b/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/PopulateSessionContextTest.java
index 037a4757e..a022c50ca 100644
--- a/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/PopulateSessionContextTest.java
+++ b/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/PopulateSessionContextTest.java
@@ -17,8 +17,6 @@
 
 package net.shibboleth.idp.session.impl;
 
-import java.util.function.Supplier;
-
 import org.opensaml.profile.context.ProfileRequestContext;
 import org.springframework.mock.web.MockHttpServletRequest;
 import org.springframework.mock.web.MockHttpServletResponse;
@@ -29,8 +27,6 @@ import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
 import jakarta.servlet.http.Cookie;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
 import net.shibboleth.idp.profile.context.navigate.WebflowRequestContextProfileRequestContextLookup;
 import net.shibboleth.idp.profile.testing.ActionTestingSupport;
 import net.shibboleth.idp.profile.testing.RequestContextBuilder;
@@ -38,6 +34,8 @@ import net.shibboleth.idp.session.SessionException;
 import net.shibboleth.idp.session.context.SessionContext;
 import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.shared.servlet.impl.HttpServletRequestResponseContext;
+import net.shibboleth.shared.servlet.impl.ThreadLocalHttpServletRequestSupplier;
+import net.shibboleth.shared.servlet.impl.ThreadLocalHttpServletResponseSupplier;
 
 /** {@link PopulateSessionContext} unit test. */
 @SuppressWarnings("javadoc")
@@ -54,8 +52,8 @@ public class PopulateSessionContextTest extends SessionManagerBaseTestCase {
         prc = new WebflowRequestContextProfileRequestContextLookup().apply(src);
         
         action = new PopulateSessionContext();
-        action.setHttpServletRequestSupplier(new Supplier<> () {public HttpServletRequest get() { return requestProxy;}});
-        action.setHttpServletResponseSupplier(new Supplier<> () {public HttpServletResponse get() { return responseProxy;}});
+        action.setHttpServletRequestSupplier(new ThreadLocalHttpServletRequestSupplier());
+        action.setHttpServletResponseSupplier(new ThreadLocalHttpServletResponseSupplier());
         action.setSessionResolver(sessionManager);
         action.initialize();
     }
@@ -123,10 +121,10 @@ public class PopulateSessionContextTest extends SessionManagerBaseTestCase {
     
     @Test public void testAddressLookup() throws ComponentInitializationException, SessionException {
         action = new PopulateSessionContext();
-        action.setHttpServletRequestSupplier(new Supplier<> () {public HttpServletRequest get() { return requestProxy;}});
-        action.setHttpServletResponseSupplier(new Supplier<> () {public HttpServletResponse get() { return responseProxy;}});
+        action.setHttpServletRequestSupplier(new ThreadLocalHttpServletRequestSupplier());
+        action.setHttpServletResponseSupplier(new ThreadLocalHttpServletResponseSupplier());
         action.setSessionResolver(sessionManager);
-        action.setAddressLookupStrategy(input -> requestProxy.getHeader("User-Agent"));
+        action.setAddressLookupStrategy(input -> action.getHttpServletRequest().getHeader("User-Agent"));
         action.initialize();
         
         Cookie cookie = createSession("joe");
diff --git a/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/ProcessLogoutTest.java b/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/ProcessLogoutTest.java
index e5ecfa42c..5e0d4e2f7 100644
--- a/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/ProcessLogoutTest.java
+++ b/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/ProcessLogoutTest.java
@@ -20,7 +20,6 @@ package net.shibboleth.idp.session.impl;
 import java.time.Duration;
 import java.time.Instant;
 import java.util.Collections;
-import java.util.function.Supplier;
 
 import org.opensaml.profile.context.ProfileRequestContext;
 import org.opensaml.storage.StorageSerializer;
@@ -33,8 +32,6 @@ import org.testng.annotations.BeforeMethod;
 import org.testng.annotations.Test;
 
 import jakarta.servlet.http.Cookie;
-import jakarta.servlet.http.HttpServletRequest;
-import jakarta.servlet.http.HttpServletResponse;
 import net.shibboleth.idp.authn.context.SubjectContext;
 import net.shibboleth.idp.profile.context.navigate.WebflowRequestContextProfileRequestContextLookup;
 import net.shibboleth.idp.profile.testing.ActionTestingSupport;
@@ -50,6 +47,8 @@ import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.shared.resolver.CriteriaSet;
 import net.shibboleth.shared.resolver.ResolverException;
 import net.shibboleth.shared.servlet.impl.HttpServletRequestResponseContext;
+import net.shibboleth.shared.servlet.impl.ThreadLocalHttpServletRequestSupplier;
+import net.shibboleth.shared.servlet.impl.ThreadLocalHttpServletResponseSupplier;
 
 /** {@link ProcessLogout} unit test. */
 @SuppressWarnings("javadoc")
@@ -66,8 +65,8 @@ public class ProcessLogoutTest extends SessionManagerBaseTestCase {
         prc = new WebflowRequestContextProfileRequestContextLookup().apply(src);
         
         action = new ProcessLogout();
-        action.setHttpServletRequestSupplier(new Supplier<> () {public HttpServletRequest get() { return requestProxy;}});
-        action.setHttpServletResponseSupplier(new Supplier<> () {public HttpServletResponse get() { return responseProxy;}});
+        action.setHttpServletRequestSupplier(new ThreadLocalHttpServletRequestSupplier());
+        action.setHttpServletResponseSupplier(new ThreadLocalHttpServletResponseSupplier());
         action.setSessionResolver(sessionManager);
         action.initialize();
     }
@@ -189,10 +188,10 @@ public class ProcessLogoutTest extends SessionManagerBaseTestCase {
 
     @Test public void testAddressLookup() throws ComponentInitializationException, SessionException, ResolverException {
         action = new ProcessLogout();
-        action.setHttpServletRequestSupplier(new Supplier<> () {public HttpServletRequest get() { return requestProxy;}});
-        action.setHttpServletResponseSupplier(new Supplier<> () {public HttpServletResponse get() { return responseProxy;}});
+        action.setHttpServletRequestSupplier(new ThreadLocalHttpServletRequestSupplier());
+        action.setHttpServletResponseSupplier(new ThreadLocalHttpServletResponseSupplier());
         action.setSessionResolver(sessionManager);
-        action.setAddressLookupStrategy(input -> requestProxy.getHeader("User-Agent"));
+        action.setAddressLookupStrategy(input -> action.getHttpServletRequest().getHeader("User-Agent"));
         action.initialize();
         
         Cookie cookie = createSession("joe");
diff --git a/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/SessionManagerBaseTestCase.java b/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/SessionManagerBaseTestCase.java
index 2e5dbbaba..fe7411e65 100644
--- a/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/SessionManagerBaseTestCase.java
+++ b/idp-session-impl/src/test/java/net/shibboleth/idp/session/impl/SessionManagerBaseTestCase.java
@@ -18,12 +18,9 @@
 package net.shibboleth.idp.session.impl;
 
 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.shared.annotation.constraint.NotEmpty;
 import net.shibboleth.shared.component.ComponentInitializationException;
@@ -31,8 +28,8 @@ import net.shibboleth.shared.net.CookieManager;
 import net.shibboleth.shared.security.IdentifierGenerationStrategy;
 import net.shibboleth.shared.security.IdentifierGenerationStrategy.ProviderType;
 import net.shibboleth.shared.servlet.impl.HttpServletRequestResponseContext;
-import net.shibboleth.shared.servlet.impl.ThreadLocalHttpServletRequestProxy;
-import net.shibboleth.shared.servlet.impl.ThreadLocalHttpServletResponseProxy;
+import net.shibboleth.shared.servlet.impl.ThreadLocalHttpServletRequestSupplier;
+import net.shibboleth.shared.servlet.impl.ThreadLocalHttpServletResponseSupplier;
 
 import org.opensaml.core.testing.OpenSAMLInitBaseTestCase;
 import org.opensaml.storage.impl.MemoryStorageService;
@@ -48,27 +45,21 @@ public class SessionManagerBaseTestCase extends OpenSAMLInitBaseTestCase {
     
     protected StorageBackedSessionManager sessionManager;
     
-    protected ThreadLocalHttpServletRequestProxy requestProxy;
-    
-    protected ThreadLocalHttpServletResponseProxy responseProxy;
-    
     @BeforeClass public void setUp() throws ComponentInitializationException {
-        requestProxy = new ThreadLocalHttpServletRequestProxy();
-        responseProxy = new ThreadLocalHttpServletResponseProxy();
         
         storageService = new MemoryStorageService();
         storageService.setId("TestStorageService");
 
         CookieManager cookieManager = new CookieManager();
-        cookieManager.setHttpServletRequestSupplier(new Supplier<>() {public HttpServletRequest get() { return requestProxy;}});
-        cookieManager.setHttpServletResponseSupplier(new Supplier<>() {public HttpServletResponse get() { return responseProxy;}});
+        cookieManager.setHttpServletRequestSupplier(new ThreadLocalHttpServletRequestSupplier());
+        cookieManager.setHttpServletResponseSupplier(new ThreadLocalHttpServletResponseSupplier());
         cookieManager.initialize();
         
         sessionManager = new StorageBackedSessionManager();
         sessionManager.setSessionTimeout(Duration.ofSeconds(15));
         sessionManager.setStorageService(storageService);
         sessionManager.setIDGenerator(IdentifierGenerationStrategy.getInstance(ProviderType.SECURE));
-        sessionManager.setHttpServletRequestSupplier(new Supplier<>() {public HttpServletRequest get() {return requestProxy;}});
+        sessionManager.setHttpServletRequestSupplier(new ThreadLocalHttpServletRequestSupplier());
         sessionManager.setCookieManager(cookieManager);
         sessionManager.setId("Test Session Manager");
 
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 4146aa6a2..754946b8e 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,18 +22,13 @@ 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;
@@ -42,7 +37,8 @@ import net.shibboleth.shared.component.ComponentInitializationException;
 import net.shibboleth.shared.net.CookieManager;
 import net.shibboleth.shared.security.IdentifierGenerationStrategy;
 import net.shibboleth.shared.security.IdentifierGenerationStrategy.ProviderType;
-import net.shibboleth.shared.servlet.impl.ThreadLocalHttpServletRequestProxy;
+import net.shibboleth.shared.servlet.impl.ThreadLocalHttpServletRequestSupplier;
+import net.shibboleth.shared.servlet.impl.ThreadLocalHttpServletResponseSupplier;
 
 /** {@link StorageBackedIdPSessionSerializer} unit test. */
 @SuppressWarnings("javadoc")
@@ -66,18 +62,14 @@ public class StorageBackedIdPSessionSerializerTest {
         storageService.initialize();
 
         CookieManager cookieManager = new CookieManager();
-        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.setHttpServletRequestSupplier(new ThreadLocalHttpServletRequestSupplier());
+        cookieManager.setHttpServletResponseSupplier(new ThreadLocalHttpServletResponseSupplier());
         cookieManager.initialize();
         
         manager = new StorageBackedSessionManager();
         manager.setStorageService(storageService);
         manager.setIDGenerator(IdentifierGenerationStrategy.getInstance(ProviderType.SECURE));
-        final HttpServletRequest requestProxy = new ThreadLocalHttpServletRequestProxy();
-        manager.setHttpServletRequestSupplier(new Supplier<>() {public HttpServletRequest get() {return requestProxy;}});
         manager.setCookieManager(cookieManager);
         manager.setId("Test Session Manager");
         manager.setTrackSPSessions(true);

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


More information about the commits mailing list