Przeglądaj źródła

Add missing @Override annotations

This commit also adds MissingOverrideCheck module to Checkstyle configuration.
Johnny Lim 7 lat temu
rodzic
commit
99df632f24
44 zmienionych plików z 184 dodań i 4 usunięć
  1. 9 0
      acl/src/main/java/org/springframework/security/acls/domain/AccessControlEntryImpl.java
  2. 17 0
      acl/src/main/java/org/springframework/security/acls/domain/AclImpl.java
  3. 3 0
      acl/src/main/java/org/springframework/security/acls/domain/GrantedAuthoritySid.java
  4. 5 0
      acl/src/main/java/org/springframework/security/acls/domain/ObjectIdentityImpl.java
  5. 3 0
      acl/src/main/java/org/springframework/security/acls/domain/PrincipalSid.java
  6. 4 0
      cas/src/main/java/org/springframework/security/cas/authentication/CasAuthenticationToken.java
  7. 5 1
      config/src/main/java/org/springframework/security/config/http/HttpSecurityBeanDefinitionParser.java
  8. 4 0
      core/src/main/java/org/springframework/security/access/SecurityConfig.java
  9. 3 0
      core/src/main/java/org/springframework/security/access/intercept/RunAsUserToken.java
  10. 4 0
      core/src/main/java/org/springframework/security/access/method/DelegatingMethodSecurityMetadataSource.java
  11. 7 0
      core/src/main/java/org/springframework/security/access/method/MapBasedMethodSecurityMetadataSource.java
  12. 3 0
      core/src/main/java/org/springframework/security/authentication/AnonymousAuthenticationToken.java
  13. 3 0
      core/src/main/java/org/springframework/security/authentication/RememberMeAuthenticationToken.java
  14. 4 0
      core/src/main/java/org/springframework/security/authentication/jaas/JaasGrantedAuthority.java
  15. 2 0
      core/src/main/java/org/springframework/security/concurrent/DelegatingSecurityContextCallable.java
  16. 2 0
      core/src/main/java/org/springframework/security/concurrent/DelegatingSecurityContextRunnable.java
  17. 17 1
      core/src/main/java/org/springframework/security/core/ComparableVersion.java
  18. 4 0
      core/src/main/java/org/springframework/security/core/authority/SimpleGrantedAuthority.java
  19. 1 0
      core/src/main/java/org/springframework/security/core/context/SecurityContextHolder.java
  20. 5 0
      core/src/main/java/org/springframework/security/core/context/SecurityContextImpl.java
  21. 6 0
      core/src/main/java/org/springframework/security/core/token/DefaultToken.java
  22. 4 0
      core/src/main/java/org/springframework/security/util/InMemoryResource.java
  23. 4 1
      etc/checkstyle/checkstyle.xml
  24. 2 0
      ldap/src/main/java/org/springframework/security/ldap/search/FilterBasedLdapUserSearch.java
  25. 1 0
      ldap/src/main/java/org/springframework/security/ldap/userdetails/LdapAuthority.java
  26. 11 0
      ldap/src/main/java/org/springframework/security/ldap/userdetails/LdapUserDetailsImpl.java
  27. 2 0
      messaging/src/main/java/org/springframework/security/messaging/util/matcher/MessageMatcher.java
  28. 3 1
      messaging/src/main/java/org/springframework/security/messaging/util/matcher/SimpMessageTypeMatcher.java
  29. 1 0
      openid/src/main/java/org/springframework/security/openid/OpenIDAttribute.java
  30. 1 0
      openid/src/main/java/org/springframework/security/openid/OpenIDAuthenticationStatus.java
  31. 1 0
      samples/xml/contacts/src/main/java/sample/contact/Contact.java
  32. 1 0
      samples/xml/dms/src/main/java/sample/dms/Directory.java
  33. 1 0
      samples/xml/dms/src/main/java/sample/dms/File.java
  34. 7 0
      samples/xml/jaas/src/main/java/samples/jaas/UsernameEqualsPasswordLoginModule.java
  35. 1 0
      samples/xml/tutorial/src/main/java/bigbank/Account.java
  36. 4 0
      web/src/main/java/org/springframework/security/web/FilterChainProxy.java
  37. 3 0
      web/src/main/java/org/springframework/security/web/access/intercept/RequestKey.java
  38. 1 0
      web/src/main/java/org/springframework/security/web/authentication/DelegatingAuthenticationFailureHandler.java
  39. 3 0
      web/src/main/java/org/springframework/security/web/authentication/WebAuthenticationDetails.java
  40. 2 0
      web/src/main/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetails.java
  41. 5 0
      web/src/main/java/org/springframework/security/web/authentication/rememberme/AbstractRememberMeServices.java
  42. 4 0
      web/src/main/java/org/springframework/security/web/authentication/switchuser/SwitchUserGrantedAuthority.java
  43. 2 0
      web/src/main/java/org/springframework/security/web/header/Header.java
  44. 9 0
      web/src/main/java/org/springframework/security/web/savedrequest/DefaultSavedRequest.java

+ 9 - 0
acl/src/main/java/org/springframework/security/acls/domain/AccessControlEntryImpl.java

@@ -64,6 +64,7 @@ public class AccessControlEntryImpl implements AccessControlEntry,
 	// ~ Methods
 	// ========================================================================================================
 
+	@Override
 	public boolean equals(Object arg0) {
 		if (!(arg0 instanceof AccessControlEntryImpl)) {
 			return false;
@@ -140,30 +141,37 @@ public class AccessControlEntryImpl implements AccessControlEntry,
 		return result;
 	}
 
+	@Override
 	public Acl getAcl() {
 		return acl;
 	}
 
+	@Override
 	public Serializable getId() {
 		return id;
 	}
 
+	@Override
 	public Permission getPermission() {
 		return permission;
 	}
 
+	@Override
 	public Sid getSid() {
 		return sid;
 	}
 
+	@Override
 	public boolean isAuditFailure() {
 		return auditFailure;
 	}
 
+	@Override
 	public boolean isAuditSuccess() {
 		return auditSuccess;
 	}
 
+	@Override
 	public boolean isGranting() {
 		return granting;
 	}
@@ -181,6 +189,7 @@ public class AccessControlEntryImpl implements AccessControlEntry,
 		this.permission = permission;
 	}
 
