1
0
mirror of synced 2026-08-06 02:08:01 +00:00

SEC-1700: Add fixed serializationVersionUID values to security context, authentication tokens and related classes

This commit is contained in:
Luke Taylor
2011-04-21 19:55:32 +01:00
parent ac96f27136
commit 8178371927
26 changed files with 107 additions and 7 deletions
@@ -21,6 +21,7 @@ import java.util.Collection;
import org.springframework.security.authentication.AbstractAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.SpringSecurityCoreVersion;
/**
@@ -29,6 +30,9 @@ import org.springframework.security.core.GrantedAuthority;
* @author Ben Alex
*/
public class RunAsUserToken extends AbstractAuthenticationToken {
private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;
//~ Instance fields ================================================================================================
private final Class<? extends Authentication> originalAuthentication;
@@ -1,5 +1,7 @@
package org.springframework.security.authentication;
import org.springframework.security.core.SpringSecurityCoreVersion;
import java.io.Serializable;
/**
@@ -10,6 +12,9 @@ import java.io.Serializable;
*/
@Deprecated
public class AuthenticationDetails implements Serializable {
private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;
//~ Instance fields ================================================================================================
private final String context;
@@ -18,6 +18,7 @@ package org.springframework.security.authentication;
import java.util.Collection;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.SpringSecurityCoreVersion;
/**
@@ -30,6 +31,9 @@ import org.springframework.security.core.GrantedAuthority;
* @author Luke Taylor
*/
public class RememberMeAuthenticationToken extends AbstractAuthenticationToken {
private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;
//~ Instance fields ================================================================================================
private final Object principal;
@@ -18,6 +18,7 @@ package org.springframework.security.authentication;
import java.util.Collection;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.SpringSecurityCoreVersion;
/**
@@ -31,6 +32,9 @@ import org.springframework.security.core.GrantedAuthority;
* @author Ben Alex
*/
public class UsernamePasswordAuthenticationToken extends AbstractAuthenticationToken {
private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;
//~ Instance fields ================================================================================================
private final Object principal;
@@ -20,6 +20,7 @@ import java.util.List;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.SpringSecurityCoreVersion;
import javax.security.auth.login.LoginContext;
@@ -30,6 +31,9 @@ import javax.security.auth.login.LoginContext;
* @author Ray Krueger
*/
public class JaasAuthenticationToken extends UsernamePasswordAuthenticationToken {
private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;
//~ Instance fields ================================================================================================
private final transient LoginContext loginContext;
@@ -16,6 +16,7 @@
package org.springframework.security.authentication.jaas;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.SpringSecurityCoreVersion;
import java.security.Principal;
@@ -29,13 +30,12 @@ import java.security.Principal;
* @see AuthorityGranter
*/
public final class JaasGrantedAuthority implements GrantedAuthority {
//~ Instance fields ================================================================================================
private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;
private final String role;
private final Principal principal;
//~ Constructors ===================================================================================================
public JaasGrantedAuthority(String role, Principal principal) {
this.role = role;
this.principal = principal;
@@ -16,6 +16,7 @@
package org.springframework.security.authentication.rcp;
import org.springframework.core.NestedRuntimeException;
import org.springframework.security.core.SpringSecurityCoreVersion;
/**
* Thrown if a <code>RemoteAuthenticationManager</code> cannot validate the presented authentication request.
@@ -27,6 +28,9 @@ import org.springframework.core.NestedRuntimeException;
* @author Ben Alex
*/
public class RemoteAuthenticationException extends NestedRuntimeException {
private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;
//~ Constructors ===================================================================================================
/**
@@ -12,13 +12,20 @@ import org.springframework.core.SpringVersion;
public class SpringSecurityCoreVersion {
private static final Log logger = LogFactory.getLog(SpringSecurityCoreVersion.class);
/**
* Global Serialization value for Spring Security classes.
*
* N.B. Classes are not intended to be serializable between different versions.
* See SEC-1709 for why we still need a serial version.
*/
public static final long SERIAL_VERSION_UID = 310L;
static {
// Check Spring Compatibility
String springVersion = SpringVersion.getVersion();
String version = getVersion();
if (springVersion != null) {
// TODO: Generate version class and information dynamically from a template in the build file
logger.info("You are running with Spring Security Core " + version);
if (!springVersion.startsWith("3")) {
logger.error("Spring Major version '3' expected, but you are running with version: "
@@ -3,10 +3,14 @@ package org.springframework.security.core.authority;
import java.util.*;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.SpringSecurityCoreVersion;
import org.springframework.util.Assert;
@Deprecated
public class GrantedAuthoritiesContainerImpl implements MutableGrantedAuthoritiesContainer {
private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;
private List<GrantedAuthority> authorities;
public void setGrantedAuthorities(Collection<? extends GrantedAuthority> newAuthorities) {
@@ -17,6 +17,7 @@ package org.springframework.security.core.authority;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.SpringSecurityCoreVersion;
import org.springframework.util.Assert;
@@ -31,6 +32,9 @@ import org.springframework.util.Assert;
*/
@Deprecated
public class GrantedAuthorityImpl implements GrantedAuthority {
private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;
//~ Instance fields ================================================================================================
private final String role;
@@ -1,6 +1,7 @@
package org.springframework.security.core.authority;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.SpringSecurityCoreVersion;
import org.springframework.util.Assert;
/**
@@ -13,6 +14,9 @@ import org.springframework.util.Assert;
* @author Luke Taylor
*/
public final class SimpleGrantedAuthority implements GrantedAuthority {
private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;
private final String role;
public SimpleGrantedAuthority(String role) {
@@ -16,6 +16,7 @@
package org.springframework.security.core.context;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.SpringSecurityCoreVersion;
/**
@@ -26,6 +27,9 @@ import org.springframework.security.core.Authentication;
* @author Ben Alex
*/
public class SecurityContextImpl implements SecurityContext {
private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;
//~ Instance fields ================================================================================================
private Authentication authentication;
@@ -15,6 +15,7 @@
package org.springframework.security.core.session;
import org.springframework.security.core.SpringSecurityCoreVersion;
import org.springframework.util.Assert;
import java.util.Date;
@@ -35,6 +36,9 @@ import java.io.Serializable;
* @author Ben Alex
*/
public class SessionInformation implements Serializable {
private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;
//~ Instance fields ================================================================================================
private Date lastRequest;
@@ -25,6 +25,7 @@ import java.util.TreeSet;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.CredentialsContainer;
import org.springframework.security.core.SpringSecurityCoreVersion;
import org.springframework.util.Assert;
/**
@@ -43,6 +44,9 @@ import org.springframework.util.Assert;
* @author Luke Taylor
*/
public class User implements UserDetails, CredentialsContainer {
private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;
//~ Instance fields ================================================================================================
private String password;
private final String username;
@@ -149,6 +153,8 @@ public class User implements UserDetails, CredentialsContainer {
}
private static class AuthorityComparator implements Comparator<GrantedAuthority>, Serializable {
private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;
public int compare(GrantedAuthority g1, GrantedAuthority g2) {
// Neither should ever be null as each entry is checked before adding it to the set.
// If the authority is null, it is a custom authority and should precede others.
@@ -3,6 +3,7 @@ package org.springframework.security.provisioning;
import java.util.Collection;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.SpringSecurityCoreVersion;
import org.springframework.security.core.userdetails.UserDetails;
/**
@@ -11,6 +12,9 @@ import org.springframework.security.core.userdetails.UserDetails;
* @since 3.1
*/
class MutableUser implements MutableUserDetails {
private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;
private String password;
private final UserDetails delegate;
@@ -15,6 +15,7 @@
package org.springframework.security.remoting.rmi;
import org.springframework.security.core.SpringSecurityCoreVersion;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;
@@ -43,7 +44,8 @@ import java.lang.reflect.InvocationTargetException;
* @author Ben Alex
*/
public class ContextPropagatingRemoteInvocation extends RemoteInvocation {
//~ Static fields/initializers =====================================================================================
private static final long serialVersionUID = SpringSecurityCoreVersion.SERIAL_VERSION_UID;
private static final Log logger = LogFactory.getLog(ContextPropagatingRemoteInvocation.class);