Skip to content

Commit d043884

Browse files
committed
Support Serialization
Issue gh-16276
1 parent e557c72 commit d043884

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

config/src/test/java/org/springframework/security/SpringSecurityCoreVersionSerializableTests.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,13 @@
3636
import java.util.Date;
3737
import java.util.HashMap;
3838
import java.util.List;
39+
import java.util.Locale;
3940
import java.util.Map;
4041
import java.util.Set;
4142
import java.util.stream.Collectors;
4243
import java.util.stream.Stream;
4344

45+
import jakarta.servlet.http.Cookie;
4446
import org.apereo.cas.client.validation.AssertionImpl;
4547
import org.instancio.Instancio;
4648
import org.instancio.InstancioApi;
@@ -54,6 +56,7 @@
5456
import org.springframework.beans.factory.config.BeanDefinition;
5557
import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider;
5658
import org.springframework.core.type.filter.AssignableTypeFilter;
59+
import org.springframework.mock.web.MockHttpServletRequest;
5760
import org.springframework.mock.web.MockHttpSession;
5861
import org.springframework.security.access.AccessDeniedException;
5962
import org.springframework.security.access.AuthorizationServiceException;
@@ -174,6 +177,7 @@
174177
import org.springframework.security.saml2.provider.service.authentication.TestSaml2Authentications;
175178
import org.springframework.security.saml2.provider.service.authentication.TestSaml2PostAuthenticationRequests;
176179
import org.springframework.security.saml2.provider.service.authentication.TestSaml2RedirectAuthenticationRequests;
180+
import org.springframework.security.web.PortResolverImpl;
177181
import org.springframework.security.web.authentication.WebAuthenticationDetails;
178182
import org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationToken;
179183
import org.springframework.security.web.authentication.preauth.PreAuthenticatedCredentialsNotFoundException;
@@ -189,8 +193,11 @@
189193
import org.springframework.security.web.csrf.InvalidCsrfTokenException;
190194
import org.springframework.security.web.csrf.MissingCsrfTokenException;
191195
import org.springframework.security.web.firewall.RequestRejectedException;
196+
import org.springframework.security.web.savedrequest.DefaultSavedRequest;
197+
import org.springframework.security.web.savedrequest.SimpleSavedRequest;
192198
import org.springframework.security.web.server.firewall.ServerExchangeRejectedException;
193199
import org.springframework.security.web.session.HttpSessionCreatedEvent;
200+
import org.springframework.security.web.util.UrlUtils;
194201
import org.springframework.security.web.webauthn.api.Bytes;
195202
import org.springframework.security.web.webauthn.api.ImmutablePublicKeyCredentialUserEntity;
196203
import org.springframework.security.web.webauthn.api.PublicKeyCredentialUserEntity;
@@ -514,6 +521,20 @@ class SpringSecurityCoreVersionSerializableTests {
514521
(r) -> new AuthenticationSwitchUserEvent(authentication, user));
515522
generatorByClassName.put(HttpSessionCreatedEvent.class,
516523
(r) -> new HttpSessionCreatedEvent(new MockHttpSession()));
524+
generatorByClassName.put(SimpleSavedRequest.class, (r) -> {
525+
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/uri");
526+
request.setQueryString("query=string");
527+
request.setScheme("https");
528+
request.setServerName("localhost");
529+
request.setServerPort(80);
530+
request.setRequestURI("/uri");
531+
request.setCookies(new Cookie("name", "value"));
532+
request.addHeader("header", "value");
533+
request.addParameter("parameter", "value");
534+
request.setPathInfo("/path");
535+
request.addPreferredLocale(Locale.ENGLISH);
536+
return new SimpleSavedRequest(new DefaultSavedRequest(request, new PortResolverImpl(), "continue"));
537+
});
517538

518539
// webauthn
519540
generatorByClassName.put(Bytes.class, (r) -> TestBytes.get());

web/src/main/java/org/springframework/security/web/savedrequest/SimpleSavedRequest.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package org.springframework.security.web.savedrequest;
1818

19+
import java.io.Serial;
1920
import java.util.ArrayList;
2021
import java.util.Collection;
2122
import java.util.HashMap;
@@ -35,6 +36,9 @@
3536
*/
3637
public class SimpleSavedRequest implements SavedRequest {
3738

39+
@Serial
40+
private static final long serialVersionUID = 807650604272166969L;
41+
3842
private String redirectUrl;
3943

4044
private List<Cookie> cookies = new ArrayList<>();

0 commit comments

Comments
 (0)