+	@Override
 	public String toString() {
 		StringBuilder sb = new StringBuilder();
 		sb.append("AccessControlEntryImpl[");

+ 17 - 0
acl/src/main/java/org/springframework/security/acls/domain/AclImpl.java

@@ -123,6 +123,7 @@ public class AclImpl implements Acl, MutableAcl, AuditableAcl, OwnershipAcl {
 	// ~ Methods
 	// ========================================================================================================
 
+	@Override
 	public void deleteAce(int aceIndex) throws NotFoundException {
 		aclAuthorizationStrategy.securityCheck(this,
 				AclAuthorizationStrategy.CHANGE_GENERAL);
@@ -144,6 +145,7 @@ public class AclImpl implements Acl, MutableAcl, AuditableAcl, OwnershipAcl {
 		}
 	}
 
+	@Override
 	public void insertAce(int atIndexLocation, Permission permission, Sid sid,
 			boolean granting) throws NotFoundException {
 		aclAuthorizationStrategy.securityCheck(this,
@@ -167,20 +169,24 @@ public class AclImpl implements Acl, MutableAcl, AuditableAcl, OwnershipAcl {
 		}
 	}
 
+	@Override
 	public List<AccessControlEntry> getEntries() {
 		// Can safely return AccessControlEntry directly, as they're immutable outside the
 		// ACL package
 		return new ArrayList<AccessControlEntry>(aces);
 	}
 
+	@Override
 	public Serializable getId() {
 		return this.id;
 	}
 
+	@Override
 	public ObjectIdentity getObjectIdentity() {
 		return objectIdentity;
 	}
 
+	@Override
 	public boolean isEntriesInheriting() {
 		return entriesInheriting;
 	}
@@ -192,6 +198,7 @@ public class AclImpl implements Acl, MutableAcl, AuditableAcl, OwnershipAcl {
 	 * ACL was only loaded for a subset of SIDs
 	 * @see DefaultPermissionGrantingStrategy
 	 */
+	@Override
 	public boolean isGranted(List<Permission> permission, List<Sid> sids,
 			boolean administrativeMode) throws NotFoundException, UnloadedSidException {
 		Assert.notEmpty(permission, "Permissions required");
@@ -205,6 +212,7 @@ public class AclImpl implements Acl, MutableAcl, AuditableAcl, OwnershipAcl {
 				administrativeMode);
 	}
 
+	@Override
 	public boolean isSidLoaded(List<Sid> sids) {
 		// If loadedSides is null, this indicates all SIDs were loaded
 		// Also return true if the caller didn't specify a SID to find
@@ -233,12 +241,14 @@ public class AclImpl implements Acl, MutableAcl, AuditableAcl, OwnershipAcl {
 		return true;
 	}
 
+	@Override
 	public void setEntriesInheriting(boolean entriesInheriting) {
 		aclAuthorizationStrategy.securityCheck(this,
 				AclAuthorizationStrategy.CHANGE_GENERAL);
 		this.entriesInheriting = entriesInheriting;
 	}
 
+	@Override
 	public void setOwner(Sid newOwner) {
 		aclAuthorizationStrategy.securityCheck(this,
 				AclAuthorizationStrategy.CHANGE_OWNERSHIP);
@@ -246,10 +256,12 @@ public class AclImpl implements Acl, MutableAcl, AuditableAcl, OwnershipAcl {
 		this.owner = newOwner;
 	}
 
+	@Override
 	public Sid getOwner() {
 		return this.owner;
 	}
 
+	@Override
 	public void setParent(Acl newParent) {
 		aclAuthorizationStrategy.securityCheck(this,
 				AclAuthorizationStrategy.CHANGE_GENERAL);
@@ -258,10 +270,12 @@ public class AclImpl implements Acl, MutableAcl, AuditableAcl, OwnershipAcl {
 		this.parentAcl = newParent;
 	}
 
+	@Override
 	public Acl getParentAcl() {
 		return parentAcl;
 	}
 
+	@Override
 	public void updateAce(int aceIndex, Permission permission) throws NotFoundException {
 		aclAuthorizationStrategy.securityCheck(this,
 				AclAuthorizationStrategy.CHANGE_GENERAL);
@@ -273,6 +287,7 @@ public class AclImpl implements Acl, MutableAcl, AuditableAcl, OwnershipAcl {
 		}
 	}
 
+	@Override
 	public void updateAuditing(int aceIndex, boolean auditSuccess, boolean auditFailure) {
 		aclAuthorizationStrategy.securityCheck(this,
 				AclAuthorizationStrategy.CHANGE_AUDITING);
@@ -285,6 +300,7 @@ public class AclImpl implements Acl, MutableAcl, AuditableAcl, OwnershipAcl {
 		}
 	}
 
+	@Override
 	public boolean equals(Object obj) {
 		if (obj instanceof AclImpl) {
 			AclImpl rhs = (AclImpl) obj;
@@ -341,6 +357,7 @@ public class AclImpl implements Acl, MutableAcl, AuditableAcl, OwnershipAcl {
 		return result;
 	}
 
+	@Override
 	public String toString() {
 		StringBuilder sb = new StringBuilder();
 		sb.append("AclImpl[");

+ 3 - 0
acl/src/main/java/org/springframework/security/acls/domain/GrantedAuthoritySid.java

@@ -55,6 +55,7 @@ public class GrantedAuthoritySid implements Sid {
 	// ~ Methods
 	// ========================================================================================================
 
+	@Override
 	public boolean equals(Object object) {
 		if ((object == null) || !(object instanceof GrantedAuthoritySid)) {
 			return false;
@@ -66,6 +67,7 @@ public class GrantedAuthoritySid implements Sid {
 				this.getGrantedAuthority());
 	}
 
+	@Override
 	public int hashCode() {
 		return this.getGrantedAuthority().hashCode();
 	}
@@ -74,6 +76,7 @@ public class GrantedAuthoritySid implements Sid {
 		return grantedAuthority;
 	}
 
+	@Override
 	public String toString() {
 		return "GrantedAuthoritySid[" + this.grantedAuthority + "]";
 	}

+ 5 - 0
acl/src/main/java/org/springframework/security/acls/domain/ObjectIdentityImpl.java

@@ -110,6 +110,7 @@ public class ObjectIdentityImpl implements ObjectIdentity {
 	 *
 	 * @return <code>true</code> if the presented object matches this object
 	 */
+	@Override
 	public boolean equals(Object arg0) {
 		if (arg0 == null || !(arg0 instanceof ObjectIdentityImpl)) {
 			return false;
@@ -134,10 +135,12 @@ public class ObjectIdentityImpl implements ObjectIdentity {
 		return type.equals(other.type);
 	}
 
+	@Override
 	public Serializable getIdentifier() {
 		return identifier;
 	}
 
+	@Override
 	public String getType() {
 		return type;
 	}
@@ -147,6 +150,7 @@ public class ObjectIdentityImpl implements ObjectIdentity {
 	 *
 	 * @return the hash
 	 */
+	@Override
 	public int hashCode() {
 		int code = 31;
 		code ^= this.type.hashCode();
@@ -155,6 +159,7 @@ public class ObjectIdentityImpl implements ObjectIdentity {
 		return code;
 	}
 
+	@Override
 	public String toString() {
 		StringBuilder sb = new StringBuilder();
 		sb.append(this.getClass().getName()).append("[");

+ 3 - 0
acl/src/main/java/org/springframework/security/acls/domain/PrincipalSid.java

@@ -60,6 +60,7 @@ public class PrincipalSid implements Sid {
 	// ~ Methods
 	// ========================================================================================================
 
+	@Override
 	public boolean equals(Object object) {
 		if ((object == null) || !(object instanceof PrincipalSid)) {
 			return false;
@@ -70,6 +71,7 @@ public class PrincipalSid implements Sid {
 		return ((PrincipalSid) object).getPrincipal().equals(this.getPrincipal());
 	}
 
+	@Override
 	public int hashCode() {
 		return this.getPrincipal().hashCode();
 	}
@@ -78,6 +80,7 @@ public class PrincipalSid implements Sid {
 		return principal;
 	}
 
+	@Override
 	public String toString() {
 		return "PrincipalSid[" + this.principal + "]";
 	}

+ 4 - 0
cas/src/main/java/org/springframework/security/cas/authentication/CasAuthenticationToken.java

@@ -122,6 +122,7 @@ public class CasAuthenticationToken extends AbstractAuthenticationToken implemen
 		return key.hashCode();
 	}
 
+	@Override
 	public boolean equals(final Object obj) {
 		if (!super.equals(obj)) {
 			return false;
@@ -155,6 +156,7 @@ public class CasAuthenticationToken extends AbstractAuthenticationToken implemen
 		return result;
 	}
 
+	@Override
 	public Object getCredentials() {
 		return this.credentials;
 	}
@@ -163,6 +165,7 @@ public class CasAuthenticationToken extends AbstractAuthenticationToken implemen
 		return this.keyHash;
 	}
 
+	@Override
 	public Object getPrincipal() {
 		return this.principal;
 	}
@@ -175,6 +178,7 @@ public class CasAuthenticationToken extends AbstractAuthenticationToken implemen
 		return userDetails;
 	}
 
+	@Override
 	public String toString() {
 		StringBuilder sb = new StringBuilder();
 		sb.append(super.toString());

+ 5 - 1
config/src/main/java/org/springframework/security/config/http/HttpSecurityBeanDefinitionParser.java

@@ -86,6 +86,7 @@ public class HttpSecurityBeanDefinitionParser implements BeanDefinitionParser {
 	 * "universal" match pattern mapped to the list of beans which have been parsed here.
 	 */
 	@SuppressWarnings({ "unchecked" })
+	@Override
 	public BeanDefinition parse(Element element, ParserContext pc) {
 		CompositeComponentDefinition compositeDef = new CompositeComponentDefinition(
 				element.getTagName(), pc.extractSource(element));
@@ -424,10 +425,12 @@ class OrderDecorator implements Ordered {
 		this.order = order;
 	}
 
+	@Override
 	public int getOrder() {
 		return order;
 	}
 
+	@Override
 	public String toString() {
 		return bean + ", order = " + order;
 	}
@@ -443,6 +446,7 @@ class OrderDecorator implements Ordered {
  * @author Rob Winch
  */
 final class ClearCredentialsMethodInvokingFactoryBean extends MethodInvokingFactoryBean {
+	@Override
 	public void afterPropertiesSet() throws Exception {
 		boolean isTargetProviderManager = getTargetObject() instanceof ProviderManager;
 		if (!isTargetProviderManager) {
@@ -465,4 +469,4 @@ final class ClearCredentialsMethodInvokingFactoryBean extends MethodInvokingFact
 	public boolean isEraseCredentialsAfterAuthentication() {
 		return false;
 	}
-}
+}

+ 4 - 0
core/src/main/java/org/springframework/security/access/SecurityConfig.java

@@ -44,6 +44,7 @@ public class SecurityConfig implements ConfigAttribute {
 	// ~ Methods
 	// ========================================================================================================
 
+	@Override
 	public boolean equals(Object obj) {
 		if (obj instanceof ConfigAttribute) {
 			ConfigAttribute attr = (ConfigAttribute) obj;
@@ -54,14 +55,17 @@ public class SecurityConfig implements ConfigAttribute {
 		return false;
 	}
 
+	@Override
 	public String getAttribute() {
 		return this.attrib;
 	}
 
+	@Override
 	public int hashCode() {
 		return this.attrib.hashCode();
 	}
 
+	@Override
 	public String toString() {
 		return this.attrib;
 	}

+ 3 - 0
core/src/main/java/org/springframework/security/access/intercept/RunAsUserToken.java

@@ -58,6 +58,7 @@ public class RunAsUserToken extends AbstractAuthenticationToken {
 	// ~ Methods
 	// ========================================================================================================
 
+	@Override
 	public Object getCredentials() {
 		return this.credentials;
 	}
@@ -70,10 +71,12 @@ public class RunAsUserToken extends AbstractAuthenticationToken {
 		return this.originalAuthentication;
 	}
 
+	@Override
 	public Object getPrincipal() {
 		return this.principal;
 	}
 
+	@Override
 	public String toString() {
 		StringBuilder sb = new StringBuilder(super.toString());
 		String className = this.originalAuthentication == null ? null

+ 4 - 0
core/src/main/java/org/springframework/security/access/method/DelegatingMethodSecurityMetadataSource.java

@@ -93,6 +93,7 @@ public final class DelegatingMethodSecurityMetadataSource extends
 		}
 	}
 
+	@Override
 	public Collection<ConfigAttribute> getAllConfigAttributes() {
 		Set<ConfigAttribute> set = new HashSet<ConfigAttribute>();
 		for (MethodSecurityMetadataSource s : methodSecurityMetadataSources) {
@@ -120,17 +121,20 @@ public final class DelegatingMethodSecurityMetadataSource extends
 			this.targetClass = targetClass;
 		}
 
+		@Override
 		public boolean equals(Object other) {
 			DefaultCacheKey otherKey = (DefaultCacheKey) other;
 			return (this.method.equals(otherKey.method) && ObjectUtils.nullSafeEquals(
 					this.targetClass, otherKey.targetClass));
 		}
 
+		@Override
 		public int hashCode() {
 			return this.method.hashCode() * 21
 					+ (this.targetClass != null ? this.targetClass.hashCode() : 0);
 		}
 
+		@Override
 		public String toString() {
 			return "CacheKey[" + (targetClass == null ? "-" : targetClass.getName())
 					+ "; " + method + "]";

+ 7 - 0
core/src/main/java/org/springframework/security/access/method/MapBasedMethodSecurityMetadataSource.java

@@ -75,6 +75,7 @@ public class MapBasedMethodSecurityMetadataSource extends
 	/**
 	 * Implementation does not support class-level attributes.
 	 */
+	@Override
 	protected Collection<ConfigAttribute> findAttributes(Class<?> clazz) {
 		return null;
 	}
@@ -83,6 +84,7 @@ public class MapBasedMethodSecurityMetadataSource extends
 	 * Will walk the method inheritance tree to find the most specific declaration
 	 * applicable.
 	 */
+	@Override
 	protected Collection<ConfigAttribute> findAttributes(Method method,
 			Class<?> targetClass) {
 		if (targetClass == null) {
@@ -232,6 +234,7 @@ public class MapBasedMethodSecurityMetadataSource extends
 	 *
 	 * @return the attributes explicitly defined against this bean
 	 */
+	@Override
 	public Collection<ConfigAttribute> getAllConfigAttributes() {
 		Set<ConfigAttribute> allAttributes = new HashSet<ConfigAttribute>();
 
@@ -258,6 +261,7 @@ public class MapBasedMethodSecurityMetadataSource extends
 						.substring(1, mappedName.length())));
 	}
 
+	@Override
 	public void setBeanClassLoader(ClassLoader beanClassLoader) {
 		Assert.notNull(beanClassLoader, "Bean class loader required");
 		this.beanClassLoader = beanClassLoader;
@@ -290,6 +294,7 @@ public class MapBasedMethodSecurityMetadataSource extends
 			this.registeredJavaType = registeredJavaType;
 		}
 
+		@Override
 		public boolean equals(Object obj) {
 			if (this == obj) {
 				return true;
@@ -302,10 +307,12 @@ public class MapBasedMethodSecurityMetadataSource extends
 			return false;
 		}
 
+		@Override
 		public int hashCode() {
 			return method.hashCode() * registeredJavaType.hashCode();
 		}
 
+		@Override
 		public String toString() {
 			return "RegisteredMethod[" + registeredJavaType.getName() + "; " + method
 					+ "]";

+ 3 - 0
core/src/main/java/org/springframework/security/authentication/AnonymousAuthenticationToken.java

@@ -82,6 +82,7 @@ public class AnonymousAuthenticationToken extends AbstractAuthenticationToken im
 		return key.hashCode();
 	}
 
+	@Override
 	public boolean equals(Object obj) {
 		if (!super.equals(obj)) {
 			return false;
@@ -112,6 +113,7 @@ public class AnonymousAuthenticationToken extends AbstractAuthenticationToken im
 	 *
 	 * @return an empty String
 	 */
+	@Override
 	public Object getCredentials() {
 		return "";
 	}
@@ -120,6 +122,7 @@ public class AnonymousAuthenticationToken extends AbstractAuthenticationToken im
 		return this.keyHash;
 	}
 
+	@Override
 	public Object getPrincipal() {
 		return this.principal;
 	}

+ 3 - 0
core/src/main/java/org/springframework/security/authentication/RememberMeAuthenticationToken.java

@@ -90,6 +90,7 @@ public class RememberMeAuthenticationToken extends AbstractAuthenticationToken {
 	 *
 	 * @return an empty String
 	 */
+	@Override
 	public Object getCredentials() {
 		return "";
 	}
@@ -98,10 +99,12 @@ public class RememberMeAuthenticationToken extends AbstractAuthenticationToken {
 		return this.keyHash;
 	}
 
+	@Override
 	public Object getPrincipal() {
 		return this.principal;
 	}
 
+	@Override
 	public boolean equals(Object obj) {
 		if (!super.equals(obj)) {
 			return false;

+ 4 - 0
core/src/main/java/org/springframework/security/authentication/jaas/JaasGrantedAuthority.java

@@ -48,14 +48,17 @@ public final class JaasGrantedAuthority implements GrantedAuthority {
 		return principal;
 	}
 
+	@Override
 	public String getAuthority() {
 		return role;
 	}
 
+	@Override
 	public int hashCode() {
 		return 31 ^ principal.hashCode() ^ role.hashCode();
 	}
 
+	@Override
 	public boolean equals(Object obj) {
 		if (this == obj) {
 			return true;
@@ -69,6 +72,7 @@ public final class JaasGrantedAuthority implements GrantedAuthority {
 		return false;
 	}
 
+	@Override
 	public String toString() {
 		return "Jaas Authority [" + role + "," + principal + "]";
 	}

+ 2 - 0
core/src/main/java/org/springframework/security/concurrent/DelegatingSecurityContextCallable.java

@@ -78,6 +78,7 @@ public final class DelegatingSecurityContextCallable<V> implements Callable<V> {
 		this(delegate, SecurityContextHolder.getContext());
 	}
 
+	@Override
 	public V call() throws Exception {
 		this.originalSecurityContext = SecurityContextHolder.getContext();
 
@@ -96,6 +97,7 @@ public final class DelegatingSecurityContextCallable<V> implements Callable<V> {
 		}
 	}
 
+	@Override
 	public String toString() {
 		return delegate.toString();
 	}

+ 2 - 0
core/src/main/java/org/springframework/security/concurrent/DelegatingSecurityContextRunnable.java

@@ -75,6 +75,7 @@ public final class DelegatingSecurityContextRunnable implements Runnable {
 		this(delegate, SecurityContextHolder.getContext());
 	}
 
+	@Override
 	public void run() {
 		this.originalSecurityContext = SecurityContextHolder.getContext();
 
@@ -93,6 +94,7 @@ public final class DelegatingSecurityContextRunnable implements Runnable {
 		}
 	}
 
+	@Override
 	public String toString() {
 		return delegate.toString();
 	}

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

@@ -121,14 +121,17 @@ class ComparableVersion implements Comparable<ComparableVersion> {
 			this.value = new BigInteger(str);
 		}
 
+		@Override
 		public int getType() {
 			return INTEGER_ITEM;
 		}
 
+		@Override
 		public boolean isNull() {
 			return BigInteger_ZERO.equals(value);
 		}
 
+		@Override
 		public int compareTo(Item item) {
 			if (item == null) {
 				return BigInteger_ZERO.equals(value) ? 0 : 1; // 1.0 == 1, 1.1 > 1
@@ -149,6 +152,7 @@ class ComparableVersion implements Comparable<ComparableVersion> {
 			}
 		}
 
+		@Override
 		public String toString() {
 			return value.toString();
 		}
@@ -198,10 +202,12 @@ class ComparableVersion implements Comparable<ComparableVersion> {
 			this.value = ALIASES.getProperty(value, value);
 		}
 
+		@Override
 		public int getType() {
 			return STRING_ITEM;
 		}
 
+		@Override
 		public boolean isNull() {
 			return (comparableQualifier(value).compareTo(RELEASE_VERSION_INDEX) == 0);
 		}
@@ -226,6 +232,7 @@ class ComparableVersion implements Comparable<ComparableVersion> {
 			return i == -1 ? (_QUALIFIERS.size() + "-" + qualifier) : String.valueOf(i);
 		}
 
+		@Override
 		public int compareTo(Item item) {
 			if (item == null) {
 				// 1-rc < 1, 1-ga > 1
@@ -247,6 +254,7 @@ class ComparableVersion implements Comparable<ComparableVersion> {
 			}
 		}
 
+		@Override
 		public String toString() {
 			return value;
 		}
@@ -257,10 +265,12 @@ class ComparableVersion implements Comparable<ComparableVersion> {
 	 * and for sub-lists (which start with '-(number)' in the version specification).
 	 */
 	private static class ListItem extends ArrayList<Item> implements Item {
+		@Override
 		public int getType() {
 			return LIST_ITEM;
 		}
 
+		@Override
 		public boolean isNull() {
 			return (size() == 0);
 		}
@@ -278,6 +288,7 @@ class ComparableVersion implements Comparable<ComparableVersion> {
 			}
 		}
 
+		@Override
 		public int compareTo(Item item) {
 			if (item == null) {
 				if (size() == 0) {
@@ -316,6 +327,7 @@ class ComparableVersion implements Comparable<ComparableVersion> {
 			}
 		}
 
+		@Override
 		public String toString() {
 			StringBuilder buffer = new StringBuilder("(");
 			for (Iterator<Item> iter = iterator(); iter.hasNext();) {
@@ -418,20 +430,24 @@ class ComparableVersion implements Comparable<ComparableVersion> {
 		return isDigit ? new IntegerItem(buf) : new StringItem(buf, false);
 	}
 
+	@Override
 	public int compareTo(ComparableVersion o) {
 		return items.compareTo(o.items);
 	}
 
+	@Override
 	public String toString() {
 		return value;
 	}
 
+	@Override
 	public boolean equals(Object o) {
 		return (o instanceof ComparableVersion)
 				&& canonical.equals(((ComparableVersion) o).canonical);
 	}
 
+	@Override
 	public int hashCode() {
 		return canonical.hashCode();
 	}
-}
+}

+ 4 - 0
core/src/main/java/org/springframework/security/core/authority/SimpleGrantedAuthority.java

@@ -39,10 +39,12 @@ public final class SimpleGrantedAuthority implements GrantedAuthority {
 		this.role = role;
 	}
 
+	@Override
 	public String getAuthority() {
 		return role;
 	}
 
+	@Override
 	public boolean equals(Object obj) {
 		if (this == obj) {
 			return true;
@@ -55,10 +57,12 @@ public final class SimpleGrantedAuthority implements GrantedAuthority {
 		return false;
 	}
 
+	@Override
 	public int hashCode() {
 		return this.role.hashCode();
 	}
 
+	@Override
 	public String toString() {
 		return this.role;
 	}

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

@@ -161,6 +161,7 @@ public class SecurityContextHolder {
 		return strategy.createEmptyContext();
 	}
 
+	@Override
 	public String toString() {
 		return "SecurityContextHolder[strategy='" + strategyName + "'; initializeCount="
 				+ initializeCount + "]";

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

@@ -44,6 +44,7 @@ public class SecurityContextImpl implements SecurityContext {
 	// ~ Methods
 	// ========================================================================================================
 
+	@Override
 	public boolean equals(Object obj) {
 		if (obj instanceof SecurityContextImpl) {
 			SecurityContextImpl test = (SecurityContextImpl) obj;
@@ -61,10 +62,12 @@ public class SecurityContextImpl implements SecurityContext {
 		return false;
 	}
 
+	@Override
 	public Authentication getAuthentication() {
 		return authentication;
 	}
 
+	@Override
 	public int hashCode() {
 		if (this.authentication == null) {
 			return -1;
@@ -74,10 +77,12 @@ public class SecurityContextImpl implements SecurityContext {
 		}
 	}
 
+	@Override
 	public void setAuthentication(Authentication authentication) {
 		this.authentication = authentication;
 	}
 
+	@Override
 	public String toString() {
 		StringBuilder sb = new StringBuilder();
 		sb.append(super.toString());

+ 6 - 0
core/src/main/java/org/springframework/security/core/token/DefaultToken.java

@@ -38,18 +38,22 @@ public class DefaultToken implements Token {
 		this.extendedInformation = extendedInformation;
 	}
 
+	@Override
 	public String getKey() {
 		return key;
 	}
 
+	@Override
 	public long getKeyCreationTime() {
 		return keyCreationTime;
 	}
 
+	@Override
 	public String getExtendedInformation() {
 		return extendedInformation;
 	}
 
+	@Override
 	public boolean equals(Object obj) {
 		if (obj != null && obj instanceof DefaultToken) {
 			DefaultToken rhs = (DefaultToken) obj;
@@ -60,6 +64,7 @@ public class DefaultToken implements Token {
 		return false;
 	}
 
+	@Override
 	public int hashCode() {
 		int code = 979;
 		code = code * key.hashCode();
@@ -68,6 +73,7 @@ public class DefaultToken implements Token {
 		return code;
 	}
 
+	@Override
 	public String toString() {
 		return "DefaultToken[key=" + key + "; creation=" + new Date(keyCreationTime)
 				+ "; extended=" + extendedInformation + "]";

+ 4 - 0
core/src/main/java/org/springframework/security/util/InMemoryResource.java

@@ -60,18 +60,22 @@ public class InMemoryResource extends AbstractResource {
 	// ~ Methods
 	// ========================================================================================================
 
+	@Override
 	public String getDescription() {
 		return description;
 	}
 
+	@Override
 	public InputStream getInputStream() throws IOException {
 		return new ByteArrayInputStream(source);
 	}
 
+	@Override
 	public int hashCode() {
 		return 1;
 	}
 
+	@Override
 	public boolean equals(Object res) {
 		if (!(res instanceof InMemoryResource)) {
 			return false;

+ 4 - 1
etc/checkstyle/checkstyle.xml

@@ -6,7 +6,7 @@
 	<module name="SuppressionFilter">
 		<property name="file" value="${configDir}/suppressions.xml"/>
 	</module>
-	
+
 	<!-- Root Checks -->
 	<module name="RegexpHeader">
 		<property name="headerFile" value="${configDir}/header.txt"/>
@@ -15,6 +15,9 @@
 
 	<!-- Root Checks -->
 	<module name="TreeWalker">
+		<!-- Annotations -->
+		<module name="MissingOverrideCheck"/>
+
 		<!-- Regexp -->
 		<module name="RegexpSinglelineJava">
 			<property name="format" value="^\t* +\t*\S"/>

+ 2 - 0
ldap/src/main/java/org/springframework/security/ldap/search/FilterBasedLdapUserSearch.java

@@ -111,6 +111,7 @@ public class FilterBasedLdapUserSearch implements LdapUserSearch {
 	 *
 	 * @throws UsernameNotFoundException if no matching entry is found.
 	 */
+	@Override
 	public DirContextOperations searchForUser(String username) {
 		if (logger.isDebugEnabled()) {
 			logger.debug("Searching for user '" + username + "', with user search "
@@ -183,6 +184,7 @@ public class FilterBasedLdapUserSearch implements LdapUserSearch {
 		searchControls.setReturningAttributes(attrs);
 	}
 
+	@Override
 	public String toString() {
 		StringBuilder sb = new StringBuilder();
 

+ 1 - 0
ldap/src/main/java/org/springframework/security/ldap/userdetails/LdapAuthority.java

@@ -114,6 +114,7 @@ public class LdapAuthority implements GrantedAuthority {
 	/**
 	 * {@inheritDoc}
 	 */
+	@Override
 	public String getAuthority() {
 		return role;
 	}

+ 11 - 0
ldap/src/main/java/org/springframework/security/ldap/userdetails/LdapUserDetailsImpl.java

@@ -75,34 +75,42 @@ public class LdapUserDetailsImpl implements LdapUserDetails, PasswordPolicyData
 	// ~ Methods
 	// ========================================================================================================
 
+	@Override
 	public Collection<GrantedAuthority> getAuthorities() {
 		return authorities;
 	}
 
+	@Override
 	public String getDn() {
 		return dn;
 	}
 
+	@Override
 	public String getPassword() {
 		return password;
 	}
 
+	@Override
 	public String getUsername() {
 		return username;
 	}
 
+	@Override
 	public boolean isAccountNonExpired() {
 		return accountNonExpired;
 	}
 
+	@Override
 	public boolean isAccountNonLocked() {
 		return accountNonLocked;
 	}
 
+	@Override
 	public boolean isCredentialsNonExpired() {
 		return credentialsNonExpired;
 	}
 
+	@Override
 	public boolean isEnabled() {
 		return enabled;
 	}
@@ -112,10 +120,12 @@ public class LdapUserDetailsImpl implements LdapUserDetails, PasswordPolicyData
 		password = null;
 	}
 
+	@Override
 	public int getTimeBeforeExpiration() {
 		return timeBeforeExpiration;
 	}
 
+	@Override
 	public int getGraceLoginsRemaining() {
 		return graceLoginsRemaining;
 	}
@@ -133,6 +143,7 @@ public class LdapUserDetailsImpl implements LdapUserDetails, PasswordPolicyData
 		return dn.hashCode();
 	}
 
+	@Override
 	public String toString() {
 		StringBuilder sb = new StringBuilder();
 		sb.append(super.toString()).append(": ");

+ 2 - 0
messaging/src/main/java/org/springframework/security/messaging/util/matcher/MessageMatcher.java

@@ -36,10 +36,12 @@ public interface MessageMatcher<T> {
 	 * Matches every {@link Message}
 	 */
 	MessageMatcher<Object> ANY_MESSAGE = new MessageMatcher<Object>() {
+		@Override
 		public boolean matches(Message<? extends Object> message) {
 			return true;
 		}
 
+		@Override
 		public String toString() {
 			return "ANY_MESSAGE";
 		}

+ 3 - 1
messaging/src/main/java/org/springframework/security/messaging/util/matcher/SimpMessageTypeMatcher.java

@@ -44,6 +44,7 @@ public class SimpMessageTypeMatcher implements MessageMatcher<Object> {
 		this.typeToMatch = typeToMatch;
 	}
 
+	@Override
 	public boolean matches(Message<? extends Object> message) {
 		MessageHeaders headers = message.getHeaders();
 		SimpMessageType messageType = SimpMessageHeaderAccessor.getMessageType(headers);
@@ -64,6 +65,7 @@ public class SimpMessageTypeMatcher implements MessageMatcher<Object> {
 
 	}
 
+	@Override
 	public int hashCode() {
 		// Using nullSafeHashCode for proper array hashCode handling
 		return ObjectUtils.nullSafeHashCode(this.typeToMatch);
@@ -73,4 +75,4 @@ public class SimpMessageTypeMatcher implements MessageMatcher<Object> {
 	public String toString() {
 		return "SimpMessageTypeMatcher [typeToMatch=" + typeToMatch + "]";
 	}
-}
+}

+ 1 - 0
openid/src/main/java/org/springframework/security/openid/OpenIDAttribute.java

@@ -98,6 +98,7 @@ public class OpenIDAttribute implements Serializable {
 		return values;
 	}
 
+	@Override
 	public String toString() {
 		StringBuilder result = new StringBuilder("[");
 		result.append(name);

+ 1 - 0
openid/src/main/java/org/springframework/security/openid/OpenIDAuthenticationStatus.java

@@ -51,6 +51,7 @@ public enum OpenIDAuthenticationStatus {
 		this.name = name;
 	}
 
+	@Override
 	public String toString() {
 		return name;
 	}

+ 1 - 0
samples/xml/contacts/src/main/java/sample/contact/Contact.java

@@ -84,6 +84,7 @@ public class Contact implements Serializable {
 		this.name = name;
 	}
 
+	@Override
 	public String toString() {
 		StringBuilder sb = new StringBuilder();
 		sb.append(super.toString() + ": ");

+ 1 - 0
samples/xml/dms/src/main/java/sample/dms/Directory.java

@@ -31,6 +31,7 @@ public class Directory extends AbstractElement {
 		super(name, parent);
 	}
 
+	@Override
 	public String toString() {
 		return "Directory[fullName='" + getFullName() + "'; name='" + getName()
 				+ "'; id='" + getId() + "'; parent='" + getParent() + "']";

+ 1 - 0
samples/xml/dms/src/main/java/sample/dms/File.java

@@ -39,6 +39,7 @@ public class File extends AbstractElement {
 		this.content = content;
 	}
 
+	@Override
 	public String toString() {
 		return "File[fullName='" + getFullName() + "'; name='" + getName() + "'; id='"
 				+ getId() + "'; content=" + getContent() + "'; parent='" + getParent()

+ 7 - 0
samples/xml/jaas/src/main/java/samples/jaas/UsernameEqualsPasswordLoginModule.java

@@ -44,14 +44,17 @@ public class UsernameEqualsPasswordLoginModule implements LoginModule {
 	// ~ Methods
 	// ========================================================================================================
 
+	@Override
 	public boolean abort() throws LoginException {
 		return true;
 	}
 
+	@Override
 	public boolean commit() throws LoginException {
 		return true;
 	}
 
+	@Override
 	public void initialize(Subject subject, CallbackHandler callbackHandler,
 			Map<String, ?> sharedState, Map<String, ?> options) {
 		this.subject = subject;
@@ -70,6 +73,7 @@ public class UsernameEqualsPasswordLoginModule implements LoginModule {
 		}
 	}
 
+	@Override
 	public boolean login() throws LoginException {
 		if (username == null || !username.equals(password)) {
 			throw new LoginException("username is not equal to password");
@@ -82,6 +86,7 @@ public class UsernameEqualsPasswordLoginModule implements LoginModule {
 		return true;
 	}
 
+	@Override
 	public boolean logout() throws LoginException {
 		return true;
 	}
@@ -93,10 +98,12 @@ public class UsernameEqualsPasswordLoginModule implements LoginModule {
 			this.username = username;
 		}
 
+		@Override
 		public String getName() {
 			return username;
 		}
 
+		@Override
 		public String toString() {
 			return "Principal [name=" + getName() + "]";
 		}

+ 1 - 0
samples/xml/tutorial/src/main/java/bigbank/Account.java

@@ -65,6 +65,7 @@ public class Account {
 		this.overdraft = overdraft;
 	}
 
+	@Override
 	public String toString() {
 		return "Account[id=" + id + ",balance=" + balance + ",holder=" + holder
 				+ ", overdraft=" + overdraft + "]";

+ 4 - 0
web/src/main/java/org/springframework/security/web/FilterChainProxy.java

@@ -168,6 +168,7 @@ public class FilterChainProxy extends GenericFilterBean {
 		filterChainValidator.validate(this);
 	}
 
+	@Override
 	public void doFilter(ServletRequest request, ServletResponse response,
 			FilterChain chain) throws IOException, ServletException {
 		boolean clearContext = request.getAttribute(FILTER_APPLIED) == null;
@@ -271,6 +272,7 @@ public class FilterChainProxy extends GenericFilterBean {
 		this.firewall = firewall;
 	}
 
+	@Override
 	public String toString() {
 		StringBuilder sb = new StringBuilder();
 		sb.append("FilterChainProxy[");
@@ -303,6 +305,7 @@ public class FilterChainProxy extends GenericFilterBean {
 			this.firewalledRequest = firewalledRequest;
 		}
 
+		@Override
 		public void doFilter(ServletRequest request, ServletResponse response)
 				throws IOException, ServletException {
 			if (currentPosition == size) {
@@ -338,6 +341,7 @@ public class FilterChainProxy extends GenericFilterBean {
 	}
 
 	private static class NullFilterChainValidator implements FilterChainValidator {
+		@Override
 		public void validate(FilterChainProxy filterChainProxy) {
 		}
 	}

+ 3 - 0
web/src/main/java/org/springframework/security/web/access/intercept/RequestKey.java

@@ -40,6 +40,7 @@ public class RequestKey {
 		return method;
 	}
 
+	@Override
 	public int hashCode() {
 		int code = 31;
 		code ^= url.hashCode();
@@ -51,6 +52,7 @@ public class RequestKey {
 		return code;
 	}
 
+	@Override
 	public boolean equals(Object obj) {
 		if (!(obj instanceof RequestKey)) {
 			return false;
@@ -69,6 +71,7 @@ public class RequestKey {
 		return method.equals(key.method);
 	}
 
+	@Override
 	public String toString() {
 		StringBuilder sb = new StringBuilder(url.length() + 7);
 		sb.append("[");

+ 1 - 0
web/src/main/java/org/springframework/security/web/authentication/DelegatingAuthenticationFailureHandler.java

@@ -65,6 +65,7 @@ public class DelegatingAuthenticationFailureHandler implements
 	/**
 	 * {@inheritDoc}
 	 */
+	@Override
 	public void onAuthenticationFailure(HttpServletRequest request,
 			HttpServletResponse response, AuthenticationException exception)
 			throws IOException, ServletException {

+ 3 - 0
web/src/main/java/org/springframework/security/web/authentication/WebAuthenticationDetails.java

@@ -68,6 +68,7 @@ public class WebAuthenticationDetails implements Serializable {
 	// ~ Methods
 	// ========================================================================================================
 
+	@Override
 	public boolean equals(Object obj) {
 		if (obj instanceof WebAuthenticationDetails) {
 			WebAuthenticationDetails rhs = (WebAuthenticationDetails) obj;
@@ -125,6 +126,7 @@ public class WebAuthenticationDetails implements Serializable {
 		return sessionId;
 	}
 
+	@Override
 	public int hashCode() {
 		int code = 7654;
 
@@ -139,6 +141,7 @@ public class WebAuthenticationDetails implements Serializable {
 		return code;
 	}
 
+	@Override
 	public String toString() {
 		StringBuilder sb = new StringBuilder();
 		sb.append(super.toString()).append(": ");

+ 2 - 0
web/src/main/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetails.java

@@ -47,10 +47,12 @@ public class PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetails extends
 		this.authorities = Collections.unmodifiableList(temp);
 	}
 
+	@Override
 	public List<GrantedAuthority> getGrantedAuthorities() {
 		return authorities;
 	}
 
+	@Override
 	public String toString() {
 		StringBuilder sb = new StringBuilder();
 		sb.append(super.toString()).append("; ");

+ 5 - 0
web/src/main/java/org/springframework/security/web/authentication/rememberme/AbstractRememberMeServices.java

@@ -98,6 +98,7 @@ public abstract class AbstractRememberMeServices implements RememberMeServices,
 				boolean.class);
 	}
 
+	@Override
 	public void afterPropertiesSet() throws Exception {
 		Assert.hasLength(key, "key cannot be empty or null");
 		Assert.notNull(userDetailsService, "A UserDetailsService is required");
@@ -111,6 +112,7 @@ public abstract class AbstractRememberMeServices implements RememberMeServices,
 	 * The returned username is then used to load the UserDetails object for the user,
 	 * which in turn is used to create a valid authentication token.
 	 */
+	@Override
 	public final Authentication autoLogin(HttpServletRequest request,
 			HttpServletResponse response) {
 		String rememberMeCookie = extractRememberMeCookie(request);
@@ -282,6 +284,7 @@ public abstract class AbstractRememberMeServices implements RememberMeServices,
 		return sb.toString();
 	}
 
+	@Override
 	public final void loginFail(HttpServletRequest request, HttpServletResponse response) {
 		logger.debug("Interactive login attempt was unsuccessful.");
 		cancelCookie(request, response);
@@ -300,6 +303,7 @@ public abstract class AbstractRememberMeServices implements RememberMeServices,
 	 * true, calls <tt>onLoginSucces</tt>.
 	 * </p>
 	 */
+	@Override
 	public final void loginSuccess(HttpServletRequest request,
 			HttpServletResponse response, Authentication successfulAuthentication) {
 
@@ -439,6 +443,7 @@ public abstract class AbstractRememberMeServices implements RememberMeServices,
 	 * Implementation of {@code LogoutHandler}. Default behaviour is to call
 	 * {@code cancelCookie()}.
 	 */
+	@Override
 	public void logout(HttpServletRequest request, HttpServletResponse response,
 			Authentication authentication) {
 		if (logger.isDebugEnabled()) {

+ 4 - 0
web/src/main/java/org/springframework/security/web/authentication/switchuser/SwitchUserGrantedAuthority.java

@@ -60,14 +60,17 @@ public final class SwitchUserGrantedAuthority implements GrantedAuthority {
 		return source;
 	}
 
+	@Override
 	public String getAuthority() {
 		return role;
 	}
 
+	@Override
 	public int hashCode() {
 		return 31 ^ source.hashCode() ^ role.hashCode();
 	}
 
+	@Override
 	public boolean equals(Object obj) {
 		if (this == obj) {
 			return true;
@@ -81,6 +84,7 @@ public final class SwitchUserGrantedAuthority implements GrantedAuthority {
 		return false;
 	}
 
+	@Override
 	public String toString() {
 		return "Switch User Authority [" + role + "," + source + "]";
 	}

+ 2 - 0
web/src/main/java/org/springframework/security/web/header/Header.java

@@ -77,10 +77,12 @@ public final class Header {
 		return this.headerValues.equals(header.headerValues);
 	}
 
+	@Override
 	public int hashCode() {
 		return headerName.hashCode() + headerValues.hashCode();
 	}
 
+	@Override
 	public String toString() {
 		return "Header [name: " + headerName + ", values: " + headerValues + "]";
 	}

+ 9 - 0
web/src/main/java/org/springframework/security/web/savedrequest/DefaultSavedRequest.java

@@ -264,6 +264,7 @@ public class DefaultSavedRequest implements SavedRequest {
 		return contextPath;
 	}
 
+	@Override
 	public List<Cookie> getCookies() {
 		List<Cookie> cookieList = new ArrayList<Cookie>(cookies.size());
 
@@ -279,15 +280,18 @@ public class DefaultSavedRequest implements SavedRequest {
 	 *
 	 * @return the full URL of this request
 	 */
+	@Override
 	public String getRedirectUrl() {
 		return UrlUtils.buildFullRequestUrl(scheme, serverName, serverPort, requestURI,
 				queryString);
 	}
 
+	@Override
 	public Collection<String> getHeaderNames() {
 		return headers.keySet();
 	}
 
+	@Override
 	public List<String> getHeaderValues(String name) {
 		List<String> values = headers.get(name);
 
@@ -298,14 +302,17 @@ public class DefaultSavedRequest implements SavedRequest {
 		return values;
 	}
 
+	@Override
 	public List<Locale> getLocales() {
 		return locales;
 	}
 
+	@Override
 	public String getMethod() {
 		return method;
 	}
 
+	@Override
 	public Map<String, String[]> getParameterMap() {
 		return parameters;
 	}
@@ -314,6 +321,7 @@ public class DefaultSavedRequest implements SavedRequest {
 		return parameters.keySet();
 	}
 
+	@Override
 	public String[] getParameterValues(String name) {
 		return parameters.get(name);
 	}
@@ -385,6 +393,7 @@ public class DefaultSavedRequest implements SavedRequest {
 		}
 	}
 
+	@Override
 	public String toString() {
 		return "DefaultSavedRequest[" + getRedirectUrl() + "]";
 	}