Browse Source

Serialization Support of Core Components

Issue gh-16276
Josh Cummings 7 months ago
parent
commit
36716d12ba

+ 2 - 0
config/src/test/java/org/springframework/security/SpringSecurityCoreVersionSerializableTests.java

@@ -104,6 +104,7 @@ import org.springframework.security.core.SpringSecurityCoreVersion;
 import org.springframework.security.core.authority.AuthorityUtils;
 import org.springframework.security.core.context.SecurityContext;
 import org.springframework.security.core.context.SecurityContextImpl;
+import org.springframework.security.core.context.TransientSecurityContext;
 import org.springframework.security.core.session.AbstractSessionEvent;
 import org.springframework.security.core.session.ReactiveSessionInformation;
 import org.springframework.security.core.session.SessionInformation;
@@ -444,6 +445,7 @@ class SpringSecurityCoreVersionSerializableTests {
 				(r) -> new JaasAuthenticationSuccessEvent(authentication));
 		generatorByClassName.put(AbstractSessionEvent.class, (r) -> new AbstractSessionEvent(securityContext));
 		generatorByClassName.put(SecurityConfig.class, (r) -> new SecurityConfig("value"));
+		generatorByClassName.put(TransientSecurityContext.class, (r) -> new TransientSecurityContext(authentication));
 
 		// cas
 		generatorByClassName.put(CasServiceTicketAuthenticationToken.class, (r) -> {

BIN
config/src/test/resources/serialized/6.4.x/org.springframework.security.core.context.TransientSecurityContext.serialized


+ 1 - 0
core/src/main/java/org/springframework/security/core/ComparableVersion.java

@@ -405,6 +405,7 @@ class ComparableVersion implements Comparable<ComparableVersion> {
 	 * Represents a version list item. This class is used both for the global item list
 	 * and for sub-lists (which start with '-(number)' in the version specification).
 	 */
+	@SuppressWarnings("serial")
 	private static class ListItem extends ArrayList<Item> implements Item {
 
 		@Override

+ 5 - 0
core/src/main/java/org/springframework/security/core/context/TransientSecurityContext.java

@@ -16,6 +16,8 @@
 
 package org.springframework.security.core.context;
 
+import java.io.Serial;
+
 import org.springframework.security.core.Authentication;
 import org.springframework.security.core.Transient;
 
@@ -30,6 +32,9 @@ import org.springframework.security.core.Transient;
 @Transient
 public class TransientSecurityContext extends SecurityContextImpl {
 
+	@Serial
+	private static final long serialVersionUID = -7925492364422193347L;
+
 	public TransientSecurityContext() {
 	}