Skip to content

Commit e1a42db

Browse files
committed
Merge branch '6.4.x'
2 parents 177ce59 + e1e5970 commit e1a42db

16 files changed

+58
-0
lines changed

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

+31
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,13 @@
3939
import java.util.HashMap;
4040
import java.util.HashSet;
4141
import java.util.List;
42+
import java.util.Locale;
4243
import java.util.Map;
4344
import java.util.Set;
4445
import java.util.stream.Collectors;
4546
import java.util.stream.Stream;
4647

48+
import jakarta.servlet.http.Cookie;
4749
import org.apache.commons.lang3.ObjectUtils;
4850
import org.apereo.cas.client.validation.AssertionImpl;
4951
import org.instancio.Instancio;
@@ -58,9 +60,11 @@
5860
import org.springframework.beans.factory.config.BeanDefinition;
5961
import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider;
6062
import org.springframework.core.type.filter.AssignableTypeFilter;
63+
import org.springframework.mock.web.MockHttpServletRequest;
6164
import org.springframework.mock.web.MockHttpSession;
6265
import org.springframework.security.access.AccessDeniedException;
6366
import org.springframework.security.access.AuthorizationServiceException;
67+
import org.springframework.security.access.SecurityConfig;
6468
import org.springframework.security.access.intercept.RunAsUserToken;
6569
import org.springframework.security.authentication.AbstractAuthenticationToken;
6670
import org.springframework.security.authentication.AccountExpiredException;
@@ -104,13 +108,16 @@
104108
import org.springframework.security.core.authority.AuthorityUtils;
105109
import org.springframework.security.core.context.SecurityContext;
106110
import org.springframework.security.core.context.SecurityContextImpl;
111+
import org.springframework.security.core.context.TransientSecurityContext;
107112
import org.springframework.security.core.session.AbstractSessionEvent;
108113
import org.springframework.security.core.session.ReactiveSessionInformation;
109114
import org.springframework.security.core.session.SessionInformation;
110115
import org.springframework.security.core.userdetails.UserDetails;
111116
import org.springframework.security.core.userdetails.UsernameNotFoundException;
117+
import org.springframework.security.ldap.ppolicy.PasswordPolicyControl;
112118
import org.springframework.security.ldap.ppolicy.PasswordPolicyErrorStatus;
113119
import org.springframework.security.ldap.ppolicy.PasswordPolicyException;
120+
import org.springframework.security.ldap.ppolicy.PasswordPolicyResponseControl;
114121
import org.springframework.security.ldap.userdetails.LdapAuthority;
115122
import org.springframework.security.oauth2.client.ClientAuthorizationException;
116123
import org.springframework.security.oauth2.client.ClientAuthorizationRequiredException;
@@ -179,6 +186,7 @@
179186
import org.springframework.security.saml2.provider.service.authentication.TestSaml2Authentications;
180187
import org.springframework.security.saml2.provider.service.authentication.TestSaml2PostAuthenticationRequests;
181188
import org.springframework.security.saml2.provider.service.authentication.TestSaml2RedirectAuthenticationRequests;
189+
import org.springframework.security.web.PortResolverImpl;
182190
import org.springframework.security.web.authentication.WebAuthenticationDetails;
183191
import org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationToken;
184192
import org.springframework.security.web.authentication.preauth.PreAuthenticatedCredentialsNotFoundException;
@@ -194,6 +202,8 @@
194202
import org.springframework.security.web.csrf.InvalidCsrfTokenException;
195203
import org.springframework.security.web.csrf.MissingCsrfTokenException;
196204
import org.springframework.security.web.firewall.RequestRejectedException;
205+
import org.springframework.security.web.savedrequest.DefaultSavedRequest;
206+
import org.springframework.security.web.savedrequest.SimpleSavedRequest;
197207
import org.springframework.security.web.server.firewall.ServerExchangeRejectedException;
198208
import org.springframework.security.web.session.HttpSessionCreatedEvent;
199209
import org.springframework.security.web.webauthn.api.Bytes;
@@ -442,6 +452,8 @@ class SpringSecurityCoreVersionSerializableTests {
442452
generatorByClassName.put(JaasAuthenticationSuccessEvent.class,
443453
(r) -> new JaasAuthenticationSuccessEvent(authentication));
444454
generatorByClassName.put(AbstractSessionEvent.class, (r) -> new AbstractSessionEvent(securityContext));
455+
generatorByClassName.put(SecurityConfig.class, (r) -> new SecurityConfig("value"));
456+
generatorByClassName.put(TransientSecurityContext.class, (r) -> new TransientSecurityContext(authentication));
445457

446458
// cas
447459
generatorByClassName.put(CasServiceTicketAuthenticationToken.class, (r) -> {
@@ -466,6 +478,11 @@ class SpringSecurityCoreVersionSerializableTests {
466478
(r) -> new LdapAuthority("USER", "username", Map.of("attribute", List.of("value1", "value2"))));
467479
generatorByClassName.put(PasswordPolicyException.class,
468480
(r) -> new PasswordPolicyException(PasswordPolicyErrorStatus.INSUFFICIENT_PASSWORD_QUALITY));
481+
generatorByClassName.put(PasswordPolicyControl.class, (r) -> new PasswordPolicyControl(true));
482+
generatorByClassName.put(PasswordPolicyResponseControl.class, (r) -> {
483+
byte[] encodedResponse = { 0x30, 0x05, (byte) 0xA0, 0x03, (byte) 0xA0, 0x1, 0x21 };
484+
return new PasswordPolicyResponseControl(encodedResponse);
485+
});
469486

470487
// saml2-service-provider
471488
generatorByClassName.put(Saml2AuthenticationException.class,
@@ -521,6 +538,20 @@ class SpringSecurityCoreVersionSerializableTests {
521538
(r) -> new AuthenticationSwitchUserEvent(authentication, user));
522539
generatorByClassName.put(HttpSessionCreatedEvent.class,
523540
(r) -> new HttpSessionCreatedEvent(new MockHttpSession()));
541+
generatorByClassName.put(SimpleSavedRequest.class, (r) -> {
542+
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/uri");
543+
request.setQueryString("query=string");
544+
request.setScheme("https");
545+
request.setServerName("localhost");
546+
request.setServerPort(80);
547+
request.setRequestURI("/uri");
548+
request.setCookies(new Cookie("name", "value"));
549+
request.addHeader("header", "value");
550+
request.addParameter("parameter", "value");
551+
request.setPathInfo("/path");
552+
request.addPreferredLocale(Locale.ENGLISH);
553+
return new SimpleSavedRequest(new DefaultSavedRequest(request, new PortResolverImpl(), "continue"));
554+
});
524555

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

core/src/main/java/org/springframework/security/access/SecurityConfig.java

+4
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package org.springframework.security.access;
1818

19+
import java.io.Serial;
1920
import java.util.ArrayList;
2021
import java.util.List;
2122

@@ -29,6 +30,9 @@
2930
*/
3031
public class SecurityConfig implements ConfigAttribute {
3132

33+
@Serial
34+
private static final long serialVersionUID = -7138084564199804304L;
35+
3236
private final String attrib;
3337

3438
public SecurityConfig(String config) {

core/src/main/java/org/springframework/security/access/annotation/Jsr250SecurityConfig.java

+1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
* @deprecated Use {@link AuthorizationManagerBeforeMethodInterceptor#jsr250()} instead
3131
*/
3232
@Deprecated
33+
@SuppressWarnings("serial")
3334
public class Jsr250SecurityConfig extends SecurityConfig {
3435

3536
public static final Jsr250SecurityConfig PERMIT_ALL_ATTRIBUTE = new Jsr250SecurityConfig(PermitAll.class.getName());

core/src/main/java/org/springframework/security/access/expression/method/PostInvocationExpressionAttribute.java

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
* instead
2929
*/
3030
@Deprecated
31+
@SuppressWarnings("serial")
3132
class PostInvocationExpressionAttribute extends AbstractExpressionBasedMethodConfigAttribute
3233
implements PostInvocationAttribute {
3334

core/src/main/java/org/springframework/security/access/expression/method/PreInvocationExpressionAttribute.java

+1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
* instead
2929
*/
3030
@Deprecated
31+
@SuppressWarnings("serial")
3132
class PreInvocationExpressionAttribute extends AbstractExpressionBasedMethodConfigAttribute
3233
implements PreInvocationAttribute {
3334

core/src/main/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityMetadataSourceAdvisor.java

+1
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
* @deprecated Use {@link EnableMethodSecurity} or publish interceptors directly
5555
*/
5656
@Deprecated
57+
@SuppressWarnings("serial")
5758
public class MethodSecurityMetadataSourceAdvisor extends AbstractPointcutAdvisor implements BeanFactoryAware {
5859

5960
private transient MethodSecurityMetadataSource attributeSource;

core/src/main/java/org/springframework/security/core/ComparableVersion.java

+1
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,7 @@ public String toString() {
405405
* Represents a version list item. This class is used both for the global item list
406406
* and for sub-lists (which start with '-(number)' in the version specification).
407407
*/
408+
@SuppressWarnings("serial")
408409
private static class ListItem extends ArrayList<Item> implements Item {
409410

410411
@Override

core/src/main/java/org/springframework/security/core/context/TransientSecurityContext.java

+5
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package org.springframework.security.core.context;
1818

19+
import java.io.Serial;
20+
1921
import org.springframework.security.core.Authentication;
2022
import org.springframework.security.core.Transient;
2123

@@ -30,6 +32,9 @@
3032
@Transient
3133
public class TransientSecurityContext extends SecurityContextImpl {
3234

35+
@Serial
36+
private static final long serialVersionUID = -7925492364422193347L;
37+
3338
public TransientSecurityContext() {
3439
}
3540

ldap/src/main/java/org/springframework/security/ldap/ppolicy/PasswordPolicyControl.java

+5
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616

1717
package org.springframework.security.ldap.ppolicy;
1818

19+
import java.io.Serial;
20+
1921
import javax.naming.ldap.Control;
2022

2123
/**
@@ -37,6 +39,9 @@ public class PasswordPolicyControl implements Control {
3739
*/
3840
public static final String OID = "1.3.6.1.4.1.42.2.27.8.5.1";
3941

42+
@Serial
43+
private static final long serialVersionUID = 2843242715616817932L;
44+
4045
private final boolean critical;
4146

4247
/**

ldap/src/main/java/org/springframework/security/ldap/ppolicy/PasswordPolicyResponseControl.java

+4
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.io.ByteArrayInputStream;
2020
import java.io.IOException;
2121
import java.io.InputStream;
22+
import java.io.Serial;
2223

2324
import netscape.ldap.ber.stream.BERChoice;
2425
import netscape.ldap.ber.stream.BERElement;
@@ -53,6 +54,9 @@ public class PasswordPolicyResponseControl extends PasswordPolicyControl {
5354

5455
private static final Log logger = LogFactory.getLog(PasswordPolicyResponseControl.class);
5556

57+
@Serial
58+
private static final long serialVersionUID = -4592657167939234499L;
59+
5660
private final byte[] encodedValue;
5761

5862
private PasswordPolicyErrorStatus errorStatus;

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

+4
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)