diff --git a/acl/src/main/java/org/springframework/security/acls/AclEntryVoter.java b/acl/src/main/java/org/springframework/security/acls/AclEntryVoter.java index 3b0205c9e8..8b5a4a76f8 100644 --- a/acl/src/main/java/org/springframework/security/acls/AclEntryVoter.java +++ b/acl/src/main/java/org/springframework/security/acls/AclEntryVoter.java @@ -80,7 +80,6 @@ import org.springframework.util.StringUtils; *
All comparisons and prefixes are case sensitive.
* * @author Ben Alex - * @version $Id$ */ public class AclEntryVoter extends AbstractAclVoter { //~ Static fields/initializers ===================================================================================== diff --git a/acl/src/main/java/org/springframework/security/acls/AclPermissionEvaluator.java b/acl/src/main/java/org/springframework/security/acls/AclPermissionEvaluator.java index 4c550e8fed..f9f4014a63 100644 --- a/acl/src/main/java/org/springframework/security/acls/AclPermissionEvaluator.java +++ b/acl/src/main/java/org/springframework/security/acls/AclPermissionEvaluator.java @@ -28,7 +28,6 @@ import org.springframework.security.core.Authentication; * {@link org.springframework.security.acls.AclEntryVoter AclEntryVoter}. * * @author Luke Taylor - * @version $Id$ * @since 3.0 */ public class AclPermissionEvaluator implements PermissionEvaluator { diff --git a/acl/src/main/java/org/springframework/security/acls/afterinvocation/AbstractAclProvider.java b/acl/src/main/java/org/springframework/security/acls/afterinvocation/AbstractAclProvider.java index 3b52699235..6e0f0caaa8 100644 --- a/acl/src/main/java/org/springframework/security/acls/afterinvocation/AbstractAclProvider.java +++ b/acl/src/main/java/org/springframework/security/acls/afterinvocation/AbstractAclProvider.java @@ -39,7 +39,6 @@ import org.springframework.util.Assert; * Abstract {@link AfterInvocationProvider} which provides commonly-used ACL-related services. * * @author Ben Alex - * @version $Id$ */ public abstract class AbstractAclProvider implements AfterInvocationProvider { //~ Instance fields ================================================================================================ diff --git a/acl/src/main/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationCollectionFilteringProvider.java b/acl/src/main/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationCollectionFilteringProvider.java index 7de76111aa..a86081a3c6 100644 --- a/acl/src/main/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationCollectionFilteringProvider.java +++ b/acl/src/main/java/org/springframework/security/acls/afterinvocation/AclEntryAfterInvocationCollectionFilteringProvider.java @@ -57,7 +57,6 @@ import org.springframework.security.core.Authentication; * * @author Ben Alex * @author Paulo Neves - * @version $Id$ */ public class AclEntryAfterInvocationCollectionFilteringProvider extends AbstractAclProvider { //~ Static fields/initializers ===================================================================================== diff --git a/acl/src/main/java/org/springframework/security/acls/afterinvocation/ArrayFilterer.java b/acl/src/main/java/org/springframework/security/acls/afterinvocation/ArrayFilterer.java index 156592df39..afcd950c71 100644 --- a/acl/src/main/java/org/springframework/security/acls/afterinvocation/ArrayFilterer.java +++ b/acl/src/main/java/org/springframework/security/acls/afterinvocation/ArrayFilterer.java @@ -30,7 +30,6 @@ import org.apache.commons.logging.LogFactory; * * @author Ben Alex * @author Paulo Neves - * @version $Id$ */ class ArrayFiltererAccessControlEntry.
*
* @author Ben Alex
- * @version $Id$
*/
public class AccessControlEntryImpl implements AccessControlEntry, AuditableAccessControlEntry {
//~ Instance fields ================================================================================================
@@ -77,7 +76,7 @@ public class AccessControlEntryImpl implements AccessControlEntry, AuditableAcce
if (rhs.getAcl() == null) {
return false;
}
-
+
// Both this.acl and rhs.acl are non-null, so do a comparison
if (this.acl.getObjectIdentity() == null) {
if (rhs.acl.getObjectIdentity() != null) {
@@ -91,7 +90,7 @@ public class AccessControlEntryImpl implements AccessControlEntry, AuditableAcce
}
}
}
-
+
if (this.id == null) {
if (rhs.id != null) {
return false;
@@ -108,7 +107,7 @@ public class AccessControlEntryImpl implements AccessControlEntry, AuditableAcce
return false;
}
}
-
+
if ((this.auditFailure != rhs.isAuditFailure()) || (this.auditSuccess != rhs.isAuditSuccess())
|| (this.granting != rhs.isGranting())
|| !this.permission.equals(rhs.getPermission()) || !this.sid.equals(rhs.getSid())) {
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategy.java b/acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategy.java
index 0ef2021fe7..a5cfcbd253 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategy.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategy.java
@@ -23,7 +23,6 @@ import org.springframework.security.acls.model.Acl;
* adminstrative methods on the AclImpl.
*
* @author Ben Alex
- * @version $Id$
*/
public interface AclAuthorizationStrategy {
//~ Static fields/initializers =====================================================================================
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategyImpl.java b/acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategyImpl.java
index 8022a7b038..eb06f315d3 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategyImpl.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/AclAuthorizationStrategyImpl.java
@@ -37,7 +37,6 @@ import org.springframework.util.Assert;
* {@link GrantedAuthority} and injected into the constructor.
*
* @author Ben Alex
- * @version $Id$
*/
public class AclAuthorizationStrategyImpl implements AclAuthorizationStrategy {
//~ Instance fields ================================================================================================
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/AclFormattingUtils.java b/acl/src/main/java/org/springframework/security/acls/domain/AclFormattingUtils.java
index c5b0362c01..668b4b4b3f 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/AclFormattingUtils.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/AclFormattingUtils.java
@@ -22,7 +22,6 @@ import org.springframework.util.Assert;
* Utility methods for displaying ACL information.
*
* @author Ben Alex
- * @version $Id$
*/
public abstract class AclFormattingUtils {
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/AclImpl.java b/acl/src/main/java/org/springframework/security/acls/domain/AclImpl.java
index d7f4040fe5..38687b1634 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/AclImpl.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/AclImpl.java
@@ -35,7 +35,6 @@ import org.springframework.util.Assert;
* Base implementation of Acl.
*
* @author Ben Alex
- * @version $Id$
*/
public class AclImpl implements Acl, MutableAcl, AuditableAcl, OwnershipAcl {
//~ Instance fields ================================================================================================
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/AuditLogger.java b/acl/src/main/java/org/springframework/security/acls/domain/AuditLogger.java
index c882202272..e233cfa99e 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/AuditLogger.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/AuditLogger.java
@@ -21,7 +21,6 @@ import org.springframework.security.acls.model.AccessControlEntry;
* Used by AclImpl to log audit events.
*
* @author Ben Alex
- * @version $Id$
*
*/
public interface AuditLogger {
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/BasePermission.java b/acl/src/main/java/org/springframework/security/acls/domain/BasePermission.java
index 83a0252c18..a1fe8f0fb1 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/BasePermission.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/BasePermission.java
@@ -26,7 +26,6 @@ import org.springframework.security.acls.model.Permission;
*
*
* @author Ben Alex
- * @version $Id$
*/
public class BasePermission extends AbstractPermission {
public static final Permission READ = new BasePermission(1 << 0, 'R'); // 1
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/ConsoleAuditLogger.java b/acl/src/main/java/org/springframework/security/acls/domain/ConsoleAuditLogger.java
index cd099f54d1..5c0b059b02 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/ConsoleAuditLogger.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/ConsoleAuditLogger.java
@@ -24,7 +24,6 @@ import org.springframework.util.Assert;
* A basic implementation of {@link AuditLogger}.
*
* @author Ben Alex
- * @version $Id$
*/
public class ConsoleAuditLogger implements AuditLogger {
//~ Methods ========================================================================================================
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/CumulativePermission.java b/acl/src/main/java/org/springframework/security/acls/domain/CumulativePermission.java
index 888e89a1cd..554989dabf 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/CumulativePermission.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/CumulativePermission.java
@@ -19,11 +19,10 @@ import org.springframework.security.acls.model.Permission;
/**
* Represents a Permission that is constructed at runtime from other permissions.
- *
+ *
* Methods return this, in order to facilitate method chaining.
Sid implementation that uses some other identifier.
*
* @author Ben Alex
- * @version $Id$
*/
public class GrantedAuthoritySid implements Sid {
//~ Instance fields ================================================================================================
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/IdentityUnavailableException.java b/acl/src/main/java/org/springframework/security/acls/domain/IdentityUnavailableException.java
index 20cbea99e5..18e7383c42 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/IdentityUnavailableException.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/IdentityUnavailableException.java
@@ -18,7 +18,6 @@ package org.springframework.security.acls.domain;
* Thrown if an ACL identity could not be extracted from an object.
*
* @author Ben Alex
- * @version $Id$
*/
public class IdentityUnavailableException extends RuntimeException {
//~ Constructors ===================================================================================================
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/ObjectIdentityImpl.java b/acl/src/main/java/org/springframework/security/acls/domain/ObjectIdentityImpl.java
index 4c66207630..f805679c31 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/ObjectIdentityImpl.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/ObjectIdentityImpl.java
@@ -29,7 +29,6 @@ import org.springframework.util.ClassUtils;
* reflection to build the identity information.
*
* @author Ben Alex
- * @version $Id$
*/
public class ObjectIdentityImpl implements ObjectIdentity {
//~ Instance fields ================================================================================================
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/ObjectIdentityRetrievalStrategyImpl.java b/acl/src/main/java/org/springframework/security/acls/domain/ObjectIdentityRetrievalStrategyImpl.java
index 85a5f34e9e..8854f2c65c 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/ObjectIdentityRetrievalStrategyImpl.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/ObjectIdentityRetrievalStrategyImpl.java
@@ -26,7 +26,6 @@ import org.springframework.security.acls.model.ObjectIdentityRetrievalStrategy;
* that uses the constructors of {@link ObjectIdentityImpl} to create the {@link ObjectIdentity}.
*
* @author Ben Alex
- * @version $Id$
*/
public class ObjectIdentityRetrievalStrategyImpl implements ObjectIdentityRetrievalStrategy, ObjectIdentityGenerator {
//~ Methods ========================================================================================================
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/PrincipalSid.java b/acl/src/main/java/org/springframework/security/acls/domain/PrincipalSid.java
index 56d38c3b6a..db59ac626f 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/PrincipalSid.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/PrincipalSid.java
@@ -28,7 +28,6 @@ import org.springframework.util.Assert;
* objects may wish to provide an alternative Sid implementation that uses some other identifier.
*
* @author Ben Alex
- * @version $Id$
*/
public class PrincipalSid implements Sid {
//~ Instance fields ================================================================================================
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/SidRetrievalStrategyImpl.java b/acl/src/main/java/org/springframework/security/acls/domain/SidRetrievalStrategyImpl.java
index 2604057585..afed23cd77 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/SidRetrievalStrategyImpl.java
+++ b/acl/src/main/java/org/springframework/security/acls/domain/SidRetrievalStrategyImpl.java
@@ -35,7 +35,6 @@ import org.springframework.util.Assert;
* The returned array will always contain the {@link PrincipalSid} before any {@link GrantedAuthoritySid} elements.
*
* @author Ben Alex
- * @version $Id$
*/
public class SidRetrievalStrategyImpl implements SidRetrievalStrategy {
diff --git a/acl/src/main/java/org/springframework/security/acls/domain/package.html b/acl/src/main/java/org/springframework/security/acls/domain/package.html
index 9172c16367..58fd09a56a 100644
--- a/acl/src/main/java/org/springframework/security/acls/domain/package.html
+++ b/acl/src/main/java/org/springframework/security/acls/domain/package.html
@@ -1,5 +1,5 @@
-
-
-Basic implementation of access control lists (ACLs) interfaces.
-
-
+
+
+Basic implementation of access control lists (ACLs) interfaces.
+
+
diff --git a/acl/src/main/java/org/springframework/security/acls/jdbc/BasicLookupStrategy.java b/acl/src/main/java/org/springframework/security/acls/jdbc/BasicLookupStrategy.java
index 55821026a2..62ab519dce 100644
--- a/acl/src/main/java/org/springframework/security/acls/jdbc/BasicLookupStrategy.java
+++ b/acl/src/main/java/org/springframework/security/acls/jdbc/BasicLookupStrategy.java
@@ -72,7 +72,6 @@ import org.springframework.util.Assert;
* generated by the the default values.
*
* @author Ben Alex
- * @version $Id$
*/
public final class BasicLookupStrategy implements LookupStrategy {
diff --git a/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcAclService.java b/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcAclService.java
index 35fdb6e9b3..30ba34fcf5 100644
--- a/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcAclService.java
+++ b/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcAclService.java
@@ -43,7 +43,6 @@ import org.springframework.util.Assert;
* detect changed parameters easily.
*
* @author Ben Alex
- * @version $Id$
*/
public class JdbcAclService implements AclService {
//~ Static fields/initializers =====================================================================================
diff --git a/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcMutableAclService.java b/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcMutableAclService.java
index 69a7b7d536..b8693fd8aa 100644
--- a/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcMutableAclService.java
+++ b/acl/src/main/java/org/springframework/security/acls/jdbc/JdbcMutableAclService.java
@@ -56,7 +56,6 @@ import org.springframework.util.Assert;
*
* @author Ben Alex
* @author Johannes Zlattinger
- * @version $Id$
*/
public class JdbcMutableAclService extends JdbcAclService implements MutableAclService {
//~ Instance fields ================================================================================================
diff --git a/acl/src/main/java/org/springframework/security/acls/jdbc/LookupStrategy.java b/acl/src/main/java/org/springframework/security/acls/jdbc/LookupStrategy.java
index d709b72dbb..9a11599627 100644
--- a/acl/src/main/java/org/springframework/security/acls/jdbc/LookupStrategy.java
+++ b/acl/src/main/java/org/springframework/security/acls/jdbc/LookupStrategy.java
@@ -27,7 +27,6 @@ import java.util.Map;
* Performs lookups for {@link org.springframework.security.acls.model.AclService}.
*
* @author Ben Alex
- * @version $Id$
*/
public interface LookupStrategy {
//~ Methods ========================================================================================================
diff --git a/acl/src/main/java/org/springframework/security/acls/jdbc/package.html b/acl/src/main/java/org/springframework/security/acls/jdbc/package.html
index adbee4c539..e0190860d7 100644
--- a/acl/src/main/java/org/springframework/security/acls/jdbc/package.html
+++ b/acl/src/main/java/org/springframework/security/acls/jdbc/package.html
@@ -1,5 +1,5 @@
-
-
-JDBC-based persistence of ACL information.
-
-
+
+
+JDBC-based persistence of ACL information.
+
+
diff --git a/acl/src/main/java/org/springframework/security/acls/model/AccessControlEntry.java b/acl/src/main/java/org/springframework/security/acls/model/AccessControlEntry.java
index 4f7caa8ba2..5c157d46a5 100644
--- a/acl/src/main/java/org/springframework/security/acls/model/AccessControlEntry.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/AccessControlEntry.java
@@ -27,7 +27,6 @@ import java.io.Serializable;
*
*
* @author Ben Alex
- * @version $Id$
*
*/
public interface AccessControlEntry extends Serializable {
diff --git a/acl/src/main/java/org/springframework/security/acls/model/Acl.java b/acl/src/main/java/org/springframework/security/acls/model/Acl.java
index a7c8c91464..7946e0b388 100644
--- a/acl/src/main/java/org/springframework/security/acls/model/Acl.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/Acl.java
@@ -31,7 +31,7 @@ import java.util.List;
*
*
* - * Implementing classes may elect to return instances that represent + * Implementing classes may elect to return instances that represent * {@link org.springframework.security.acls.model.Permission} information for either * some OR all {@link org.springframework.security.acls.model.Sid} * instances. Therefore, an instance may NOT necessarily contain ALL Sids @@ -39,23 +39,22 @@ import java.util.List; *
* * @author Ben Alex - * @version $Id$ */ public interface Acl extends Serializable { /** * Returns all of the entries represented by the present Acl. Entries associated with * the Acl parents are not returned. - * + * *This method is typically used for administrative purposes.
- * + * *The order that entries appear in the array is important for methods declared in the * {@link MutableAcl} interface. Furthermore, some implementations MAY use ordering as * part of advanced permission checking.
- * + * *Do NOT use this method for making authorization decisions. Instead use {@link * #isGranted(List, List, boolean)}.
- * + * *This method must operate correctly even if the Acl only represents a subset of * Sids. The caller is responsible for correctly handling the result if only a subset of * Sids is represented.
@@ -84,11 +83,11 @@ public interface Acl extends Serializable { /** * A domain object may have a parent for the purpose of ACL inheritance. If there is a parent, its ACL can * be accessed via this method. In turn, the parent's parent (grandparent) can be accessed and so on. - * + * *This method solely represents the presence of a navigation hierarchy between the parent Acl and this * Acl. For actual inheritance to take place, the {@link #isEntriesInheriting()} must also be * true.
- * + * *This method must operate correctly even if the Acl only represents a subset of * Sids. The caller is responsible for correctly handling the result if only a subset of * Sids is represented.
@@ -111,13 +110,13 @@ public interface Acl extends Serializable { /** * This is the actual authorization logic method, and must be used whenever ACL authorization decisions are * required. - * + * *An array of Sids are presented, representing security identifies of the current * principal. In addition, an array of Permissions is presented which will have one or more bits set * in order to indicate the permissions needed for an affirmative authorization decision. An array is presented * because holding any of the Permissions inside the array will be sufficient for an * affirmative authorization.
- * + * *The actual approach used to make authorization decisions is left to the implementation and is not * specified by this interface. For example, an implementation MAY search the current ACL in the order * the ACL entries have been stored. If a single entry is found that has the same active bits as are shown in a @@ -127,9 +126,9 @@ public interface Acl extends Serializable { * ACL, provided that {@link #isEntriesInheriting()} is true, the authorization decision may be * passed to the parent ACL. If there is no matching entry, the implementation MAY throw an exception, or make a * predefined authorization decision.
- * + * *This method must operate correctly even if the Acl only represents a subset of Sids, - * although the implementation is permitted to throw one of the signature-defined exceptions if the method + * although the implementation is permitted to throw one of the signature-defined exceptions if the method * is called requesting an authorization decision for a {@link Sid} that was never loaded in this Acl. *
* diff --git a/acl/src/main/java/org/springframework/security/acls/model/AclCache.java b/acl/src/main/java/org/springframework/security/acls/model/AclCache.java index 26ec76048a..f8ef303838 100644 --- a/acl/src/main/java/org/springframework/security/acls/model/AclCache.java +++ b/acl/src/main/java/org/springframework/security/acls/model/AclCache.java @@ -23,7 +23,6 @@ import java.io.Serializable; * A caching layer for {@link JdbcAclService}. * * @author Ben Alex - * @version $Id$ * */ public interface AclCache { diff --git a/acl/src/main/java/org/springframework/security/acls/model/AclDataAccessException.java b/acl/src/main/java/org/springframework/security/acls/model/AclDataAccessException.java index 167f637b30..110bf22d02 100644 --- a/acl/src/main/java/org/springframework/security/acls/model/AclDataAccessException.java +++ b/acl/src/main/java/org/springframework/security/acls/model/AclDataAccessException.java @@ -4,7 +4,6 @@ package org.springframework.security.acls.model; * Abstract base class for Acl data operations. * * @author Luke Taylor - * @version $Id$ * @since 3.0 */ public abstract class AclDataAccessException extends RuntimeException { diff --git a/acl/src/main/java/org/springframework/security/acls/model/AclService.java b/acl/src/main/java/org/springframework/security/acls/model/AclService.java index 23ee910f18..80c2c6568f 100644 --- a/acl/src/main/java/org/springframework/security/acls/model/AclService.java +++ b/acl/src/main/java/org/springframework/security/acls/model/AclService.java @@ -23,7 +23,6 @@ import java.util.Map; * Provides retrieval of {@link Acl} instances. * * @author Ben Alex - * @version $Id$ */ public interface AclService { //~ Methods ======================================================================================================== diff --git a/acl/src/main/java/org/springframework/security/acls/model/AlreadyExistsException.java b/acl/src/main/java/org/springframework/security/acls/model/AlreadyExistsException.java index f74a5e2738..a61b1b564a 100644 --- a/acl/src/main/java/org/springframework/security/acls/model/AlreadyExistsException.java +++ b/acl/src/main/java/org/springframework/security/acls/model/AlreadyExistsException.java @@ -19,7 +19,6 @@ package org.springframework.security.acls.model; * Thrown if anAcl entry already exists for the object.
*
* @author Ben Alex
- * @version $Id$
*/
public class AlreadyExistsException extends AclDataAccessException {
//~ Constructors ===================================================================================================
diff --git a/acl/src/main/java/org/springframework/security/acls/model/AuditableAccessControlEntry.java b/acl/src/main/java/org/springframework/security/acls/model/AuditableAccessControlEntry.java
index 988aadeb26..e03607ae44 100644
--- a/acl/src/main/java/org/springframework/security/acls/model/AuditableAccessControlEntry.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/AuditableAccessControlEntry.java
@@ -19,7 +19,6 @@ package org.springframework.security.acls.model;
* Represents an ACE that provides auditing information.
*
* @author Ben Alex
- * @version $Id$
*
*/
public interface AuditableAccessControlEntry extends AccessControlEntry {
diff --git a/acl/src/main/java/org/springframework/security/acls/model/AuditableAcl.java b/acl/src/main/java/org/springframework/security/acls/model/AuditableAcl.java
index 09904169cf..c256278c12 100644
--- a/acl/src/main/java/org/springframework/security/acls/model/AuditableAcl.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/AuditableAcl.java
@@ -19,7 +19,6 @@ package org.springframework.security.acls.model;
* A mutable ACL that provides audit capabilities.
*
* @author Ben Alex
- * @version $Id$
*
*/
public interface AuditableAcl extends MutableAcl {
diff --git a/acl/src/main/java/org/springframework/security/acls/model/ChildrenExistException.java b/acl/src/main/java/org/springframework/security/acls/model/ChildrenExistException.java
index c169787ece..2b05c53c47 100644
--- a/acl/src/main/java/org/springframework/security/acls/model/ChildrenExistException.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/ChildrenExistException.java
@@ -19,7 +19,6 @@ package org.springframework.security.acls.model;
* Thrown if an {@link Acl} cannot be deleted because children Acls exist.
*
* @author Ben Alex
- * @version $Id$
*/
public class ChildrenExistException extends AclDataAccessException {
//~ Constructors ===================================================================================================
diff --git a/acl/src/main/java/org/springframework/security/acls/model/MutableAcl.java b/acl/src/main/java/org/springframework/security/acls/model/MutableAcl.java
index d49026ff59..5fdf98ae92 100644
--- a/acl/src/main/java/org/springframework/security/acls/model/MutableAcl.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/MutableAcl.java
@@ -25,7 +25,6 @@ import java.io.Serializable;
* before allowing access to its methods.
*
* @author Ben Alex
- * @version $Id$
*/
public interface MutableAcl extends Acl {
//~ Methods ========================================================================================================
diff --git a/acl/src/main/java/org/springframework/security/acls/model/MutableAclService.java b/acl/src/main/java/org/springframework/security/acls/model/MutableAclService.java
index a1fc7e1082..323979814d 100644
--- a/acl/src/main/java/org/springframework/security/acls/model/MutableAclService.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/MutableAclService.java
@@ -20,7 +20,6 @@ package org.springframework.security.acls.model;
* Provides support for creating and storing Acl instances.
*
* @author Ben Alex
- * @version $Id$
*/
public interface MutableAclService extends AclService {
//~ Methods ========================================================================================================
diff --git a/acl/src/main/java/org/springframework/security/acls/model/NotFoundException.java b/acl/src/main/java/org/springframework/security/acls/model/NotFoundException.java
index ff7fb9aba5..a2f3323698 100644
--- a/acl/src/main/java/org/springframework/security/acls/model/NotFoundException.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/NotFoundException.java
@@ -19,7 +19,6 @@ package org.springframework.security.acls.model;
* Thrown if an ACL-related object cannot be found.
*
* @author Ben Alex
- * @version $Id$
*/
public class NotFoundException extends AclDataAccessException {
//~ Constructors ===================================================================================================
diff --git a/acl/src/main/java/org/springframework/security/acls/model/ObjectIdentity.java b/acl/src/main/java/org/springframework/security/acls/model/ObjectIdentity.java
index 688e52757d..97003b11a5 100644
--- a/acl/src/main/java/org/springframework/security/acls/model/ObjectIdentity.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/ObjectIdentity.java
@@ -30,7 +30,6 @@ import java.io.Serializable;
*
*
* @author Ben Alex
- * @version $Id$
*/
public interface ObjectIdentity extends Serializable {
//~ Methods ========================================================================================================
diff --git a/acl/src/main/java/org/springframework/security/acls/model/ObjectIdentityGenerator.java b/acl/src/main/java/org/springframework/security/acls/model/ObjectIdentityGenerator.java
index e9495ced95..2b8130ad31 100644
--- a/acl/src/main/java/org/springframework/security/acls/model/ObjectIdentityGenerator.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/ObjectIdentityGenerator.java
@@ -11,7 +11,6 @@ import java.io.Serializable;
* instance isn't available.
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public interface ObjectIdentityGenerator {
diff --git a/acl/src/main/java/org/springframework/security/acls/model/ObjectIdentityRetrievalStrategy.java b/acl/src/main/java/org/springframework/security/acls/model/ObjectIdentityRetrievalStrategy.java
index 3a01d66ff4..3e2e7353a6 100644
--- a/acl/src/main/java/org/springframework/security/acls/model/ObjectIdentityRetrievalStrategy.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/ObjectIdentityRetrievalStrategy.java
@@ -21,7 +21,6 @@ package org.springframework.security.acls.model;
* will be returned for a particular domain object
*
* @author Ben Alex
- * @version $Id$
*
*/
public interface ObjectIdentityRetrievalStrategy {
diff --git a/acl/src/main/java/org/springframework/security/acls/model/OwnershipAcl.java b/acl/src/main/java/org/springframework/security/acls/model/OwnershipAcl.java
index 812852c1f3..a0953c18db 100644
--- a/acl/src/main/java/org/springframework/security/acls/model/OwnershipAcl.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/OwnershipAcl.java
@@ -24,7 +24,6 @@ package org.springframework.security.acls.model;
* well as assign a new owner.
*
* @author Ben Alex
- * @version $Id$
*/
public interface OwnershipAcl extends MutableAcl {
//~ Methods ========================================================================================================
diff --git a/acl/src/main/java/org/springframework/security/acls/model/Permission.java b/acl/src/main/java/org/springframework/security/acls/model/Permission.java
index 9ed05a4f1b..15426b43c1 100644
--- a/acl/src/main/java/org/springframework/security/acls/model/Permission.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/Permission.java
@@ -20,7 +20,6 @@ import java.io.Serializable;
* Represents a permission granted to a Sid for a given domain object.
*
* @author Ben Alex
- * @version $Id$
*/
public interface Permission extends Serializable {
//~ Static fields/initializers =====================================================================================
diff --git a/acl/src/main/java/org/springframework/security/acls/model/Sid.java b/acl/src/main/java/org/springframework/security/acls/model/Sid.java
index 9636cb1b63..2fb0633235 100644
--- a/acl/src/main/java/org/springframework/security/acls/model/Sid.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/Sid.java
@@ -29,7 +29,6 @@ import java.io.Serializable;
*
*
* @author Ben Alex
- * @version $Id$
*/
public interface Sid extends Serializable {
//~ Methods ========================================================================================================
diff --git a/acl/src/main/java/org/springframework/security/acls/model/SidRetrievalStrategy.java b/acl/src/main/java/org/springframework/security/acls/model/SidRetrievalStrategy.java
index 3b5b365c81..310935cbb0 100644
--- a/acl/src/main/java/org/springframework/security/acls/model/SidRetrievalStrategy.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/SidRetrievalStrategy.java
@@ -25,7 +25,6 @@ import org.springframework.security.core.Authentication;
* for an {@link Authentication}.
*
* @author Ben Alex
- * @version $Id$
*/
public interface SidRetrievalStrategy {
//~ Methods ========================================================================================================
diff --git a/acl/src/main/java/org/springframework/security/acls/model/UnloadedSidException.java b/acl/src/main/java/org/springframework/security/acls/model/UnloadedSidException.java
index 7b05057167..6e49ad962c 100644
--- a/acl/src/main/java/org/springframework/security/acls/model/UnloadedSidException.java
+++ b/acl/src/main/java/org/springframework/security/acls/model/UnloadedSidException.java
@@ -20,7 +20,6 @@ package org.springframework.security.acls.model;
* the caller has requested details for an unloaded Sid.
*
* @author Ben Alex
- * @version $Id$
*/
public class UnloadedSidException extends AclDataAccessException {
//~ Constructors ===================================================================================================
diff --git a/acl/src/main/java/org/springframework/security/acls/model/package.html b/acl/src/main/java/org/springframework/security/acls/model/package.html
index e738e3cb94..612305b745 100644
--- a/acl/src/main/java/org/springframework/security/acls/model/package.html
+++ b/acl/src/main/java/org/springframework/security/acls/model/package.html
@@ -1,5 +1,5 @@
-
-
-Interfaces and shared classes to manage access control lists (ACLs) for domain object instances.
-
-
+
+
+Interfaces and shared classes to manage access control lists (ACLs) for domain object instances.
+
+
diff --git a/acl/src/main/resources/createAclSchema.sql b/acl/src/main/resources/createAclSchema.sql
index 1bb65cd0cb..e999a9ff22 100644
--- a/acl/src/main/resources/createAclSchema.sql
+++ b/acl/src/main/resources/createAclSchema.sql
@@ -1,46 +1,46 @@
--- ACL schema sql used in HSQLDB
-
--- drop table acl_entry;
--- drop table acl_object_identity;
--- drop table acl_class;
--- drop table acl_sid;
-
-
-create table acl_sid(
- id bigint generated by default as identity(start with 100) not null primary key,
- principal boolean not null,
- sid varchar_ignorecase(100) not null,
- constraint unique_uk_1 unique(sid,principal));
-
-create table acl_class(
- id bigint generated by default as identity(start with 100) not null primary key,
- class varchar_ignorecase(100) not null,
- constraint unique_uk_2 unique(class)
-);
-
-create table acl_object_identity(
- id bigint generated by default as identity(start with 100) not null primary key,
- object_id_class bigint not null,
- object_id_identity bigint not null,
- parent_object bigint,
- owner_sid bigint,
- entries_inheriting boolean not null,
- constraint unique_uk_3 unique(object_id_class,object_id_identity),
- constraint foreign_fk_1 foreign key(parent_object)references acl_object_identity(id),
- constraint foreign_fk_2 foreign key(object_id_class)references acl_class(id),
- constraint foreign_fk_3 foreign key(owner_sid)references acl_sid(id)
-);
-
-create table acl_entry(
- id bigint generated by default as identity(start with 100) not null primary key,
- acl_object_identity bigint not null,
- ace_order int not null,
- sid bigint not null,
- mask integer not null,
- granting boolean not null,
- audit_success boolean not null,
- audit_failure boolean not null,
- constraint unique_uk_4 unique(acl_object_identity,ace_order),
- constraint foreign_fk_4 foreign key(acl_object_identity) references acl_object_identity(id),
- constraint foreign_fk_5 foreign key(sid) references acl_sid(id)
-);
+-- ACL schema sql used in HSQLDB
+
+-- drop table acl_entry;
+-- drop table acl_object_identity;
+-- drop table acl_class;
+-- drop table acl_sid;
+
+
+create table acl_sid(
+ id bigint generated by default as identity(start with 100) not null primary key,
+ principal boolean not null,
+ sid varchar_ignorecase(100) not null,
+ constraint unique_uk_1 unique(sid,principal));
+
+create table acl_class(
+ id bigint generated by default as identity(start with 100) not null primary key,
+ class varchar_ignorecase(100) not null,
+ constraint unique_uk_2 unique(class)
+);
+
+create table acl_object_identity(
+ id bigint generated by default as identity(start with 100) not null primary key,
+ object_id_class bigint not null,
+ object_id_identity bigint not null,
+ parent_object bigint,
+ owner_sid bigint,
+ entries_inheriting boolean not null,
+ constraint unique_uk_3 unique(object_id_class,object_id_identity),
+ constraint foreign_fk_1 foreign key(parent_object)references acl_object_identity(id),
+ constraint foreign_fk_2 foreign key(object_id_class)references acl_class(id),
+ constraint foreign_fk_3 foreign key(owner_sid)references acl_sid(id)
+);
+
+create table acl_entry(
+ id bigint generated by default as identity(start with 100) not null primary key,
+ acl_object_identity bigint not null,
+ ace_order int not null,
+ sid bigint not null,
+ mask integer not null,
+ granting boolean not null,
+ audit_success boolean not null,
+ audit_failure boolean not null,
+ constraint unique_uk_4 unique(acl_object_identity,ace_order),
+ constraint foreign_fk_4 foreign key(acl_object_identity) references acl_object_identity(id),
+ constraint foreign_fk_5 foreign key(sid) references acl_sid(id)
+);
diff --git a/acl/src/main/resources/createAclSchemaPostgres.sql b/acl/src/main/resources/createAclSchemaPostgres.sql
index ca07680065..364ebf92d2 100644
--- a/acl/src/main/resources/createAclSchemaPostgres.sql
+++ b/acl/src/main/resources/createAclSchemaPostgres.sql
@@ -1,46 +1,46 @@
--- ACL Schema SQL for PostgreSQL
-
--- drop table acl_entry;
--- drop table acl_object_identity;
--- drop table acl_class;
--- drop table acl_sid;
-
-create table acl_sid(
- id bigserial not null primary key,
- principal boolean not null,
- sid varchar(100) not null,
- constraint unique_uk_1 unique(sid,principal)
-);
-
-create table acl_class(
- id bigserial not null primary key,
- class varchar(100) not null,
- constraint unique_uk_2 unique(class)
-);
-
-create table acl_object_identity(
- id bigserial primary key,
- object_id_class bigint not null,
- object_id_identity bigint not null,
- parent_object bigint,
- owner_sid bigint,
- entries_inheriting boolean not null,
- constraint unique_uk_3 unique(object_id_class,object_id_identity),
- constraint foreign_fk_1 foreign key(parent_object)references acl_object_identity(id),
- constraint foreign_fk_2 foreign key(object_id_class)references acl_class(id),
- constraint foreign_fk_3 foreign key(owner_sid)references acl_sid(id)
-);
-
-create table acl_entry(
- id bigserial primary key,
- acl_object_identity bigint not null,
- ace_order int not null,
- sid bigint not null,
- mask integer not null,
- granting boolean not null,
- audit_success boolean not null,
- audit_failure boolean not null,
- constraint unique_uk_4 unique(acl_object_identity,ace_order),
- constraint foreign_fk_4 foreign key(acl_object_identity) references acl_object_identity(id),
- constraint foreign_fk_5 foreign key(sid) references acl_sid(id)
-);
+-- ACL Schema SQL for PostgreSQL
+
+-- drop table acl_entry;
+-- drop table acl_object_identity;
+-- drop table acl_class;
+-- drop table acl_sid;
+
+create table acl_sid(
+ id bigserial not null primary key,
+ principal boolean not null,
+ sid varchar(100) not null,
+ constraint unique_uk_1 unique(sid,principal)
+);
+
+create table acl_class(
+ id bigserial not null primary key,
+ class varchar(100) not null,
+ constraint unique_uk_2 unique(class)
+);
+
+create table acl_object_identity(
+ id bigserial primary key,
+ object_id_class bigint not null,
+ object_id_identity bigint not null,
+ parent_object bigint,
+ owner_sid bigint,
+ entries_inheriting boolean not null,
+ constraint unique_uk_3 unique(object_id_class,object_id_identity),
+ constraint foreign_fk_1 foreign key(parent_object)references acl_object_identity(id),
+ constraint foreign_fk_2 foreign key(object_id_class)references acl_class(id),
+ constraint foreign_fk_3 foreign key(owner_sid)references acl_sid(id)
+);
+
+create table acl_entry(
+ id bigserial primary key,
+ acl_object_identity bigint not null,
+ ace_order int not null,
+ sid bigint not null,
+ mask integer not null,
+ granting boolean not null,
+ audit_success boolean not null,
+ audit_failure boolean not null,
+ constraint unique_uk_4 unique(acl_object_identity,ace_order),
+ constraint foreign_fk_4 foreign key(acl_object_identity) references acl_object_identity(id),
+ constraint foreign_fk_5 foreign key(sid) references acl_sid(id)
+);
diff --git a/acl/src/main/resources/select.sql b/acl/src/main/resources/select.sql
index 4e9486c83c..ad759c7c7c 100644
--- a/acl/src/main/resources/select.sql
+++ b/acl/src/main/resources/select.sql
@@ -1,39 +1,39 @@
--- Not required. Just shows the sort of queries being sent to DB.
-
-
-select acl_object_identity.object_id_identity,
- acl_entry.ace_order,
- acl_object_identity.id as acl_id,
- acl_object_identity.parent_object,
- acl_object_identity,
- entries_inheriting,
- acl_entry.id as ace_id,
- acl_entry.mask,
- acl_entry.granting,
- acl_entry.audit_success,
- acl_entry.audit_failure,
- acl_sid.principal as ace_principal,
- acl_sid.sid as ace_sid,
- acli_sid.principal as acl_principal,
- acli_sid.sid as acl_sid,
- acl_class.class
-
-from acl_object_identity,
- acl_sid acli_sid,
- acl_class
-
-left join acl_entry on acl_object_identity.id = acl_entry.acl_object_identity
-left join acl_sid on acl_entry.sid = acl_sid.id
-
-where
- acli_sid.id = acl_object_identity.owner_sid
-
-and acl_class.id = acl_object_identity.object_id_class
-
-and (
-
- (acl_object_identity.object_id_identity = 1 and acl_class.class = 'sample.contact.contact')
-or
- (acl_object_identity.object_id_identity = 2000 and acl_class.class = 'sample.contact.contact')
-
-) order by acl_object_identity.object_id_identity asc, acl_entry.ace_order asc
+-- Not required. Just shows the sort of queries being sent to DB.
+
+
+select acl_object_identity.object_id_identity,
+ acl_entry.ace_order,
+ acl_object_identity.id as acl_id,
+ acl_object_identity.parent_object,
+ acl_object_identity,
+ entries_inheriting,
+ acl_entry.id as ace_id,
+ acl_entry.mask,
+ acl_entry.granting,
+ acl_entry.audit_success,
+ acl_entry.audit_failure,
+ acl_sid.principal as ace_principal,
+ acl_sid.sid as ace_sid,
+ acli_sid.principal as acl_principal,
+ acli_sid.sid as acl_sid,
+ acl_class.class
+
+from acl_object_identity,
+ acl_sid acli_sid,
+ acl_class
+
+left join acl_entry on acl_object_identity.id = acl_entry.acl_object_identity
+left join acl_sid on acl_entry.sid = acl_sid.id
+
+where
+ acli_sid.id = acl_object_identity.owner_sid
+
+and acl_class.id = acl_object_identity.object_id_class
+
+and (
+
+ (acl_object_identity.object_id_identity = 1 and acl_class.class = 'sample.contact.contact')
+or
+ (acl_object_identity.object_id_identity = 2000 and acl_class.class = 'sample.contact.contact')
+
+) order by acl_object_identity.object_id_identity asc, acl_entry.ace_order asc
diff --git a/acl/src/test/java/org/springframework/security/acls/AclFormattingUtilsTests.java b/acl/src/test/java/org/springframework/security/acls/AclFormattingUtilsTests.java
index bd1325cf5a..a1adee6522 100644
--- a/acl/src/test/java/org/springframework/security/acls/AclFormattingUtilsTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/AclFormattingUtilsTests.java
@@ -1,127 +1,127 @@
-package org.springframework.security.acls;
-
-import org.springframework.security.acls.domain.AclFormattingUtils;
-import org.springframework.security.acls.model.Permission;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-/**
- * Tests for {@link AclFormattingUtils}.
- *
- * @author Andrei Stefan
- */
-public class AclFormattingUtilsTests extends TestCase {
-
- //~ Methods ========================================================================================================
-
- public final void testDemergePatternsParametersConstraints() throws Exception {
- try {
- AclFormattingUtils.demergePatterns(null, "SOME STRING");
- Assert.fail("It should have thrown IllegalArgumentException");
- }
- catch (IllegalArgumentException expected) {
- Assert.assertTrue(true);
- }
-
- try {
- AclFormattingUtils.demergePatterns("SOME STRING", null);
- Assert.fail("It should have thrown IllegalArgumentException");
- }
- catch (IllegalArgumentException expected) {
- Assert.assertTrue(true);
- }
-
- try {
- AclFormattingUtils.demergePatterns("SOME STRING", "LONGER SOME STRING");
- Assert.fail("It should have thrown IllegalArgumentException");
- }
- catch (IllegalArgumentException expected) {
- Assert.assertTrue(true);
- }
-
- try {
- AclFormattingUtils.demergePatterns("SOME STRING", "SAME LENGTH");
- Assert.assertTrue(true);
- }
- catch (IllegalArgumentException notExpected) {
- Assert.fail("It shouldn't have thrown IllegalArgumentException");
- }
- }
-
- public final void testDemergePatterns() throws Exception {
- String original = "...........................A...R";
- String removeBits = "...............................R";
- Assert.assertEquals("...........................A....", AclFormattingUtils
- .demergePatterns(original, removeBits));
-
- Assert.assertEquals("ABCDEF", AclFormattingUtils.demergePatterns("ABCDEF", "......"));
- Assert.assertEquals("......", AclFormattingUtils.demergePatterns("ABCDEF", "GHIJKL"));
- }
-
- public final void testMergePatternsParametersConstraints() throws Exception {
- try {
- AclFormattingUtils.mergePatterns(null, "SOME STRING");
- Assert.fail("It should have thrown IllegalArgumentException");
- }
- catch (IllegalArgumentException expected) {
- Assert.assertTrue(true);
- }
-
- try {
- AclFormattingUtils.mergePatterns("SOME STRING", null);
- Assert.fail("It should have thrown IllegalArgumentException");
- }
- catch (IllegalArgumentException expected) {
- Assert.assertTrue(true);
- }
-
- try {
- AclFormattingUtils.mergePatterns("SOME STRING", "LONGER SOME STRING");
- Assert.fail("It should have thrown IllegalArgumentException");
- }
- catch (IllegalArgumentException expected) {
- Assert.assertTrue(true);
- }
-
- try {
- AclFormattingUtils.mergePatterns("SOME STRING", "SAME LENGTH");
- Assert.assertTrue(true);
- }
- catch (IllegalArgumentException notExpected) {
- Assert.fail("It shouldn't have thrown IllegalArgumentException");
- }
- }
-
- public final void testMergePatterns() throws Exception {
- String original = "...............................R";
- String extraBits = "...........................A....";
- Assert.assertEquals("...........................A...R", AclFormattingUtils
- .mergePatterns(original, extraBits));
-
- Assert.assertEquals("ABCDEF", AclFormattingUtils.mergePatterns("ABCDEF", "......"));
- Assert.assertEquals("GHIJKL", AclFormattingUtils.mergePatterns("ABCDEF", "GHIJKL"));
- }
-
- public final void testBinaryPrints() throws Exception {
- Assert.assertEquals("............................****", AclFormattingUtils.printBinary(15));
-
- try {
- AclFormattingUtils.printBinary(15, Permission.RESERVED_ON);
- Assert.fail("It should have thrown IllegalArgumentException");
- }
- catch (IllegalArgumentException notExpected) {
- Assert.assertTrue(true);
- }
-
- try {
- AclFormattingUtils.printBinary(15, Permission.RESERVED_OFF);
- Assert.fail("It should have thrown IllegalArgumentException");
- }
- catch (IllegalArgumentException notExpected) {
- Assert.assertTrue(true);
- }
-
- Assert.assertEquals("............................xxxx", AclFormattingUtils.printBinary(15, 'x'));
- }
-}
+package org.springframework.security.acls;
+
+import org.springframework.security.acls.domain.AclFormattingUtils;
+import org.springframework.security.acls.model.Permission;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+/**
+ * Tests for {@link AclFormattingUtils}.
+ *
+ * @author Andrei Stefan
+ */
+public class AclFormattingUtilsTests extends TestCase {
+
+ //~ Methods ========================================================================================================
+
+ public final void testDemergePatternsParametersConstraints() throws Exception {
+ try {
+ AclFormattingUtils.demergePatterns(null, "SOME STRING");
+ Assert.fail("It should have thrown IllegalArgumentException");
+ }
+ catch (IllegalArgumentException expected) {
+ Assert.assertTrue(true);
+ }
+
+ try {
+ AclFormattingUtils.demergePatterns("SOME STRING", null);
+ Assert.fail("It should have thrown IllegalArgumentException");
+ }
+ catch (IllegalArgumentException expected) {
+ Assert.assertTrue(true);
+ }
+
+ try {
+ AclFormattingUtils.demergePatterns("SOME STRING", "LONGER SOME STRING");
+ Assert.fail("It should have thrown IllegalArgumentException");
+ }
+ catch (IllegalArgumentException expected) {
+ Assert.assertTrue(true);
+ }
+
+ try {
+ AclFormattingUtils.demergePatterns("SOME STRING", "SAME LENGTH");
+ Assert.assertTrue(true);
+ }
+ catch (IllegalArgumentException notExpected) {
+ Assert.fail("It shouldn't have thrown IllegalArgumentException");
+ }
+ }
+
+ public final void testDemergePatterns() throws Exception {
+ String original = "...........................A...R";
+ String removeBits = "...............................R";
+ Assert.assertEquals("...........................A....", AclFormattingUtils
+ .demergePatterns(original, removeBits));
+
+ Assert.assertEquals("ABCDEF", AclFormattingUtils.demergePatterns("ABCDEF", "......"));
+ Assert.assertEquals("......", AclFormattingUtils.demergePatterns("ABCDEF", "GHIJKL"));
+ }
+
+ public final void testMergePatternsParametersConstraints() throws Exception {
+ try {
+ AclFormattingUtils.mergePatterns(null, "SOME STRING");
+ Assert.fail("It should have thrown IllegalArgumentException");
+ }
+ catch (IllegalArgumentException expected) {
+ Assert.assertTrue(true);
+ }
+
+ try {
+ AclFormattingUtils.mergePatterns("SOME STRING", null);
+ Assert.fail("It should have thrown IllegalArgumentException");
+ }
+ catch (IllegalArgumentException expected) {
+ Assert.assertTrue(true);
+ }
+
+ try {
+ AclFormattingUtils.mergePatterns("SOME STRING", "LONGER SOME STRING");
+ Assert.fail("It should have thrown IllegalArgumentException");
+ }
+ catch (IllegalArgumentException expected) {
+ Assert.assertTrue(true);
+ }
+
+ try {
+ AclFormattingUtils.mergePatterns("SOME STRING", "SAME LENGTH");
+ Assert.assertTrue(true);
+ }
+ catch (IllegalArgumentException notExpected) {
+ Assert.fail("It shouldn't have thrown IllegalArgumentException");
+ }
+ }
+
+ public final void testMergePatterns() throws Exception {
+ String original = "...............................R";
+ String extraBits = "...........................A....";
+ Assert.assertEquals("...........................A...R", AclFormattingUtils
+ .mergePatterns(original, extraBits));
+
+ Assert.assertEquals("ABCDEF", AclFormattingUtils.mergePatterns("ABCDEF", "......"));
+ Assert.assertEquals("GHIJKL", AclFormattingUtils.mergePatterns("ABCDEF", "GHIJKL"));
+ }
+
+ public final void testBinaryPrints() throws Exception {
+ Assert.assertEquals("............................****", AclFormattingUtils.printBinary(15));
+
+ try {
+ AclFormattingUtils.printBinary(15, Permission.RESERVED_ON);
+ Assert.fail("It should have thrown IllegalArgumentException");
+ }
+ catch (IllegalArgumentException notExpected) {
+ Assert.assertTrue(true);
+ }
+
+ try {
+ AclFormattingUtils.printBinary(15, Permission.RESERVED_OFF);
+ Assert.fail("It should have thrown IllegalArgumentException");
+ }
+ catch (IllegalArgumentException notExpected) {
+ Assert.assertTrue(true);
+ }
+
+ Assert.assertEquals("............................xxxx", AclFormattingUtils.printBinary(15, 'x'));
+ }
+}
diff --git a/acl/src/test/java/org/springframework/security/acls/AclPermissionEvaluatorTests.java b/acl/src/test/java/org/springframework/security/acls/AclPermissionEvaluatorTests.java
index 32c1420c4e..d07db14622 100644
--- a/acl/src/test/java/org/springframework/security/acls/AclPermissionEvaluatorTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/AclPermissionEvaluatorTests.java
@@ -15,7 +15,6 @@ import org.springframework.security.core.Authentication;
/**
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public class AclPermissionEvaluatorTests {
diff --git a/acl/src/test/java/org/springframework/security/acls/TargetObject.java b/acl/src/test/java/org/springframework/security/acls/TargetObject.java
index b51f5aa11c..e9738e40f8 100644
--- a/acl/src/test/java/org/springframework/security/acls/TargetObject.java
+++ b/acl/src/test/java/org/springframework/security/acls/TargetObject.java
@@ -4,7 +4,6 @@ package org.springframework.security.acls;
* Dummy domain object class
*
* @author Luke Taylor
- * @version $Id$
*/
public final class TargetObject {
diff --git a/acl/src/test/java/org/springframework/security/acls/domain/AccessControlImplEntryTests.java b/acl/src/test/java/org/springframework/security/acls/domain/AccessControlImplEntryTests.java
index 19bfb928f0..db782d3bec 100644
--- a/acl/src/test/java/org/springframework/security/acls/domain/AccessControlImplEntryTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/domain/AccessControlImplEntryTests.java
@@ -1,105 +1,104 @@
-package org.springframework.security.acls.domain;
-
-import static org.junit.Assert.*;
-
-import org.jmock.Expectations;
-import org.jmock.Mockery;
-import org.jmock.integration.junit4.JUnit4Mockery;
-import org.junit.Test;
-import org.springframework.security.acls.model.AccessControlEntry;
-import org.springframework.security.acls.model.Acl;
-import org.springframework.security.acls.model.AuditableAccessControlEntry;
-import org.springframework.security.acls.model.ObjectIdentity;
-import org.springframework.security.acls.model.Sid;
-
-/**
- * Tests for {@link AccessControlEntryImpl}.
- *
- * @author Andrei Stefan
- * @version $Id$
- */
-public class AccessControlImplEntryTests {
- Mockery jmock = new JUnit4Mockery();
-
- //~ Methods ========================================================================================================
-
- @Test
- public void testConstructorRequiredFields() {
- // Check Acl field is present
- try {
- new AccessControlEntryImpl(null, null, new PrincipalSid("johndoe"),
- BasePermission.ADMINISTRATION, true, true, true);
- fail("It should have thrown IllegalArgumentException");
- }
- catch (IllegalArgumentException expected) {
- }
-
- // Check Sid field is present
- try {
- new AccessControlEntryImpl(null, jmock.mock(Acl.class), null,
- BasePermission.ADMINISTRATION, true, true, true);
- fail("It should have thrown IllegalArgumentException");
- }
- catch (IllegalArgumentException expected) {
- }
-
- // Check Permission field is present
- try {
- new AccessControlEntryImpl(null, jmock.mock(Acl.class), new PrincipalSid("johndoe"), null,
- true, true, true);
- fail("It should have thrown IllegalArgumentException");
- }
- catch (IllegalArgumentException expected) {
- }
- }
-
- @Test
- public void testAccessControlEntryImplGetters() {
- Acl mockAcl = jmock.mock(Acl.class);
- Sid sid = new PrincipalSid("johndoe");
-
- // Create a sample entry
- AccessControlEntry ace = new AccessControlEntryImpl(new Long(1), mockAcl, sid, BasePermission.ADMINISTRATION,
- true, true, true);
-
- // and check every get() method
- assertEquals(new Long(1), ace.getId());
- assertEquals(mockAcl, ace.getAcl());
- assertEquals(sid, ace.getSid());
- assertTrue(ace.isGranting());
- assertEquals(BasePermission.ADMINISTRATION, ace.getPermission());
- assertTrue(((AuditableAccessControlEntry) ace).isAuditFailure());
- assertTrue(((AuditableAccessControlEntry) ace).isAuditSuccess());
- }
-
- @Test
- public void testEquals() {
- final Acl mockAcl = jmock.mock(Acl.class);
- final ObjectIdentity oid = jmock.mock(ObjectIdentity.class);
- jmock.checking(new Expectations() {{
- allowing(mockAcl).getObjectIdentity(); will(returnValue(oid));
- }});
- Sid sid = new PrincipalSid("johndoe");
-
- AccessControlEntry ace = new AccessControlEntryImpl(new Long(1), mockAcl, sid, BasePermission.ADMINISTRATION,
- true, true, true);
-
- assertFalse(ace.equals(null));
- assertFalse(ace.equals(new Long(100)));
- assertTrue(ace.equals(ace));
- assertTrue(ace.equals(new AccessControlEntryImpl(new Long(1), mockAcl, sid,
- BasePermission.ADMINISTRATION, true, true, true)));
- assertFalse(ace.equals(new AccessControlEntryImpl(new Long(2), mockAcl, sid,
- BasePermission.ADMINISTRATION, true, true, true)));
- assertFalse(ace.equals(new AccessControlEntryImpl(new Long(1), mockAcl, new PrincipalSid("scott"),
- BasePermission.ADMINISTRATION, true, true, true)));
- assertFalse(ace.equals(new AccessControlEntryImpl(new Long(1), mockAcl, sid, BasePermission.WRITE, true,
- true, true)));
- assertFalse(ace.equals(new AccessControlEntryImpl(new Long(1), mockAcl, sid,
- BasePermission.ADMINISTRATION, false, true, true)));
- assertFalse(ace.equals(new AccessControlEntryImpl(new Long(1), mockAcl, sid,
- BasePermission.ADMINISTRATION, true, false, true)));
- assertFalse(ace.equals(new AccessControlEntryImpl(new Long(1), mockAcl, sid,
- BasePermission.ADMINISTRATION, true, true, false)));
- }
-}
+package org.springframework.security.acls.domain;
+
+import static org.junit.Assert.*;
+
+import org.jmock.Expectations;
+import org.jmock.Mockery;
+import org.jmock.integration.junit4.JUnit4Mockery;
+import org.junit.Test;
+import org.springframework.security.acls.model.AccessControlEntry;
+import org.springframework.security.acls.model.Acl;
+import org.springframework.security.acls.model.AuditableAccessControlEntry;
+import org.springframework.security.acls.model.ObjectIdentity;
+import org.springframework.security.acls.model.Sid;
+
+/**
+ * Tests for {@link AccessControlEntryImpl}.
+ *
+ * @author Andrei Stefan
+ */
+public class AccessControlImplEntryTests {
+ Mockery jmock = new JUnit4Mockery();
+
+ //~ Methods ========================================================================================================
+
+ @Test
+ public void testConstructorRequiredFields() {
+ // Check Acl field is present
+ try {
+ new AccessControlEntryImpl(null, null, new PrincipalSid("johndoe"),
+ BasePermission.ADMINISTRATION, true, true, true);
+ fail("It should have thrown IllegalArgumentException");
+ }
+ catch (IllegalArgumentException expected) {
+ }
+
+ // Check Sid field is present
+ try {
+ new AccessControlEntryImpl(null, jmock.mock(Acl.class), null,
+ BasePermission.ADMINISTRATION, true, true, true);
+ fail("It should have thrown IllegalArgumentException");
+ }
+ catch (IllegalArgumentException expected) {
+ }
+
+ // Check Permission field is present
+ try {
+ new AccessControlEntryImpl(null, jmock.mock(Acl.class), new PrincipalSid("johndoe"), null,
+ true, true, true);
+ fail("It should have thrown IllegalArgumentException");
+ }
+ catch (IllegalArgumentException expected) {
+ }
+ }
+
+ @Test
+ public void testAccessControlEntryImplGetters() {
+ Acl mockAcl = jmock.mock(Acl.class);
+ Sid sid = new PrincipalSid("johndoe");
+
+ // Create a sample entry
+ AccessControlEntry ace = new AccessControlEntryImpl(new Long(1), mockAcl, sid, BasePermission.ADMINISTRATION,
+ true, true, true);
+
+ // and check every get() method
+ assertEquals(new Long(1), ace.getId());
+ assertEquals(mockAcl, ace.getAcl());
+ assertEquals(sid, ace.getSid());
+ assertTrue(ace.isGranting());
+ assertEquals(BasePermission.ADMINISTRATION, ace.getPermission());
+ assertTrue(((AuditableAccessControlEntry) ace).isAuditFailure());
+ assertTrue(((AuditableAccessControlEntry) ace).isAuditSuccess());
+ }
+
+ @Test
+ public void testEquals() {
+ final Acl mockAcl = jmock.mock(Acl.class);
+ final ObjectIdentity oid = jmock.mock(ObjectIdentity.class);
+ jmock.checking(new Expectations() {{
+ allowing(mockAcl).getObjectIdentity(); will(returnValue(oid));
+ }});
+ Sid sid = new PrincipalSid("johndoe");
+
+ AccessControlEntry ace = new AccessControlEntryImpl(new Long(1), mockAcl, sid, BasePermission.ADMINISTRATION,
+ true, true, true);
+
+ assertFalse(ace.equals(null));
+ assertFalse(ace.equals(new Long(100)));
+ assertTrue(ace.equals(ace));
+ assertTrue(ace.equals(new AccessControlEntryImpl(new Long(1), mockAcl, sid,
+ BasePermission.ADMINISTRATION, true, true, true)));
+ assertFalse(ace.equals(new AccessControlEntryImpl(new Long(2), mockAcl, sid,
+ BasePermission.ADMINISTRATION, true, true, true)));
+ assertFalse(ace.equals(new AccessControlEntryImpl(new Long(1), mockAcl, new PrincipalSid("scott"),
+ BasePermission.ADMINISTRATION, true, true, true)));
+ assertFalse(ace.equals(new AccessControlEntryImpl(new Long(1), mockAcl, sid, BasePermission.WRITE, true,
+ true, true)));
+ assertFalse(ace.equals(new AccessControlEntryImpl(new Long(1), mockAcl, sid,
+ BasePermission.ADMINISTRATION, false, true, true)));
+ assertFalse(ace.equals(new AccessControlEntryImpl(new Long(1), mockAcl, sid,
+ BasePermission.ADMINISTRATION, true, false, true)));
+ assertFalse(ace.equals(new AccessControlEntryImpl(new Long(1), mockAcl, sid,
+ BasePermission.ADMINISTRATION, true, true, false)));
+ }
+}
diff --git a/acl/src/test/java/org/springframework/security/acls/domain/AclImplTests.java b/acl/src/test/java/org/springframework/security/acls/domain/AclImplTests.java
index a01b5ad9e0..413b4d5e1c 100644
--- a/acl/src/test/java/org/springframework/security/acls/domain/AclImplTests.java
+++ b/acl/src/test/java/org/springframework/security/acls/domain/AclImplTests.java
@@ -1,567 +1,567 @@
-package org.springframework.security.acls.domain;
-
-import static org.junit.Assert.*;
-import static org.mockito.Mockito.mock;
-
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-import org.jmock.Mockery;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.springframework.security.acls.model.AccessControlEntry;
-import org.springframework.security.acls.model.Acl;
-import org.springframework.security.acls.model.AlreadyExistsException;
-import org.springframework.security.acls.model.AuditableAccessControlEntry;
-import org.springframework.security.acls.model.AuditableAcl;
-import org.springframework.security.acls.model.ChildrenExistException;
-import org.springframework.security.acls.model.MutableAcl;
-import org.springframework.security.acls.model.MutableAclService;
-import org.springframework.security.acls.model.NotFoundException;
-import org.springframework.security.acls.model.ObjectIdentity;
-import org.springframework.security.acls.model.OwnershipAcl;
-import org.springframework.security.acls.model.Permission;
-import org.springframework.security.acls.model.Sid;
-import org.springframework.security.authentication.TestingAuthenticationToken;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.GrantedAuthority;
-import org.springframework.security.core.authority.GrantedAuthorityImpl;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.util.FieldUtils;
-
-
-/**
- * Tests for {@link AclImpl}.
- *
- * @author Andrei Stefan
- */
-public class AclImplTests {
- private static final String TARGET_CLASS = "org.springframework.security.acls.TargetObject";
- private static final List- * This is the default StatelessTicketCache of the @link {@link CasAuthenticationProvider} to - * eliminate the unnecessary dependency on EhCache that applications have even if they are not using - * the stateless session management. - * - * @author Scott Battaglia - * @version $Id$ - * - *@see CasAuthenticationProvider - */ -public final class NullStatelessTicketCache implements StatelessTicketCache { - - /** - * @return null since we are not storing any tickets. - */ - public CasAuthenticationToken getByTicketId(final String serviceTicket) { - return null; - } - - /** - * This is a no-op since we are not storing tickets. - */ - public void putTicketInCache(final CasAuthenticationToken token) { - // nothing to do - } - - /** - * This is a no-op since we are not storing tickets. - */ - public void removeTicketFromCache(final CasAuthenticationToken token) { - // nothing to do - } - - /** - * This is a no-op since we are not storing tickets. - */ - public void removeTicketFromCache(final String serviceTicket) { - // nothing to do - } -} +/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.security.cas.authentication; + + +/** + * Implementation of @link {@link StatelessTicketCache} that has no backing cache. Useful + * in instances where storing of tickets for stateless session management is not required. + *
+ * This is the default StatelessTicketCache of the @link {@link CasAuthenticationProvider} to + * eliminate the unnecessary dependency on EhCache that applications have even if they are not using + * the stateless session management. + * + * @author Scott Battaglia + * + *@see CasAuthenticationProvider + */ +public final class NullStatelessTicketCache implements StatelessTicketCache { + + /** + * @return null since we are not storing any tickets. + */ + public CasAuthenticationToken getByTicketId(final String serviceTicket) { + return null; + } + + /** + * This is a no-op since we are not storing tickets. + */ + public void putTicketInCache(final CasAuthenticationToken token) { + // nothing to do + } + + /** + * This is a no-op since we are not storing tickets. + */ + public void removeTicketFromCache(final CasAuthenticationToken token) { + // nothing to do + } + + /** + * This is a no-op since we are not storing tickets. + */ + public void removeTicketFromCache(final String serviceTicket) { + // nothing to do + } +} diff --git a/cas/src/main/java/org/springframework/security/cas/authentication/StatelessTicketCache.java b/cas/src/main/java/org/springframework/security/cas/authentication/StatelessTicketCache.java index a0500bcb47..6d9b22ec54 100644 --- a/cas/src/main/java/org/springframework/security/cas/authentication/StatelessTicketCache.java +++ b/cas/src/main/java/org/springframework/security/cas/authentication/StatelessTicketCache.java @@ -57,7 +57,6 @@ package org.springframework.security.cas.authentication; *
* * @author Ben Alex - * @version $Id$ */ public interface StatelessTicketCache { //~ Methods ================================================================ diff --git a/cas/src/main/java/org/springframework/security/cas/userdetails/AbstractCasAssertionUserDetailsService.java b/cas/src/main/java/org/springframework/security/cas/userdetails/AbstractCasAssertionUserDetailsService.java index 9028dcec74..c62885b104 100644 --- a/cas/src/main/java/org/springframework/security/cas/userdetails/AbstractCasAssertionUserDetailsService.java +++ b/cas/src/main/java/org/springframework/security/cas/userdetails/AbstractCasAssertionUserDetailsService.java @@ -27,7 +27,6 @@ import org.jasig.cas.client.validation.Assertion; * useful when combined with a SAML-based response from the CAS Server/client. * * @author Scott Battaglia - * @version $Revision$ $Date$ * @since 3.0 */ public abstract class AbstractCasAssertionUserDetailsService implements AuthenticationUserDetailsService { diff --git a/cas/src/main/java/org/springframework/security/cas/userdetails/GrantedAuthorityFromAssertionAttributesUserDetailsService.java b/cas/src/main/java/org/springframework/security/cas/userdetails/GrantedAuthorityFromAssertionAttributesUserDetailsService.java index 7251f3de69..b6adc850f0 100644 --- a/cas/src/main/java/org/springframework/security/cas/userdetails/GrantedAuthorityFromAssertionAttributesUserDetailsService.java +++ b/cas/src/main/java/org/springframework/security/cas/userdetails/GrantedAuthorityFromAssertionAttributesUserDetailsService.java @@ -30,7 +30,6 @@ import java.util.ArrayList; * value then its not added. * * @author Scott Battaglia - * @version $Revision$ $Date$ * @since 3.0 */ public final class GrantedAuthorityFromAssertionAttributesUserDetailsService extends AbstractCasAssertionUserDetailsService { diff --git a/cas/src/main/java/org/springframework/security/cas/web/CasAuthenticationEntryPoint.java b/cas/src/main/java/org/springframework/security/cas/web/CasAuthenticationEntryPoint.java index de96842f8e..cb4a8a2146 100644 --- a/cas/src/main/java/org/springframework/security/cas/web/CasAuthenticationEntryPoint.java +++ b/cas/src/main/java/org/springframework/security/cas/web/CasAuthenticationEntryPoint.java @@ -33,7 +33,7 @@ import org.springframework.util.Assert; * Used by theExceptionTranslationFilter to commence authentication via the JA-SIG Central
* Authentication Service (CAS).
*
- * The user's browser will be redirected to the JA-SIG CAS enterprise-wide login page.
+ * The user's browser will be redirected to the JA-SIG CAS enterprise-wide login page.
* This page is specified by the loginUrl property. Once login is complete, the CAS login page will
* redirect to the page indicated by the service property. The service is a HTTP URL
* belonging to the current application. The service URL is monitored by the {@link CasAuthenticationFilter},
@@ -41,7 +41,6 @@ import org.springframework.util.Assert;
*
* @author Ben Alex
* @author Scott Battaglia
- * @version $Id$
*/
public class CasAuthenticationEntryPoint implements AuthenticationEntryPoint, InitializingBean {
//~ Instance fields ================================================================================================
@@ -83,7 +82,7 @@ public class CasAuthenticationEntryPoint implements AuthenticationEntryPoint, In
* Constructs a new Service Url. The default implementation relies on the CAS client to do the bulk of the work.
* @param request the HttpServletRequest
* @param response the HttpServlet Response
- * @return the constructed service url. CANNOT be NULL.
+ * @return the constructed service url. CANNOT be NULL.
*/
protected String createServiceUrl(final HttpServletRequest request, final HttpServletResponse response) {
return CommonUtils.constructServiceUrl(null, response, this.serviceProperties.getService(), null, this.serviceProperties.getArtifactParameter(), this.encodeServiceUrlWithSessionId);
@@ -101,7 +100,7 @@ public class CasAuthenticationEntryPoint implements AuthenticationEntryPoint, In
/**
* Template method for you to do your own pre-processing before the redirect occurs.
- *
+ *
* @param request the HttpServletRequest
* @param response the HttpServletResponse
*/
diff --git a/cas/src/main/java/org/springframework/security/cas/web/CasAuthenticationFilter.java b/cas/src/main/java/org/springframework/security/cas/web/CasAuthenticationFilter.java
index d652ee3342..314a1fdfd2 100644
--- a/cas/src/main/java/org/springframework/security/cas/web/CasAuthenticationFilter.java
+++ b/cas/src/main/java/org/springframework/security/cas/web/CasAuthenticationFilter.java
@@ -54,7 +54,6 @@ import org.springframework.security.web.authentication.AbstractAuthenticationPro
* By default this filter processes the URL /j_spring_cas_security_check.
*
* @author Ben Alex
- * @version $Id$
*/
public class CasAuthenticationFilter extends AbstractAuthenticationProcessingFilter {
//~ Static fields/initializers =====================================================================================
diff --git a/cas/src/main/java/org/springframework/security/cas/web/package.html b/cas/src/main/java/org/springframework/security/cas/web/package.html
index beb6fde0b1..ab7677598f 100644
--- a/cas/src/main/java/org/springframework/security/cas/web/package.html
+++ b/cas/src/main/java/org/springframework/security/cas/web/package.html
@@ -1,6 +1,6 @@
ConfigAttributes for the same secure object target.
*
* @author Ben Alex
- * @version $Id$
*/
public interface ConfigAttribute extends Serializable {
//~ Methods ========================================================================================================
diff --git a/core/src/main/java/org/springframework/security/access/ConfigAttributeEditor.java b/core/src/main/java/org/springframework/security/access/ConfigAttributeEditor.java
index 8240ef78fc..a92fb0f40b 100644
--- a/core/src/main/java/org/springframework/security/access/ConfigAttributeEditor.java
+++ b/core/src/main/java/org/springframework/security/access/ConfigAttributeEditor.java
@@ -27,7 +27,6 @@ import java.beans.PropertyEditorSupport;
*
* @author Ben Alex
* @deprecated
- * @version $Id$
*/
public class ConfigAttributeEditor extends PropertyEditorSupport {
//~ Methods ========================================================================================================
diff --git a/core/src/main/java/org/springframework/security/access/PermissionEvaluator.java b/core/src/main/java/org/springframework/security/access/PermissionEvaluator.java
index 72f159357b..50e4d6ed45 100644
--- a/core/src/main/java/org/springframework/security/access/PermissionEvaluator.java
+++ b/core/src/main/java/org/springframework/security/access/PermissionEvaluator.java
@@ -10,7 +10,6 @@ import org.springframework.security.core.Authentication;
*
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public interface PermissionEvaluator {
diff --git a/core/src/main/java/org/springframework/security/access/SecurityConfig.java b/core/src/main/java/org/springframework/security/access/SecurityConfig.java
index f13300844d..7e7430ef4b 100644
--- a/core/src/main/java/org/springframework/security/access/SecurityConfig.java
+++ b/core/src/main/java/org/springframework/security/access/SecurityConfig.java
@@ -25,7 +25,6 @@ import org.springframework.util.StringUtils;
* Stores a {@link ConfigAttribute} as a String.
*
* @author Ben Alex
- * @version $Id$
*/
public class SecurityConfig implements ConfigAttribute {
//~ Instance fields ================================================================================================
diff --git a/core/src/main/java/org/springframework/security/access/SecurityMetadataSource.java b/core/src/main/java/org/springframework/security/access/SecurityMetadataSource.java
index 905b643d9f..b0633141fd 100644
--- a/core/src/main/java/org/springframework/security/access/SecurityMetadataSource.java
+++ b/core/src/main/java/org/springframework/security/access/SecurityMetadataSource.java
@@ -26,7 +26,6 @@ import org.springframework.security.access.intercept.AbstractSecurityInterceptor
* invocation.
*
* @author Ben Alex
- * @version $Id$
*/
public interface SecurityMetadataSource extends AopInfrastructureBean {
//~ Methods ========================================================================================================
diff --git a/core/src/main/java/org/springframework/security/access/annotation/Jsr250MethodSecurityMetadataSource.java b/core/src/main/java/org/springframework/security/access/annotation/Jsr250MethodSecurityMetadataSource.java
index cf07142241..541f207f83 100644
--- a/core/src/main/java/org/springframework/security/access/annotation/Jsr250MethodSecurityMetadataSource.java
+++ b/core/src/main/java/org/springframework/security/access/annotation/Jsr250MethodSecurityMetadataSource.java
@@ -34,7 +34,6 @@ import org.springframework.security.access.method.AbstractFallbackMethodSecurity
* Sources method security metadata from major JSR 250 security annotations.
*
* @author Ben Alex
- * @version $Id$
* @since 2.0
*/
public class Jsr250MethodSecurityMetadataSource extends AbstractFallbackMethodSecurityMetadataSource {
diff --git a/core/src/main/java/org/springframework/security/access/annotation/Secured.java b/core/src/main/java/org/springframework/security/access/annotation/Secured.java
index aa9df1e4ef..8cd792d76c 100644
--- a/core/src/main/java/org/springframework/security/access/annotation/Secured.java
+++ b/core/src/main/java/org/springframework/security/access/annotation/Secured.java
@@ -40,7 +40,6 @@ import java.lang.annotation.Target;
* public void delete(Contact contact);
*
* @author Mark St.Godard
- * @version $Id$
*/
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
diff --git a/core/src/main/java/org/springframework/security/access/annotation/SecuredAnnotationSecurityMetadataSource.java b/core/src/main/java/org/springframework/security/access/annotation/SecuredAnnotationSecurityMetadataSource.java
index 3c5fd537e9..162eeb52d3 100644
--- a/core/src/main/java/org/springframework/security/access/annotation/SecuredAnnotationSecurityMetadataSource.java
+++ b/core/src/main/java/org/springframework/security/access/annotation/SecuredAnnotationSecurityMetadataSource.java
@@ -31,7 +31,6 @@ import org.springframework.security.access.method.AbstractFallbackMethodSecurity
* Sources method security metadata from Spring Security's {@link Secured} annotation.
*
* @author Ben Alex
- * @version $Id$
*/
public class SecuredAnnotationSecurityMetadataSource extends AbstractFallbackMethodSecurityMetadataSource {
diff --git a/core/src/main/java/org/springframework/security/access/event/AbstractAuthorizationEvent.java b/core/src/main/java/org/springframework/security/access/event/AbstractAuthorizationEvent.java
index 3a19049c73..64dd6530d3 100644
--- a/core/src/main/java/org/springframework/security/access/event/AbstractAuthorizationEvent.java
+++ b/core/src/main/java/org/springframework/security/access/event/AbstractAuthorizationEvent.java
@@ -22,7 +22,6 @@ import org.springframework.context.ApplicationEvent;
* Abstract superclass for all security interception related events.
*
* @author Ben Alex
- * @version $Id$
*/
public abstract class AbstractAuthorizationEvent extends ApplicationEvent {
//~ Constructors ===================================================================================================
diff --git a/core/src/main/java/org/springframework/security/access/event/AuthenticationCredentialsNotFoundEvent.java b/core/src/main/java/org/springframework/security/access/event/AuthenticationCredentialsNotFoundEvent.java
index 58a277240a..17d5cb4cda 100644
--- a/core/src/main/java/org/springframework/security/access/event/AuthenticationCredentialsNotFoundEvent.java
+++ b/core/src/main/java/org/springframework/security/access/event/AuthenticationCredentialsNotFoundEvent.java
@@ -26,7 +26,6 @@ import org.springframework.security.authentication.AuthenticationCredentialsNotF
* the SecurityContextHolder.
*
* @author Ben Alex
- * @version $Id$
*/
public class AuthenticationCredentialsNotFoundEvent extends AbstractAuthorizationEvent {
//~ Instance fields ================================================================================================
diff --git a/core/src/main/java/org/springframework/security/access/event/AuthorizationFailureEvent.java b/core/src/main/java/org/springframework/security/access/event/AuthorizationFailureEvent.java
index f626bf9b55..f3e685a6ed 100644
--- a/core/src/main/java/org/springframework/security/access/event/AuthorizationFailureEvent.java
+++ b/core/src/main/java/org/springframework/security/access/event/AuthorizationFailureEvent.java
@@ -31,7 +31,6 @@ import org.springframework.security.core.Authentication;
* {@link org.springframework.security.access.intercept.AfterInvocationManager AfterInvocationManager}.
*
* @author Ben Alex
- * @version $Id$
*/
public class AuthorizationFailureEvent extends AbstractAuthorizationEvent {
//~ Instance fields ================================================================================================
diff --git a/core/src/main/java/org/springframework/security/access/event/AuthorizedEvent.java b/core/src/main/java/org/springframework/security/access/event/AuthorizedEvent.java
index b186d5bfe8..1f18725e36 100644
--- a/core/src/main/java/org/springframework/security/access/event/AuthorizedEvent.java
+++ b/core/src/main/java/org/springframework/security/access/event/AuthorizedEvent.java
@@ -26,7 +26,6 @@ import org.springframework.security.core.Authentication;
* proceed.
*
* @author Ben Alex
- * @version $Id$
*/
public class AuthorizedEvent extends AbstractAuthorizationEvent {
//~ Instance fields ================================================================================================
diff --git a/core/src/main/java/org/springframework/security/access/event/LoggerListener.java b/core/src/main/java/org/springframework/security/access/event/LoggerListener.java
index f5aa69b746..7411498781 100644
--- a/core/src/main/java/org/springframework/security/access/event/LoggerListener.java
+++ b/core/src/main/java/org/springframework/security/access/event/LoggerListener.java
@@ -28,7 +28,6 @@ import org.springframework.context.ApplicationListener;
*
*
* @author Ben Alex
- * @version $Id$
*/
public class LoggerListener implements ApplicationListenerPublished just before the secure object attempts to proceed.
* * @author Ben Alex - * @version $Id$ */ public class PublicInvocationEvent extends AbstractAuthorizationEvent { //~ Constructors =================================================================================================== diff --git a/core/src/main/java/org/springframework/security/access/expression/SecurityExpressionRoot.java b/core/src/main/java/org/springframework/security/access/expression/SecurityExpressionRoot.java index 2ab7653837..0d6174a569 100644 --- a/core/src/main/java/org/springframework/security/access/expression/SecurityExpressionRoot.java +++ b/core/src/main/java/org/springframework/security/access/expression/SecurityExpressionRoot.java @@ -15,7 +15,6 @@ import org.springframework.security.core.authority.AuthorityUtils; * Base root object for use in Spring Security expression evaluations. * * @author Luke Taylor - * @version $Id$ * @since 3.0 */ public abstract class SecurityExpressionRoot { diff --git a/core/src/main/java/org/springframework/security/access/expression/method/AbstractExpressionBasedMethodConfigAttribute.java b/core/src/main/java/org/springframework/security/access/expression/method/AbstractExpressionBasedMethodConfigAttribute.java index e02eb27a97..f0f1c05183 100644 --- a/core/src/main/java/org/springframework/security/access/expression/method/AbstractExpressionBasedMethodConfigAttribute.java +++ b/core/src/main/java/org/springframework/security/access/expression/method/AbstractExpressionBasedMethodConfigAttribute.java @@ -14,7 +14,6 @@ import org.springframework.util.Assert; * Either filter or authorization expressions may be null, but not both. * * @author Luke Taylor - * @version $Id$ * @since 3.0 */ abstract class AbstractExpressionBasedMethodConfigAttribute implements ConfigAttribute { diff --git a/core/src/main/java/org/springframework/security/access/expression/method/DefaultMethodSecurityExpressionHandler.java b/core/src/main/java/org/springframework/security/access/expression/method/DefaultMethodSecurityExpressionHandler.java index fb1fbdf7b1..b12b0d6ab8 100644 --- a/core/src/main/java/org/springframework/security/access/expression/method/DefaultMethodSecurityExpressionHandler.java +++ b/core/src/main/java/org/springframework/security/access/expression/method/DefaultMethodSecurityExpressionHandler.java @@ -27,7 +27,6 @@ import org.springframework.security.core.Authentication; * A single instance should usually be shared amongst the beans that require expression support. * * @author Luke Taylor - * @version $Id$ * @since 3.0 */ public class DefaultMethodSecurityExpressionHandler implements MethodSecurityExpressionHandler { diff --git a/core/src/main/java/org/springframework/security/access/expression/method/DenyAllPermissionEvaluator.java b/core/src/main/java/org/springframework/security/access/expression/method/DenyAllPermissionEvaluator.java index 0b9a0e9667..0c1783d0fc 100644 --- a/core/src/main/java/org/springframework/security/access/expression/method/DenyAllPermissionEvaluator.java +++ b/core/src/main/java/org/springframework/security/access/expression/method/DenyAllPermissionEvaluator.java @@ -12,7 +12,6 @@ import org.springframework.security.core.Authentication; * evaluation should not be required. * * @author Luke Taylor - * @version $Id$ * @since 3.0 */ class DenyAllPermissionEvaluator implements PermissionEvaluator { diff --git a/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedAnnotationAttributeFactory.java b/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedAnnotationAttributeFactory.java index 9705cbf3e2..48b2c50dc1 100644 --- a/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedAnnotationAttributeFactory.java +++ b/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedAnnotationAttributeFactory.java @@ -19,7 +19,6 @@ import org.springframework.security.access.prepost.PrePostInvocationAttributeFac * an expression to be evaluated at runtime. * * @author Luke Taylor - * @version $Id$ * @since 3.0 */ public class ExpressionBasedAnnotationAttributeFactory implements PrePostInvocationAttributeFactory { diff --git a/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedPostInvocationAdvice.java b/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedPostInvocationAdvice.java index 3cbf4811c9..ec73a04798 100644 --- a/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedPostInvocationAdvice.java +++ b/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedPostInvocationAdvice.java @@ -14,7 +14,6 @@ import org.springframework.security.core.Authentication; /** * * @author Luke Taylor - * @version $Id$ * @since 3.0 */ public class ExpressionBasedPostInvocationAdvice implements PostInvocationAuthorizationAdvice{ diff --git a/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedPreInvocationAdvice.java b/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedPreInvocationAdvice.java index 5b8432bc5b..c772088195 100644 --- a/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedPreInvocationAdvice.java +++ b/core/src/main/java/org/springframework/security/access/expression/method/ExpressionBasedPreInvocationAdvice.java @@ -17,7 +17,6 @@ import org.springframework.security.core.Authentication; * Method pre-invocation handling based on expressions. * * @author Luke Taylor - * @version $Id$ * @since */ public class ExpressionBasedPreInvocationAdvice implements PreInvocationAuthorizationAdvice { diff --git a/core/src/main/java/org/springframework/security/access/expression/method/MethodSecurityExpressionHandler.java b/core/src/main/java/org/springframework/security/access/expression/method/MethodSecurityExpressionHandler.java index 09a7c57e15..588e43c2e7 100644 --- a/core/src/main/java/org/springframework/security/access/expression/method/MethodSecurityExpressionHandler.java +++ b/core/src/main/java/org/springframework/security/access/expression/method/MethodSecurityExpressionHandler.java @@ -11,7 +11,6 @@ import org.springframework.security.core.Authentication; * from the implementation of the underlying expression objects. * * @author Luke Taylor - * @version $Id$ * @since 3.0 */ public interface MethodSecurityExpressionHandler { diff --git a/core/src/main/java/org/springframework/security/access/expression/method/MethodSecurityExpressionRoot.java b/core/src/main/java/org/springframework/security/access/expression/method/MethodSecurityExpressionRoot.java index 9781ff1637..44052f9fde 100644 --- a/core/src/main/java/org/springframework/security/access/expression/method/MethodSecurityExpressionRoot.java +++ b/core/src/main/java/org/springframework/security/access/expression/method/MethodSecurityExpressionRoot.java @@ -11,7 +11,6 @@ import org.springframework.security.core.Authentication; * Extended expression root object which contains extra method-specific functionality. * * @author Luke Taylor - * @version $Id$ * @since 3.0 */ class MethodSecurityExpressionRoot extends SecurityExpressionRoot { diff --git a/core/src/main/java/org/springframework/security/access/expression/method/PostInvocationExpressionAttribute.java b/core/src/main/java/org/springframework/security/access/expression/method/PostInvocationExpressionAttribute.java index 35ca79af69..7b30564d0a 100644 --- a/core/src/main/java/org/springframework/security/access/expression/method/PostInvocationExpressionAttribute.java +++ b/core/src/main/java/org/springframework/security/access/expression/method/PostInvocationExpressionAttribute.java @@ -7,7 +7,6 @@ import org.springframework.security.access.prepost.PostInvocationAttribute; /** * * @author Luke Taylor - * @version $Id$ * @since 3.0 */ class PostInvocationExpressionAttribute extends AbstractExpressionBasedMethodConfigAttribute diff --git a/core/src/main/java/org/springframework/security/access/expression/method/PreInvocationExpressionAttribute.java b/core/src/main/java/org/springframework/security/access/expression/method/PreInvocationExpressionAttribute.java index 2a1b964a08..6728e133ae 100644 --- a/core/src/main/java/org/springframework/security/access/expression/method/PreInvocationExpressionAttribute.java +++ b/core/src/main/java/org/springframework/security/access/expression/method/PreInvocationExpressionAttribute.java @@ -7,7 +7,6 @@ import org.springframework.security.access.prepost.PreInvocationAttribute; /** * * @author Luke Taylor - * @version $Id$ * @since 3.0 */ class PreInvocationExpressionAttribute extends AbstractExpressionBasedMethodConfigAttribute diff --git a/core/src/main/java/org/springframework/security/access/hierarchicalroles/CycleInRoleHierarchyException.java b/core/src/main/java/org/springframework/security/access/hierarchicalroles/CycleInRoleHierarchyException.java index 3e1588d10a..663d1e6572 100755 --- a/core/src/main/java/org/springframework/security/access/hierarchicalroles/CycleInRoleHierarchyException.java +++ b/core/src/main/java/org/springframework/security/access/hierarchicalroles/CycleInRoleHierarchyException.java @@ -1,30 +1,30 @@ -/* - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.security.access.hierarchicalroles; - -/** - * Exception that is thrown because of a cycle in the role hierarchy definition - * - * @author Michael Mayr - */ -public class CycleInRoleHierarchyException extends RuntimeException { - - private static final long serialVersionUID = -4970510612118296707L; - - public CycleInRoleHierarchyException() { - super("Exception thrown because of a cycle in the role hierarchy definition!"); - } - -} +/* + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.security.access.hierarchicalroles; + +/** + * Exception that is thrown because of a cycle in the role hierarchy definition + * + * @author Michael Mayr + */ +public class CycleInRoleHierarchyException extends RuntimeException { + + private static final long serialVersionUID = -4970510612118296707L; + + public CycleInRoleHierarchyException() { + super("Exception thrown because of a cycle in the role hierarchy definition!"); + } + +} diff --git a/core/src/main/java/org/springframework/security/access/hierarchicalroles/NullRoleHierarchy.java b/core/src/main/java/org/springframework/security/access/hierarchicalroles/NullRoleHierarchy.java index d75381aeda..84654cf548 100644 --- a/core/src/main/java/org/springframework/security/access/hierarchicalroles/NullRoleHierarchy.java +++ b/core/src/main/java/org/springframework/security/access/hierarchicalroles/NullRoleHierarchy.java @@ -7,7 +7,6 @@ import org.springframework.security.core.GrantedAuthority; /** * * @author Luke Taylor - * @version $Id$ * @since 3.0 */ public final class NullRoleHierarchy implements RoleHierarchy { diff --git a/core/src/main/java/org/springframework/security/access/hierarchicalroles/RoleHierarchy.java b/core/src/main/java/org/springframework/security/access/hierarchicalroles/RoleHierarchy.java index e69d949d46..2dc14e29c8 100755 --- a/core/src/main/java/org/springframework/security/access/hierarchicalroles/RoleHierarchy.java +++ b/core/src/main/java/org/springframework/security/access/hierarchicalroles/RoleHierarchy.java @@ -1,45 +1,45 @@ -/* - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.security.access.hierarchicalroles; - -import java.util.Collection; - -import org.springframework.security.core.GrantedAuthority; - -/** - * The simple interface of a role hierarchy. - * - * @author Michael Mayr - */ -public interface RoleHierarchy { - - /** - * Returns an array of all reachable authorities. - *- * Reachable authorities are the directly assigned authorities plus all - * authorities that are (transitively) reachable from them in the role - * hierarchy. - *
- * Example:
+ * Reachable authorities are the directly assigned authorities plus all
+ * authorities that are (transitively) reachable from them in the role
+ * hierarchy.
+ *
+ * Example:
- * Role hierarchy: ROLE_A > ROLE_B and ROLE_B > ROLE_C.
- * Directly assigned authority: ROLE_A.
- * Reachable authorities: ROLE_A, ROLE_B, ROLE_C.
- *
- * @param authorities - List of the directly assigned authorities.
- * @return List of all reachable authorities given the assigned authorities.
- */
- public Collection
+ * Role hierarchy: ROLE_A > ROLE_B and ROLE_B > ROLE_C.
+ * Directly assigned authority: ROLE_A.
+ * Reachable authorities: ROLE_A, ROLE_B, ROLE_C.
+ *
+ * @param authorities - List of the directly assigned authorities.
+ * @return List of all reachable authorities given the assigned authorities.
+ */
+ public Collection
Methods.
*
* @author Ben Alex
- * @version $Id$
*/
public interface MethodSecurityMetadataSource extends SecurityMetadataSource {
public CollectionAuthentication.
*
* @author Ben Alex
- * @version $Id$
*/
public class AnonymousAuthenticationToken extends AbstractAuthenticationToken implements Serializable {
//~ Instance fields ================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/AuthenticationCredentialsNotFoundException.java b/core/src/main/java/org/springframework/security/authentication/AuthenticationCredentialsNotFoundException.java
index 24514c432a..44b9bea223 100644
--- a/core/src/main/java/org/springframework/security/authentication/AuthenticationCredentialsNotFoundException.java
+++ b/core/src/main/java/org/springframework/security/authentication/AuthenticationCredentialsNotFoundException.java
@@ -23,7 +23,6 @@ import org.springframework.security.core.AuthenticationException;
* org.springframework.security.core.context.SecurityContext SecurityContext}.
*
* @author Ben Alex
- * @version $Id$
*/
public class AuthenticationCredentialsNotFoundException extends AuthenticationException {
//~ Constructors ===================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/AuthenticationDetailsSource.java b/core/src/main/java/org/springframework/security/authentication/AuthenticationDetailsSource.java
index f879713545..0b01c41f37 100644
--- a/core/src/main/java/org/springframework/security/authentication/AuthenticationDetailsSource.java
+++ b/core/src/main/java/org/springframework/security/authentication/AuthenticationDetailsSource.java
@@ -1,36 +1,35 @@
-/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.security.authentication;
-
-/**
- * Provides a {@link org.springframework.security.core.Authentication#getDetails()} object for
- * a given web request.
- *
- * @author Ben Alex
- * @version $Id$
- */
-public interface AuthenticationDetailsSource {
- //~ Methods ========================================================================================================
-
- /**
- * Called by a class when it wishes a new authentication details instance to be created.
- *
- * @param context the request object, which may be used by the authentication details object
- *
- * @return a fully-configured authentication details instance
- */
- Object buildDetails(Object context);
-}
+/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.security.authentication;
+
+/**
+ * Provides a {@link org.springframework.security.core.Authentication#getDetails()} object for
+ * a given web request.
+ *
+ * @author Ben Alex
+ */
+public interface AuthenticationDetailsSource {
+ //~ Methods ========================================================================================================
+
+ /**
+ * Called by a class when it wishes a new authentication details instance to be created.
+ *
+ * @param context the request object, which may be used by the authentication details object
+ *
+ * @return a fully-configured authentication details instance
+ */
+ Object buildDetails(Object context);
+}
diff --git a/core/src/main/java/org/springframework/security/authentication/AuthenticationEventPublisher.java b/core/src/main/java/org/springframework/security/authentication/AuthenticationEventPublisher.java
index dada6df42e..b6e630c67e 100644
--- a/core/src/main/java/org/springframework/security/authentication/AuthenticationEventPublisher.java
+++ b/core/src/main/java/org/springframework/security/authentication/AuthenticationEventPublisher.java
@@ -6,7 +6,6 @@ import org.springframework.security.core.AuthenticationException;
/**
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public interface AuthenticationEventPublisher {
diff --git a/core/src/main/java/org/springframework/security/authentication/AuthenticationManager.java b/core/src/main/java/org/springframework/security/authentication/AuthenticationManager.java
index 6ed7cab4c8..06c4b8f2f9 100644
--- a/core/src/main/java/org/springframework/security/authentication/AuthenticationManager.java
+++ b/core/src/main/java/org/springframework/security/authentication/AuthenticationManager.java
@@ -22,7 +22,6 @@ import org.springframework.security.core.AuthenticationException;
* Processes an {@link Authentication} request.
*
* @author Ben Alex
- * @version $Id$
*/
public interface AuthenticationManager {
//~ Methods ========================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/AuthenticationProvider.java b/core/src/main/java/org/springframework/security/authentication/AuthenticationProvider.java
index 455f650de7..2186903af9 100644
--- a/core/src/main/java/org/springframework/security/authentication/AuthenticationProvider.java
+++ b/core/src/main/java/org/springframework/security/authentication/AuthenticationProvider.java
@@ -24,7 +24,6 @@ import org.springframework.security.core.AuthenticationException;
* org.springframework.security.core.Authentication} implementation.
*
* @author Ben Alex
- * @version $Id$
*/
public interface AuthenticationProvider {
//~ Methods ========================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/AuthenticationServiceException.java b/core/src/main/java/org/springframework/security/authentication/AuthenticationServiceException.java
index c07ae4f5ac..b44f67a997 100644
--- a/core/src/main/java/org/springframework/security/authentication/AuthenticationServiceException.java
+++ b/core/src/main/java/org/springframework/security/authentication/AuthenticationServiceException.java
@@ -22,7 +22,6 @@ import org.springframework.security.core.AuthenticationException;
* backend authentication repository is unavailable.
*
* @author Ben Alex
- * @version $Id$
*/
public class AuthenticationServiceException extends AuthenticationException {
//~ Constructors ===================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/AuthenticationTrustResolver.java b/core/src/main/java/org/springframework/security/authentication/AuthenticationTrustResolver.java
index bc85d6e406..d680a343e5 100644
--- a/core/src/main/java/org/springframework/security/authentication/AuthenticationTrustResolver.java
+++ b/core/src/main/java/org/springframework/security/authentication/AuthenticationTrustResolver.java
@@ -21,7 +21,6 @@ import org.springframework.security.core.Authentication;
* Evaluates Authentication tokens
*
* @author Ben Alex
- * @version $Id$
*/
public interface AuthenticationTrustResolver {
//~ Methods ========================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/AuthenticationTrustResolverImpl.java b/core/src/main/java/org/springframework/security/authentication/AuthenticationTrustResolverImpl.java
index c37f69af28..8dc03cdfbf 100644
--- a/core/src/main/java/org/springframework/security/authentication/AuthenticationTrustResolverImpl.java
+++ b/core/src/main/java/org/springframework/security/authentication/AuthenticationTrustResolverImpl.java
@@ -27,7 +27,6 @@ import org.springframework.security.core.Authentication;
* always return false.
*
* @author Ben Alex
- * @version $Id$
*/
public class AuthenticationTrustResolverImpl implements AuthenticationTrustResolver {
//~ Instance fields ================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/BadCredentialsException.java b/core/src/main/java/org/springframework/security/authentication/BadCredentialsException.java
index 8ad0760593..7733942fa6 100644
--- a/core/src/main/java/org/springframework/security/authentication/BadCredentialsException.java
+++ b/core/src/main/java/org/springframework/security/authentication/BadCredentialsException.java
@@ -22,7 +22,6 @@ import org.springframework.security.core.AuthenticationException;
* thrown, it means the account is neither locked nor disabled.
*
* @author Ben Alex
- * @version $Id$
*/
public class BadCredentialsException extends AuthenticationException {
//~ Constructors ===================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/CredentialsExpiredException.java b/core/src/main/java/org/springframework/security/authentication/CredentialsExpiredException.java
index 145c3a4f7a..7972f504c0 100644
--- a/core/src/main/java/org/springframework/security/authentication/CredentialsExpiredException.java
+++ b/core/src/main/java/org/springframework/security/authentication/CredentialsExpiredException.java
@@ -20,7 +20,6 @@ package org.springframework.security.authentication;
* assertion as to whether or not the credentials were valid.
*
* @author Ben Alex
- * @version $Id$
*/
public class CredentialsExpiredException extends AccountStatusException {
//~ Constructors ===================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/DefaultAuthenticationEventPublisher.java b/core/src/main/java/org/springframework/security/authentication/DefaultAuthenticationEventPublisher.java
index addb297002..5a7a718640 100644
--- a/core/src/main/java/org/springframework/security/authentication/DefaultAuthenticationEventPublisher.java
+++ b/core/src/main/java/org/springframework/security/authentication/DefaultAuthenticationEventPublisher.java
@@ -37,7 +37,6 @@ import org.springframework.util.Assert;
* and provides its constructor. The additionalExceptionMappings will be merged with the default ones.
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public class DefaultAuthenticationEventPublisher implements AuthenticationEventPublisher,
diff --git a/core/src/main/java/org/springframework/security/authentication/DisabledException.java b/core/src/main/java/org/springframework/security/authentication/DisabledException.java
index 6476a6678b..05648e221e 100644
--- a/core/src/main/java/org/springframework/security/authentication/DisabledException.java
+++ b/core/src/main/java/org/springframework/security/authentication/DisabledException.java
@@ -20,7 +20,6 @@ package org.springframework.security.authentication;
* whether or not the credentials were valid.
*
* @author Ben Alex
- * @version $Id$
*/
public class DisabledException extends AccountStatusException {
//~ Constructors ===================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/InsufficientAuthenticationException.java b/core/src/main/java/org/springframework/security/authentication/InsufficientAuthenticationException.java
index 2508bd66db..c0b36b25ed 100644
--- a/core/src/main/java/org/springframework/security/authentication/InsufficientAuthenticationException.java
+++ b/core/src/main/java/org/springframework/security/authentication/InsufficientAuthenticationException.java
@@ -28,7 +28,6 @@ import org.springframework.security.core.AuthenticationException;
* level of authentication.
*
* @author Ben Alex
- * @version $Id$
*/
public class InsufficientAuthenticationException extends AuthenticationException {
//~ Constructors ===================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/LockedException.java b/core/src/main/java/org/springframework/security/authentication/LockedException.java
index aedf5c362c..cc8e5821e5 100644
--- a/core/src/main/java/org/springframework/security/authentication/LockedException.java
+++ b/core/src/main/java/org/springframework/security/authentication/LockedException.java
@@ -21,7 +21,6 @@ package org.springframework.security.authentication;
* or not the credentials were valid.
*
* @author Ben Alex
- * @version $Id$
*/
public class LockedException extends AccountStatusException {
//~ Constructors ===================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/ProviderManager.java b/core/src/main/java/org/springframework/security/authentication/ProviderManager.java
index c96d35f2aa..9117bb1109 100644
--- a/core/src/main/java/org/springframework/security/authentication/ProviderManager.java
+++ b/core/src/main/java/org/springframework/security/authentication/ProviderManager.java
@@ -62,7 +62,6 @@ import org.springframework.util.Assert;
*
* @author Ben Alex
* @author Luke Taylor
- * @version $Id$
*
* @see DefaultAuthenticationEventPublisher
*/
diff --git a/core/src/main/java/org/springframework/security/authentication/ProviderNotFoundException.java b/core/src/main/java/org/springframework/security/authentication/ProviderNotFoundException.java
index 872c9b00f9..305fffaef6 100644
--- a/core/src/main/java/org/springframework/security/authentication/ProviderNotFoundException.java
+++ b/core/src/main/java/org/springframework/security/authentication/ProviderNotFoundException.java
@@ -24,7 +24,6 @@ import org.springframework.security.core.AuthenticationException;
* presented {@link org.springframework.security.core.Authentication} object.
*
* @author Ben Alex
- * @version $Id$
*/
public class ProviderNotFoundException extends AuthenticationException {
//~ Constructors ===================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/RememberMeAuthenticationToken.java b/core/src/main/java/org/springframework/security/authentication/RememberMeAuthenticationToken.java
index 069ca11900..80dc6fa11b 100644
--- a/core/src/main/java/org/springframework/security/authentication/RememberMeAuthenticationToken.java
+++ b/core/src/main/java/org/springframework/security/authentication/RememberMeAuthenticationToken.java
@@ -28,7 +28,6 @@ import org.springframework.security.core.GrantedAuthority;
* GrantedAuthoritys that apply.
*
* @author Ben Alex
- * @version $Id$
*/
public class RememberMeAuthenticationToken extends AbstractAuthenticationToken implements Serializable {
//~ Instance fields ================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/TestingAuthenticationProvider.java b/core/src/main/java/org/springframework/security/authentication/TestingAuthenticationProvider.java
index ae118e5bc4..3db3400e57 100644
--- a/core/src/main/java/org/springframework/security/authentication/TestingAuthenticationProvider.java
+++ b/core/src/main/java/org/springframework/security/authentication/TestingAuthenticationProvider.java
@@ -27,7 +27,6 @@ import org.springframework.security.core.AuthenticationException;
* on a production system.
*
* @author Ben Alex
- * @version $Id$
*/
public class TestingAuthenticationProvider implements AuthenticationProvider {
//~ Methods ========================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/TestingAuthenticationToken.java b/core/src/main/java/org/springframework/security/authentication/TestingAuthenticationToken.java
index f2d1b035dd..ba50e6d0ba 100644
--- a/core/src/main/java/org/springframework/security/authentication/TestingAuthenticationToken.java
+++ b/core/src/main/java/org/springframework/security/authentication/TestingAuthenticationToken.java
@@ -28,7 +28,6 @@ import org.springframework.security.core.authority.AuthorityUtils;
* The corresponding authentication provider is {@link TestingAuthenticationProvider}.
*
* @author Ben Alex
- * @version $Id$
*/
public class TestingAuthenticationToken extends AbstractAuthenticationToken {
//~ Instance fields ================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/UsernamePasswordAuthenticationToken.java b/core/src/main/java/org/springframework/security/authentication/UsernamePasswordAuthenticationToken.java
index e2f4353ed9..a887d9af0e 100644
--- a/core/src/main/java/org/springframework/security/authentication/UsernamePasswordAuthenticationToken.java
+++ b/core/src/main/java/org/springframework/security/authentication/UsernamePasswordAuthenticationToken.java
@@ -30,7 +30,6 @@ import org.springframework.security.core.GrantedAuthority;
* is String.
*
* @author Ben Alex
- * @version $Id$
*/
public class UsernamePasswordAuthenticationToken extends AbstractAuthenticationToken {
//~ Instance fields ================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/dao/AbstractUserDetailsAuthenticationProvider.java b/core/src/main/java/org/springframework/security/authentication/dao/AbstractUserDetailsAuthenticationProvider.java
index c35ba2b934..966d1781cc 100644
--- a/core/src/main/java/org/springframework/security/authentication/dao/AbstractUserDetailsAuthenticationProvider.java
+++ b/core/src/main/java/org/springframework/security/authentication/dao/AbstractUserDetailsAuthenticationProvider.java
@@ -68,7 +68,6 @@ import org.springframework.util.Assert;
* each request. The default cache implementation is therefore {@link NullUserCache}.
*
* @author Ben Alex
- * @version $Id$
*/
public abstract class AbstractUserDetailsAuthenticationProvider implements AuthenticationProvider, InitializingBean,
MessageSourceAware {
diff --git a/core/src/main/java/org/springframework/security/authentication/dao/DaoAuthenticationProvider.java b/core/src/main/java/org/springframework/security/authentication/dao/DaoAuthenticationProvider.java
index 23b1b5f310..c713d77e8f 100644
--- a/core/src/main/java/org/springframework/security/authentication/dao/DaoAuthenticationProvider.java
+++ b/core/src/main/java/org/springframework/security/authentication/dao/DaoAuthenticationProvider.java
@@ -32,7 +32,6 @@ import org.springframework.util.Assert;
* from an {@link UserDetailsService}.
*
* @author Ben Alex
- * @version $Id$
*/
public class DaoAuthenticationProvider extends AbstractUserDetailsAuthenticationProvider {
diff --git a/core/src/main/java/org/springframework/security/authentication/dao/ReflectionSaltSource.java b/core/src/main/java/org/springframework/security/authentication/dao/ReflectionSaltSource.java
index b48b24be44..679dc71023 100644
--- a/core/src/main/java/org/springframework/security/authentication/dao/ReflectionSaltSource.java
+++ b/core/src/main/java/org/springframework/security/authentication/dao/ReflectionSaltSource.java
@@ -37,7 +37,6 @@ import java.beans.PropertyDescriptor;
* likely to change.
*
* @author Ben Alex
- * @version $Id$
*/
public class ReflectionSaltSource implements SaltSource, InitializingBean {
//~ Instance fields ================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/dao/SaltSource.java b/core/src/main/java/org/springframework/security/authentication/dao/SaltSource.java
index b000b4a9f6..747b8b9f3d 100644
--- a/core/src/main/java/org/springframework/security/authentication/dao/SaltSource.java
+++ b/core/src/main/java/org/springframework/security/authentication/dao/SaltSource.java
@@ -22,7 +22,6 @@ import org.springframework.security.core.userdetails.UserDetails;
* Provides alternative sources of the salt to use for encoding passwords.
*
* @author Ben Alex
- * @version $Id$
*/
public interface SaltSource {
//~ Methods ========================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/dao/SystemWideSaltSource.java b/core/src/main/java/org/springframework/security/authentication/dao/SystemWideSaltSource.java
index d29fa9b311..417ca97f06 100644
--- a/core/src/main/java/org/springframework/security/authentication/dao/SystemWideSaltSource.java
+++ b/core/src/main/java/org/springframework/security/authentication/dao/SystemWideSaltSource.java
@@ -27,7 +27,6 @@ import org.springframework.beans.factory.InitializingBean;
* password. Of benefit is the digested passwords will at least be more protected than if stored without any salt.
*
* @author Ben Alex
- * @version $Id$
*/
public class SystemWideSaltSource implements SaltSource, InitializingBean {
//~ Instance fields ================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/encoding/BaseDigestPasswordEncoder.java b/core/src/main/java/org/springframework/security/authentication/encoding/BaseDigestPasswordEncoder.java
index 7c43e19785..bb0921f3cf 100644
--- a/core/src/main/java/org/springframework/security/authentication/encoding/BaseDigestPasswordEncoder.java
+++ b/core/src/main/java/org/springframework/security/authentication/encoding/BaseDigestPasswordEncoder.java
@@ -19,7 +19,6 @@ package org.springframework.security.authentication.encoding;
* Convenience base for digest password encoders.
* * @author colin sampaleanu - * @version $Id$ */ public abstract class BaseDigestPasswordEncoder extends BasePasswordEncoder { //~ Instance fields ================================================================================================ diff --git a/core/src/main/java/org/springframework/security/authentication/encoding/BasePasswordEncoder.java b/core/src/main/java/org/springframework/security/authentication/encoding/BasePasswordEncoder.java index 9d94126f5d..add0da8792 100644 --- a/core/src/main/java/org/springframework/security/authentication/encoding/BasePasswordEncoder.java +++ b/core/src/main/java/org/springframework/security/authentication/encoding/BasePasswordEncoder.java @@ -19,7 +19,6 @@ package org.springframework.security.authentication.encoding; *Convenience base for all password encoders.
* * @author Ben Alex - * @version $Id$ */ public abstract class BasePasswordEncoder implements PasswordEncoder { //~ Methods ======================================================================================================== diff --git a/core/src/main/java/org/springframework/security/authentication/encoding/LdapShaPasswordEncoder.java b/core/src/main/java/org/springframework/security/authentication/encoding/LdapShaPasswordEncoder.java index 695931acb1..fbe5eed42d 100644 --- a/core/src/main/java/org/springframework/security/authentication/encoding/LdapShaPasswordEncoder.java +++ b/core/src/main/java/org/springframework/security/authentication/encoding/LdapShaPasswordEncoder.java @@ -32,7 +32,6 @@ import org.springframework.util.Assert; * use or when a null implementation is required. * * @author Luke Taylor - * @version $Id$ */ public class LdapShaPasswordEncoder implements PasswordEncoder { //~ Static fields/initializers ===================================================================================== diff --git a/core/src/main/java/org/springframework/security/authentication/encoding/Md4.java b/core/src/main/java/org/springframework/security/authentication/encoding/Md4.java index ad8ab5750f..bab8c0c751 100644 --- a/core/src/main/java/org/springframework/security/authentication/encoding/Md4.java +++ b/core/src/main/java/org/springframework/security/authentication/encoding/Md4.java @@ -1,179 +1,179 @@ -/* Copyright 2004, 2005, 2006, 2007 Acegi Technology Pty Limited - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.security.authentication.encoding; - -/** - * Implementation of the MD4 message digest derived from the RSA Data Security, Inc, MD4 Message-Digest Algorithm. - * - * @author Alan Stewart - */ -class Md4 { - private static final int BLOCK_SIZE = 64; - private static final int HASH_SIZE = 16; - private final byte[] buffer = new byte[BLOCK_SIZE]; - private int bufferOffset; - private long byteCount; - private int[] state = new int[4]; - private int[] tmp = new int[16]; - - Md4() { - reset(); - } - - public void reset() { - bufferOffset = 0; - byteCount = 0; - state[0] = 0x67452301; - state[1] = 0xEFCDAB89; - state[2] = 0x98BADCFE; - state[3] = 0x10325476; - } - - public byte[] digest() { - byte[] resBuf = new byte[HASH_SIZE]; - digest(resBuf, 0, HASH_SIZE); - return resBuf; - } - - private void digest(byte[] buffer, int off) { - for (int i = 0; i < 4; i++) { - for (int j = 0; j < 4; j++) { - buffer[off + (i * 4 + j)] = (byte) (state[i] >>> (8 * j)); - } - } - } - - private void digest(byte[] buffer, int offset, int len) { - this.buffer[this.bufferOffset++] = (byte) 0x80; - int lenOfBitLen = 8; - int C = BLOCK_SIZE - lenOfBitLen; - if (this.bufferOffset > C) { - while (this.bufferOffset < BLOCK_SIZE) { - this.buffer[this.bufferOffset++] = (byte) 0x00; - } - update(this.buffer, 0); - this.bufferOffset = 0; - } - - while (this.bufferOffset < C) { - this.buffer[this.bufferOffset++] = (byte) 0x00; - } - - long bitCount = byteCount * 8; - for (int i = 0; i < 64; i += 8) { - this.buffer[this.bufferOffset++] = (byte) (bitCount >>> (i)); - } - - update(this.buffer, 0); - digest(buffer, offset); - } - - public void update(byte[] input, int offset, int length) { - byteCount += length; - int todo; - while (length >= (todo = BLOCK_SIZE - this.bufferOffset)) { - System.arraycopy(input, offset, this.buffer, this.bufferOffset, todo); - update(this.buffer, 0); - length -= todo; - offset += todo; - this.bufferOffset = 0; - } - - System.arraycopy(input, offset, this.buffer, this.bufferOffset, length); - bufferOffset += length; - } - - private void update(byte[] block, int offset) { - for (int i = 0; i < 16; i++) { - tmp[i] = (block[offset++] & 0xFF) | (block[offset++] & 0xFF) << 8 | (block[offset++] & 0xFF) << 16 | (block[offset++] & 0xFF) << 24; - } - - int A = state[0]; - int B = state[1]; - int C = state[2]; - int D = state[3]; - - A = FF(A, B, C, D, tmp[0], 3); - D = FF(D, A, B, C, tmp[1], 7); - C = FF(C, D, A, B, tmp[2], 11); - B = FF(B, C, D, A, tmp[3], 19); - A = FF(A, B, C, D, tmp[4], 3); - D = FF(D, A, B, C, tmp[5], 7); - C = FF(C, D, A, B, tmp[6], 11); - B = FF(B, C, D, A, tmp[7], 19); - A = FF(A, B, C, D, tmp[8], 3); - D = FF(D, A, B, C, tmp[9], 7); - C = FF(C, D, A, B, tmp[10], 11); - B = FF(B, C, D, A, tmp[11], 19); - A = FF(A, B, C, D, tmp[12], 3); - D = FF(D, A, B, C, tmp[13], 7); - C = FF(C, D, A, B, tmp[14], 11); - B = FF(B, C, D, A, tmp[15], 19); - - A = GG(A, B, C, D, tmp[0], 3); - D = GG(D, A, B, C, tmp[4], 5); - C = GG(C, D, A, B, tmp[8], 9); - B = GG(B, C, D, A, tmp[12], 13); - A = GG(A, B, C, D, tmp[1], 3); - D = GG(D, A, B, C, tmp[5], 5); - C = GG(C, D, A, B, tmp[9], 9); - B = GG(B, C, D, A, tmp[13], 13); - A = GG(A, B, C, D, tmp[2], 3); - D = GG(D, A, B, C, tmp[6], 5); - C = GG(C, D, A, B, tmp[10], 9); - B = GG(B, C, D, A, tmp[14], 13); - A = GG(A, B, C, D, tmp[3], 3); - D = GG(D, A, B, C, tmp[7], 5); - C = GG(C, D, A, B, tmp[11], 9); - B = GG(B, C, D, A, tmp[15], 13); - - A = HH(A, B, C, D, tmp[0], 3); - D = HH(D, A, B, C, tmp[8], 9); - C = HH(C, D, A, B, tmp[4], 11); - B = HH(B, C, D, A, tmp[12], 15); - A = HH(A, B, C, D, tmp[2], 3); - D = HH(D, A, B, C, tmp[10], 9); - C = HH(C, D, A, B, tmp[6], 11); - B = HH(B, C, D, A, tmp[14], 15); - A = HH(A, B, C, D, tmp[1], 3); - D = HH(D, A, B, C, tmp[9], 9); - C = HH(C, D, A, B, tmp[5], 11); - B = HH(B, C, D, A, tmp[13], 15); - A = HH(A, B, C, D, tmp[3], 3); - D = HH(D, A, B, C, tmp[11], 9); - C = HH(C, D, A, B, tmp[7], 11); - B = HH(B, C, D, A, tmp[15], 15); - - state[0] += A; - state[1] += B; - state[2] += C; - state[3] += D; - } - - private int FF(int a, int b, int c, int d, int x, int s) { - int t = a + ((b & c) | (~b & d)) + x; - return t << s | t >>> (32 - s); - } - - private int GG(int a, int b, int c, int d, int x, int s) { - int t = a + ((b & (c | d)) | (c & d)) + x + 0x5A827999; - return t << s | t >>> (32 - s); - } - - private int HH(int a, int b, int c, int d, int x, int s) { - int t = a + (b ^ c ^ d) + x + 0x6ED9EBA1; - return t << s | t >>> (32 - s); - } -} +/* Copyright 2004, 2005, 2006, 2007 Acegi Technology Pty Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.security.authentication.encoding; + +/** + * Implementation of the MD4 message digest derived from the RSA Data Security, Inc, MD4 Message-Digest Algorithm. + * + * @author Alan Stewart + */ +class Md4 { + private static final int BLOCK_SIZE = 64; + private static final int HASH_SIZE = 16; + private final byte[] buffer = new byte[BLOCK_SIZE]; + private int bufferOffset; + private long byteCount; + private int[] state = new int[4]; + private int[] tmp = new int[16]; + + Md4() { + reset(); + } + + public void reset() { + bufferOffset = 0; + byteCount = 0; + state[0] = 0x67452301; + state[1] = 0xEFCDAB89; + state[2] = 0x98BADCFE; + state[3] = 0x10325476; + } + + public byte[] digest() { + byte[] resBuf = new byte[HASH_SIZE]; + digest(resBuf, 0, HASH_SIZE); + return resBuf; + } + + private void digest(byte[] buffer, int off) { + for (int i = 0; i < 4; i++) { + for (int j = 0; j < 4; j++) { + buffer[off + (i * 4 + j)] = (byte) (state[i] >>> (8 * j)); + } + } + } + + private void digest(byte[] buffer, int offset, int len) { + this.buffer[this.bufferOffset++] = (byte) 0x80; + int lenOfBitLen = 8; + int C = BLOCK_SIZE - lenOfBitLen; + if (this.bufferOffset > C) { + while (this.bufferOffset < BLOCK_SIZE) { + this.buffer[this.bufferOffset++] = (byte) 0x00; + } + update(this.buffer, 0); + this.bufferOffset = 0; + } + + while (this.bufferOffset < C) { + this.buffer[this.bufferOffset++] = (byte) 0x00; + } + + long bitCount = byteCount * 8; + for (int i = 0; i < 64; i += 8) { + this.buffer[this.bufferOffset++] = (byte) (bitCount >>> (i)); + } + + update(this.buffer, 0); + digest(buffer, offset); + } + + public void update(byte[] input, int offset, int length) { + byteCount += length; + int todo; + while (length >= (todo = BLOCK_SIZE - this.bufferOffset)) { + System.arraycopy(input, offset, this.buffer, this.bufferOffset, todo); + update(this.buffer, 0); + length -= todo; + offset += todo; + this.bufferOffset = 0; + } + + System.arraycopy(input, offset, this.buffer, this.bufferOffset, length); + bufferOffset += length; + } + + private void update(byte[] block, int offset) { + for (int i = 0; i < 16; i++) { + tmp[i] = (block[offset++] & 0xFF) | (block[offset++] & 0xFF) << 8 | (block[offset++] & 0xFF) << 16 | (block[offset++] & 0xFF) << 24; + } + + int A = state[0]; + int B = state[1]; + int C = state[2]; + int D = state[3]; + + A = FF(A, B, C, D, tmp[0], 3); + D = FF(D, A, B, C, tmp[1], 7); + C = FF(C, D, A, B, tmp[2], 11); + B = FF(B, C, D, A, tmp[3], 19); + A = FF(A, B, C, D, tmp[4], 3); + D = FF(D, A, B, C, tmp[5], 7); + C = FF(C, D, A, B, tmp[6], 11); + B = FF(B, C, D, A, tmp[7], 19); + A = FF(A, B, C, D, tmp[8], 3); + D = FF(D, A, B, C, tmp[9], 7); + C = FF(C, D, A, B, tmp[10], 11); + B = FF(B, C, D, A, tmp[11], 19); + A = FF(A, B, C, D, tmp[12], 3); + D = FF(D, A, B, C, tmp[13], 7); + C = FF(C, D, A, B, tmp[14], 11); + B = FF(B, C, D, A, tmp[15], 19); + + A = GG(A, B, C, D, tmp[0], 3); + D = GG(D, A, B, C, tmp[4], 5); + C = GG(C, D, A, B, tmp[8], 9); + B = GG(B, C, D, A, tmp[12], 13); + A = GG(A, B, C, D, tmp[1], 3); + D = GG(D, A, B, C, tmp[5], 5); + C = GG(C, D, A, B, tmp[9], 9); + B = GG(B, C, D, A, tmp[13], 13); + A = GG(A, B, C, D, tmp[2], 3); + D = GG(D, A, B, C, tmp[6], 5); + C = GG(C, D, A, B, tmp[10], 9); + B = GG(B, C, D, A, tmp[14], 13); + A = GG(A, B, C, D, tmp[3], 3); + D = GG(D, A, B, C, tmp[7], 5); + C = GG(C, D, A, B, tmp[11], 9); + B = GG(B, C, D, A, tmp[15], 13); + + A = HH(A, B, C, D, tmp[0], 3); + D = HH(D, A, B, C, tmp[8], 9); + C = HH(C, D, A, B, tmp[4], 11); + B = HH(B, C, D, A, tmp[12], 15); + A = HH(A, B, C, D, tmp[2], 3); + D = HH(D, A, B, C, tmp[10], 9); + C = HH(C, D, A, B, tmp[6], 11); + B = HH(B, C, D, A, tmp[14], 15); + A = HH(A, B, C, D, tmp[1], 3); + D = HH(D, A, B, C, tmp[9], 9); + C = HH(C, D, A, B, tmp[5], 11); + B = HH(B, C, D, A, tmp[13], 15); + A = HH(A, B, C, D, tmp[3], 3); + D = HH(D, A, B, C, tmp[11], 9); + C = HH(C, D, A, B, tmp[7], 11); + B = HH(B, C, D, A, tmp[15], 15); + + state[0] += A; + state[1] += B; + state[2] += C; + state[3] += D; + } + + private int FF(int a, int b, int c, int d, int x, int s) { + int t = a + ((b & c) | (~b & d)) + x; + return t << s | t >>> (32 - s); + } + + private int GG(int a, int b, int c, int d, int x, int s) { + int t = a + ((b & (c | d)) | (c & d)) + x + 0x5A827999; + return t << s | t >>> (32 - s); + } + + private int HH(int a, int b, int c, int d, int x, int s) { + int t = a + (b ^ c ^ d) + x + 0x6ED9EBA1; + return t << s | t >>> (32 - s); + } +} diff --git a/core/src/main/java/org/springframework/security/authentication/encoding/Md4PasswordEncoder.java b/core/src/main/java/org/springframework/security/authentication/encoding/Md4PasswordEncoder.java index b9d99260c7..c9422c5373 100644 --- a/core/src/main/java/org/springframework/security/authentication/encoding/Md4PasswordEncoder.java +++ b/core/src/main/java/org/springframework/security/authentication/encoding/Md4PasswordEncoder.java @@ -1,87 +1,87 @@ -/* Copyright 2004, 2005, 2006, 2007 Acegi Technology Pty Limited - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.security.authentication.encoding; - -import java.io.UnsupportedEncodingException; - -import org.springframework.security.core.codec.Base64; -import org.springframework.security.core.codec.Hex; - -/** - * MD4 implementation of PasswordEncoder. - *
- * If a null password is presented, it will be treated as an empty String ("") password.
- *
- * As MD4 is a one-way hash, the salt can contain any characters. - *
- * NOTE: This password encoder is only included for backwards compatability with legacy applications, it's not - * secure, don't use it for anything new! - * - * @author Alan Stewart - */ -public class Md4PasswordEncoder extends BaseDigestPasswordEncoder { - - //~ Methods ======================================================================================================== - - /** - * Encodes the rawPass using an MD4 message digest. If a salt is specified it will be merged with the password - * before encoding. - * - * @param rawPass The plain text password - * @param salt The salt to sprinkle - * @return Hex string of password digest (or base64 encoded string if encodeHashAsBase64 is enabled. - */ - public String encodePassword(String rawPass, Object salt) { - String saltedPass = mergePasswordAndSalt(rawPass, salt, false); - - byte[] passBytes; - - try { - passBytes = saltedPass.getBytes("UTF-8"); - } catch (UnsupportedEncodingException e) { - throw new IllegalStateException("UTF-8 not supported!"); - } - - Md4 md4 = new Md4(); - md4.update(passBytes, 0, passBytes.length); - - byte[] resBuf = md4.digest(); - - if (getEncodeHashAsBase64()) { - return new String(Base64.encode(resBuf)); - } else { - return new String(Hex.encode(resBuf)); - } - } - - /** - * Takes a previously encoded password and compares it with a raw password after mixing in the salt and - * encoding that value. - * - * @param encPass previously encoded password - * @param rawPass plain text password - * @param salt salt to mix into password - * @return true or false - */ - public boolean isPasswordValid(String encPass, String rawPass, Object salt) { - String pass1 = "" + encPass; - String pass2 = encodePassword(rawPass, salt); - return pass1.equals(pass2); - } - - public String getAlgorithm() { - return "MD4"; - } -} +/* Copyright 2004, 2005, 2006, 2007 Acegi Technology Pty Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.security.authentication.encoding; + +import java.io.UnsupportedEncodingException; + +import org.springframework.security.core.codec.Base64; +import org.springframework.security.core.codec.Hex; + +/** + * MD4 implementation of PasswordEncoder. + *
+ * If a null password is presented, it will be treated as an empty String ("") password.
+ *
+ * As MD4 is a one-way hash, the salt can contain any characters. + *
+ * NOTE: This password encoder is only included for backwards compatability with legacy applications, it's not + * secure, don't use it for anything new! + * + * @author Alan Stewart + */ +public class Md4PasswordEncoder extends BaseDigestPasswordEncoder { + + //~ Methods ======================================================================================================== + + /** + * Encodes the rawPass using an MD4 message digest. If a salt is specified it will be merged with the password + * before encoding. + * + * @param rawPass The plain text password + * @param salt The salt to sprinkle + * @return Hex string of password digest (or base64 encoded string if encodeHashAsBase64 is enabled. + */ + public String encodePassword(String rawPass, Object salt) { + String saltedPass = mergePasswordAndSalt(rawPass, salt, false); + + byte[] passBytes; + + try { + passBytes = saltedPass.getBytes("UTF-8"); + } catch (UnsupportedEncodingException e) { + throw new IllegalStateException("UTF-8 not supported!"); + } + + Md4 md4 = new Md4(); + md4.update(passBytes, 0, passBytes.length); + + byte[] resBuf = md4.digest(); + + if (getEncodeHashAsBase64()) { + return new String(Base64.encode(resBuf)); + } else { + return new String(Hex.encode(resBuf)); + } + } + + /** + * Takes a previously encoded password and compares it with a raw password after mixing in the salt and + * encoding that value. + * + * @param encPass previously encoded password + * @param rawPass plain text password + * @param salt salt to mix into password + * @return true or false + */ + public boolean isPasswordValid(String encPass, String rawPass, Object salt) { + String pass1 = "" + encPass; + String pass2 = encodePassword(rawPass, salt); + return pass1.equals(pass2); + } + + public String getAlgorithm() { + return "MD4"; + } +} diff --git a/core/src/main/java/org/springframework/security/authentication/encoding/Md5PasswordEncoder.java b/core/src/main/java/org/springframework/security/authentication/encoding/Md5PasswordEncoder.java index 55f4ac67fd..ee57f00472 100644 --- a/core/src/main/java/org/springframework/security/authentication/encoding/Md5PasswordEncoder.java +++ b/core/src/main/java/org/springframework/security/authentication/encoding/Md5PasswordEncoder.java @@ -26,7 +26,6 @@ package org.springframework.security.authentication.encoding; * @author Ray Krueger * @author colin sampaleanu * @author Ben Alex - * @version $Id$ */ public class Md5PasswordEncoder extends MessageDigestPasswordEncoder { diff --git a/core/src/main/java/org/springframework/security/authentication/encoding/MessageDigestPasswordEncoder.java b/core/src/main/java/org/springframework/security/authentication/encoding/MessageDigestPasswordEncoder.java index 827e9ec24d..a306a19be9 100644 --- a/core/src/main/java/org/springframework/security/authentication/encoding/MessageDigestPasswordEncoder.java +++ b/core/src/main/java/org/springframework/security/authentication/encoding/MessageDigestPasswordEncoder.java @@ -1,125 +1,125 @@ -package org.springframework.security.authentication.encoding; - -import java.io.UnsupportedEncodingException; -import java.security.MessageDigest; -import java.security.NoSuchAlgorithmException; - -import org.springframework.security.core.codec.Base64; -import org.springframework.security.core.codec.Hex; - -/** - * Base for digest password encoders. - *
This class can be used stand-alone, or one of the subclasses can be used for compatiblity and convenience. - * When using this class directly you must specify a - * - * Message Digest Algorithm to use as a constructor arg
- * - *The encoded password hash is normally returned as Hex (32 char) version of the hash bytes. - * Setting the encodeHashAsBase64 property to true will cause the encoded pass to be returned - * as Base64 text, which will consume 24 characters. - * See {@link BaseDigestPasswordEncoder#setEncodeHashAsBase64(boolean)} - *
- *
- * This PasswordEncoder can be used directly as in the following example:
- *
- * <bean id="passwordEncoder" class="org.springframework.security.authentication.encoding.MessageDigestPasswordEncoder"> - * <constructor-arg value="MD5"/> - * </bean> - *- * - * - * @author Ray Krueger - * @since 1.0.1 - */ -public class MessageDigestPasswordEncoder extends BaseDigestPasswordEncoder { - - private final String algorithm; - - /** - * The digest algorithm to use - * Supports the named - * Message Digest Algorithms in the Java environment. - * - * @param algorithm - */ - public MessageDigestPasswordEncoder(String algorithm) { - this(algorithm, false); - } - - /** - * Convenience constructor for specifying the algorithm and whether or not to enable base64 encoding - * - * @param algorithm - * @param encodeHashAsBase64 - * @throws IllegalArgumentException if an unknown - */ - public MessageDigestPasswordEncoder(String algorithm, boolean encodeHashAsBase64) throws IllegalArgumentException { - this.algorithm = algorithm; - setEncodeHashAsBase64(encodeHashAsBase64); - //Validity Check - getMessageDigest(); - } - - /** - * Encodes the rawPass using a MessageDigest. - * If a salt is specified it will be merged with the password before encoding. - * - * @param rawPass The plain text password - * @param salt The salt to sprinkle - * @return Hex string of password digest (or base64 encoded string if encodeHashAsBase64 is enabled. - */ - public String encodePassword(String rawPass, Object salt) { - String saltedPass = mergePasswordAndSalt(rawPass, salt, false); - - MessageDigest messageDigest = getMessageDigest(); - - byte[] digest; - - try { - digest = messageDigest.digest(saltedPass.getBytes("UTF-8")); - } catch (UnsupportedEncodingException e) { - throw new IllegalStateException("UTF-8 not supported!"); - } - - if (getEncodeHashAsBase64()) { - return new String(Base64.encode(digest)); - } else { - return new String(Hex.encode(digest)); - } - } - - /** - * Get a MessageDigest instance for the given algorithm. - * Throws an IllegalArgumentException if algorithm is unknown - * - * @return MessageDigest instance - * @throws IllegalArgumentException if NoSuchAlgorithmException is thrown - */ - protected final MessageDigest getMessageDigest() throws IllegalArgumentException { - try { - return MessageDigest.getInstance(algorithm); - } catch (NoSuchAlgorithmException e) { - throw new IllegalArgumentException("No such algorithm [" + algorithm + "]"); - } - } - - /** - * Takes a previously encoded password and compares it with a rawpassword after mixing in the salt and - * encoding that value - * - * @param encPass previously encoded password - * @param rawPass plain text password - * @param salt salt to mix into password - * @return true or false - */ - public boolean isPasswordValid(String encPass, String rawPass, Object salt) { - String pass1 = "" + encPass; - String pass2 = encodePassword(rawPass, salt); - - return pass1.equals(pass2); - } - - public String getAlgorithm() { - return algorithm; - } -} +package org.springframework.security.authentication.encoding; + +import java.io.UnsupportedEncodingException; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; + +import org.springframework.security.core.codec.Base64; +import org.springframework.security.core.codec.Hex; + +/** + * Base for digest password encoders. + *
This class can be used stand-alone, or one of the subclasses can be used for compatiblity and convenience. + * When using this class directly you must specify a + * + * Message Digest Algorithm to use as a constructor arg
+ * + *The encoded password hash is normally returned as Hex (32 char) version of the hash bytes. + * Setting the encodeHashAsBase64 property to true will cause the encoded pass to be returned + * as Base64 text, which will consume 24 characters. + * See {@link BaseDigestPasswordEncoder#setEncodeHashAsBase64(boolean)} + *
+ *
+ * This PasswordEncoder can be used directly as in the following example:
+ *
+ * <bean id="passwordEncoder" class="org.springframework.security.authentication.encoding.MessageDigestPasswordEncoder"> + * <constructor-arg value="MD5"/> + * </bean> + *+ * + * + * @author Ray Krueger + * @since 1.0.1 + */ +public class MessageDigestPasswordEncoder extends BaseDigestPasswordEncoder { + + private final String algorithm; + + /** + * The digest algorithm to use + * Supports the named + * Message Digest Algorithms in the Java environment. + * + * @param algorithm + */ + public MessageDigestPasswordEncoder(String algorithm) { + this(algorithm, false); + } + + /** + * Convenience constructor for specifying the algorithm and whether or not to enable base64 encoding + * + * @param algorithm + * @param encodeHashAsBase64 + * @throws IllegalArgumentException if an unknown + */ + public MessageDigestPasswordEncoder(String algorithm, boolean encodeHashAsBase64) throws IllegalArgumentException { + this.algorithm = algorithm; + setEncodeHashAsBase64(encodeHashAsBase64); + //Validity Check + getMessageDigest(); + } + + /** + * Encodes the rawPass using a MessageDigest. + * If a salt is specified it will be merged with the password before encoding. + * + * @param rawPass The plain text password + * @param salt The salt to sprinkle + * @return Hex string of password digest (or base64 encoded string if encodeHashAsBase64 is enabled. + */ + public String encodePassword(String rawPass, Object salt) { + String saltedPass = mergePasswordAndSalt(rawPass, salt, false); + + MessageDigest messageDigest = getMessageDigest(); + + byte[] digest; + + try { + digest = messageDigest.digest(saltedPass.getBytes("UTF-8")); + } catch (UnsupportedEncodingException e) { + throw new IllegalStateException("UTF-8 not supported!"); + } + + if (getEncodeHashAsBase64()) { + return new String(Base64.encode(digest)); + } else { + return new String(Hex.encode(digest)); + } + } + + /** + * Get a MessageDigest instance for the given algorithm. + * Throws an IllegalArgumentException if algorithm is unknown + * + * @return MessageDigest instance + * @throws IllegalArgumentException if NoSuchAlgorithmException is thrown + */ + protected final MessageDigest getMessageDigest() throws IllegalArgumentException { + try { + return MessageDigest.getInstance(algorithm); + } catch (NoSuchAlgorithmException e) { + throw new IllegalArgumentException("No such algorithm [" + algorithm + "]"); + } + } + + /** + * Takes a previously encoded password and compares it with a rawpassword after mixing in the salt and + * encoding that value + * + * @param encPass previously encoded password + * @param rawPass plain text password + * @param salt salt to mix into password + * @return true or false + */ + public boolean isPasswordValid(String encPass, String rawPass, Object salt) { + String pass1 = "" + encPass; + String pass2 = encodePassword(rawPass, salt); + + return pass1.equals(pass2); + } + + public String getAlgorithm() { + return algorithm; + } +} diff --git a/core/src/main/java/org/springframework/security/authentication/encoding/PasswordEncoder.java b/core/src/main/java/org/springframework/security/authentication/encoding/PasswordEncoder.java index ac9d3ac9ab..54f1069d9b 100644 --- a/core/src/main/java/org/springframework/security/authentication/encoding/PasswordEncoder.java +++ b/core/src/main/java/org/springframework/security/authentication/encoding/PasswordEncoder.java @@ -24,7 +24,6 @@ import org.springframework.dao.DataAccessException; * * * @author colin sampaleanu - * @version $Id$ */ public interface PasswordEncoder { //~ Methods ======================================================================================================== diff --git a/core/src/main/java/org/springframework/security/authentication/encoding/PlaintextPasswordEncoder.java b/core/src/main/java/org/springframework/security/authentication/encoding/PlaintextPasswordEncoder.java index 707520e5aa..f414182b1c 100644 --- a/core/src/main/java/org/springframework/security/authentication/encoding/PlaintextPasswordEncoder.java +++ b/core/src/main/java/org/springframework/security/authentication/encoding/PlaintextPasswordEncoder.java @@ -22,7 +22,6 @@ package org.springframework.security.authentication.encoding; * * @author colin sampaleanu * @author Ben Alex - * @version $Id$ */ public class PlaintextPasswordEncoder extends BasePasswordEncoder { //~ Instance fields ================================================================================================ diff --git a/core/src/main/java/org/springframework/security/authentication/encoding/ShaPasswordEncoder.java b/core/src/main/java/org/springframework/security/authentication/encoding/ShaPasswordEncoder.java index 0f64a270ba..02658c9c83 100644 --- a/core/src/main/java/org/springframework/security/authentication/encoding/ShaPasswordEncoder.java +++ b/core/src/main/java/org/springframework/security/authentication/encoding/ShaPasswordEncoder.java @@ -33,7 +33,6 @@ package org.springframework.security.authentication.encoding; * @author Ray Krueger * @author colin sampaleanu * @author Ben Alex - * @version $Id$ */ public class ShaPasswordEncoder extends MessageDigestPasswordEncoder { diff --git a/core/src/main/java/org/springframework/security/authentication/event/AbstractAuthenticationEvent.java b/core/src/main/java/org/springframework/security/authentication/event/AbstractAuthenticationEvent.java index 5b8606db49..99bc1caea6 100644 --- a/core/src/main/java/org/springframework/security/authentication/event/AbstractAuthenticationEvent.java +++ b/core/src/main/java/org/springframework/security/authentication/event/AbstractAuthenticationEvent.java @@ -25,7 +25,6 @@ import org.springframework.context.ApplicationEvent; * be the
Authentication object.
*
* @author Ben Alex
- * @version $Id$
*/
public abstract class AbstractAuthenticationEvent extends ApplicationEvent {
//~ Constructors ===================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/event/AbstractAuthenticationFailureEvent.java b/core/src/main/java/org/springframework/security/authentication/event/AbstractAuthenticationFailureEvent.java
index b389c13056..3b5025c7ff 100644
--- a/core/src/main/java/org/springframework/security/authentication/event/AbstractAuthenticationFailureEvent.java
+++ b/core/src/main/java/org/springframework/security/authentication/event/AbstractAuthenticationFailureEvent.java
@@ -25,7 +25,6 @@ import org.springframework.util.Assert;
* Abstract application event which indicates authentication failure for some reason.
*
* @author Ben Alex
- * @version $Id$
*/
public abstract class AbstractAuthenticationFailureEvent extends AbstractAuthenticationEvent {
//~ Instance fields ================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureBadCredentialsEvent.java b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureBadCredentialsEvent.java
index 4301d251f0..10599f7f33 100644
--- a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureBadCredentialsEvent.java
+++ b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureBadCredentialsEvent.java
@@ -23,7 +23,6 @@ import org.springframework.security.core.AuthenticationException;
* Application event which indicates authentication failure due to invalid credentials being presented.
*
* @author Ben Alex
- * @version $Id$
*/
public class AuthenticationFailureBadCredentialsEvent extends AbstractAuthenticationFailureEvent {
//~ Constructors ===================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureCredentialsExpiredEvent.java b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureCredentialsExpiredEvent.java
index f1031f75f5..9acf1ce142 100644
--- a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureCredentialsExpiredEvent.java
+++ b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureCredentialsExpiredEvent.java
@@ -23,7 +23,6 @@ import org.springframework.security.core.AuthenticationException;
* Application event which indicates authentication failure due to the user's credentials having expired.
*
* @author Ben Alex
- * @version $Id$
*/
public class AuthenticationFailureCredentialsExpiredEvent extends AbstractAuthenticationFailureEvent {
//~ Constructors ===================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureDisabledEvent.java b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureDisabledEvent.java
index 9ed1a7b3a3..b789c9fda5 100644
--- a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureDisabledEvent.java
+++ b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureDisabledEvent.java
@@ -23,7 +23,6 @@ import org.springframework.security.core.AuthenticationException;
* Application event which indicates authentication failure due to the user's account being disabled.
*
* @author Ben Alex
- * @version $Id$
*/
public class AuthenticationFailureDisabledEvent extends AbstractAuthenticationFailureEvent {
//~ Constructors ===================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureExpiredEvent.java b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureExpiredEvent.java
index 963d7ce018..f5f9719859 100644
--- a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureExpiredEvent.java
+++ b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureExpiredEvent.java
@@ -23,7 +23,6 @@ import org.springframework.security.core.AuthenticationException;
* Application event which indicates authentication failure due to the user's account having expired.
*
* @author Ben Alex
- * @version $Id$
*/
public class AuthenticationFailureExpiredEvent extends AbstractAuthenticationFailureEvent {
//~ Constructors ===================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureLockedEvent.java b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureLockedEvent.java
index ae17e53a93..468153dc97 100644
--- a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureLockedEvent.java
+++ b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureLockedEvent.java
@@ -23,7 +23,6 @@ import org.springframework.security.core.AuthenticationException;
* Application event which indicates authentication failure due to the user's account having been locked.
*
* @author Ben Alex
- * @version $Id$
*/
public class AuthenticationFailureLockedEvent extends AbstractAuthenticationFailureEvent {
//~ Constructors ===================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureProviderNotFoundEvent.java b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureProviderNotFoundEvent.java
index 1f3cd27020..8463fcbba0 100644
--- a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureProviderNotFoundEvent.java
+++ b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureProviderNotFoundEvent.java
@@ -24,7 +24,6 @@ import org.springframework.security.core.AuthenticationException;
* AuthenticationProvider that can process the request.
*
* @author Ben Alex
- * @version $Id$
*/
public class AuthenticationFailureProviderNotFoundEvent extends AbstractAuthenticationFailureEvent {
//~ Constructors ===================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureProxyUntrustedEvent.java b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureProxyUntrustedEvent.java
index 84437ca104..587c14b59e 100644
--- a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureProxyUntrustedEvent.java
+++ b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureProxyUntrustedEvent.java
@@ -24,7 +24,6 @@ import org.springframework.security.core.AuthenticationException;
* untrusted proxy.
*
* @author Ben Alex
- * @version $Id$
*/
public class AuthenticationFailureProxyUntrustedEvent extends AbstractAuthenticationFailureEvent {
//~ Constructors ===================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureServiceExceptionEvent.java b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureServiceExceptionEvent.java
index 460ef00502..9d42895734 100644
--- a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureServiceExceptionEvent.java
+++ b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureServiceExceptionEvent.java
@@ -24,7 +24,6 @@ import org.springframework.security.core.AuthenticationException;
* AuthenticationManager.
*
* @author Ben Alex
- * @version $Id$
*/
public class AuthenticationFailureServiceExceptionEvent extends AbstractAuthenticationFailureEvent {
//~ Constructors ===================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationSuccessEvent.java b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationSuccessEvent.java
index 1064fea060..58f0440097 100644
--- a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationSuccessEvent.java
+++ b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationSuccessEvent.java
@@ -22,7 +22,6 @@ import org.springframework.security.core.Authentication;
* Application event which indicates successful authentication.
*
* @author Ben Alex
- * @version $Id$
*/
public class AuthenticationSuccessEvent extends AbstractAuthenticationEvent {
//~ Constructors ===================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/event/InteractiveAuthenticationSuccessEvent.java b/core/src/main/java/org/springframework/security/authentication/event/InteractiveAuthenticationSuccessEvent.java
index 0deee4da6f..db7f76bf59 100644
--- a/core/src/main/java/org/springframework/security/authentication/event/InteractiveAuthenticationSuccessEvent.java
+++ b/core/src/main/java/org/springframework/security/authentication/event/InteractiveAuthenticationSuccessEvent.java
@@ -25,7 +25,6 @@ import org.springframework.util.Assert;
* source will be the Authentication object.
*
* @author Ben Alex
- * @version $Id$
*/
public class InteractiveAuthenticationSuccessEvent extends AbstractAuthenticationEvent {
//~ Instance fields ================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/event/LoggerListener.java b/core/src/main/java/org/springframework/security/authentication/event/LoggerListener.java
index 477660d427..4bdd6e7f86 100644
--- a/core/src/main/java/org/springframework/security/authentication/event/LoggerListener.java
+++ b/core/src/main/java/org/springframework/security/authentication/event/LoggerListener.java
@@ -27,7 +27,6 @@ import org.springframework.util.ClassUtils;
* All authentication events are logged at the warning level.
*
* @author Ben Alex
- * @version $Id$
*/
public class LoggerListener implements ApplicationListenerAuthenticationManager to resolve an authentication request.
*
* @author Ben Alex
- * @version $Id$
*/
public class RemoteAuthenticationManagerImpl implements RemoteAuthenticationManager, InitializingBean {
//~ Instance fields ================================================================================================
diff --git a/core/src/main/java/org/springframework/security/authentication/rcp/RemoteAuthenticationProvider.java b/core/src/main/java/org/springframework/security/authentication/rcp/RemoteAuthenticationProvider.java
index 5d5a51d000..a3fd2c080a 100644
--- a/core/src/main/java/org/springframework/security/authentication/rcp/RemoteAuthenticationProvider.java
+++ b/core/src/main/java/org/springframework/security/authentication/rcp/RemoteAuthenticationProvider.java
@@ -42,7 +42,6 @@ import org.springframework.util.Assert;
* be caught and displayed to the user, enabling them to retry with alternative credentials etc.
*
* @author Ben Alex
- * @version $Id$
*/
public class RemoteAuthenticationProvider implements AuthenticationProvider, InitializingBean {
//~ Instance fields ================================================================================================
diff --git a/core/src/main/java/org/springframework/security/core/Authentication.java b/core/src/main/java/org/springframework/security/core/Authentication.java
index 23caff103f..0f5002d79c 100644
--- a/core/src/main/java/org/springframework/security/core/Authentication.java
+++ b/core/src/main/java/org/springframework/security/core/Authentication.java
@@ -43,7 +43,6 @@ import org.springframework.security.core.context.SecurityContextHolder;
* for you.
*
* @author Ben Alex
- * @version $Id$
*/
public interface Authentication extends Principal, Serializable {
//~ Methods ========================================================================================================
diff --git a/core/src/main/java/org/springframework/security/core/AuthenticationException.java b/core/src/main/java/org/springframework/security/core/AuthenticationException.java
index 5b600616d3..5f1490050a 100644
--- a/core/src/main/java/org/springframework/security/core/AuthenticationException.java
+++ b/core/src/main/java/org/springframework/security/core/AuthenticationException.java
@@ -20,7 +20,6 @@ package org.springframework.security.core;
* reason.
*
* @author Ben Alex
- * @version $Id$
*/
public abstract class AuthenticationException extends RuntimeException {
//~ Instance fields ================================================================================================
diff --git a/core/src/main/java/org/springframework/security/core/GrantedAuthority.java b/core/src/main/java/org/springframework/security/core/GrantedAuthority.java
index 340cc36e60..cfdd92dd7a 100644
--- a/core/src/main/java/org/springframework/security/core/GrantedAuthority.java
+++ b/core/src/main/java/org/springframework/security/core/GrantedAuthority.java
@@ -28,7 +28,6 @@ import org.springframework.security.access.AccessDecisionManager;
* AccessDecisionManager}.
*
* @author Ben Alex
- * @version $Id$
*/
public interface GrantedAuthority extends Serializable {
//~ Methods ========================================================================================================
diff --git a/core/src/main/java/org/springframework/security/core/SpringSecurityMessageSource.java b/core/src/main/java/org/springframework/security/core/SpringSecurityMessageSource.java
index a721d7d44b..fcff0ff24d 100644
--- a/core/src/main/java/org/springframework/security/core/SpringSecurityMessageSource.java
+++ b/core/src/main/java/org/springframework/security/core/SpringSecurityMessageSource.java
@@ -27,7 +27,6 @@ import org.springframework.context.support.ResourceBundleMessageSource;
* specified an alternative message source.
*
* @author Ben Alex
- * @version $Id$
*/
public class SpringSecurityMessageSource extends ResourceBundleMessageSource {
//~ Constructors ===================================================================================================
diff --git a/core/src/main/java/org/springframework/security/core/authority/AuthorityUtils.java b/core/src/main/java/org/springframework/security/core/authority/AuthorityUtils.java
index 6d6daf6e07..50de8f772f 100644
--- a/core/src/main/java/org/springframework/security/core/authority/AuthorityUtils.java
+++ b/core/src/main/java/org/springframework/security/core/authority/AuthorityUtils.java
@@ -16,7 +16,6 @@ import org.springframework.util.StringUtils;
* Mainly intended for internal use.
*
* @author Luke Taylor
- * @version $Id$
*/
public abstract class AuthorityUtils {
public static final List* Typically used in a pre-authenticated scenario when an AuthenticationDetails instance may also be - * used to obtain user authorities. + * used to obtain user authorities. * * @author Ruud Senden * @author Luke Taylor diff --git a/core/src/main/java/org/springframework/security/core/authority/MutableGrantedAuthoritiesContainer.java b/core/src/main/java/org/springframework/security/core/authority/MutableGrantedAuthoritiesContainer.java index 0fa77ce214..30d9cd1dcb 100644 --- a/core/src/main/java/org/springframework/security/core/authority/MutableGrantedAuthoritiesContainer.java +++ b/core/src/main/java/org/springframework/security/core/authority/MutableGrantedAuthoritiesContainer.java @@ -8,8 +8,8 @@ import org.springframework.security.core.GrantedAuthority; * Indicates that a object can be used to store and retrieve GrantedAuthority objects. *
* Typically used in a pre-authenticated scenario when an AuthenticationDetails instance may also be
- * used to obtain user authorities.
- *
+ * used to obtain user authorities.
+ *
* @author Ruud Senden
* @author Luke Taylor
* @since 2.0
diff --git a/core/src/main/java/org/springframework/security/core/authority/mapping/Attributes2GrantedAuthoritiesMapper.java b/core/src/main/java/org/springframework/security/core/authority/mapping/Attributes2GrantedAuthoritiesMapper.java
index 28f6a6241a..434106b8e4 100755
--- a/core/src/main/java/org/springframework/security/core/authority/mapping/Attributes2GrantedAuthoritiesMapper.java
+++ b/core/src/main/java/org/springframework/security/core/authority/mapping/Attributes2GrantedAuthoritiesMapper.java
@@ -1,27 +1,27 @@
-package org.springframework.security.core.authority.mapping;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.springframework.security.core.GrantedAuthority;
-
-/**
- * Interface to be implemented by classes that can map a list of security attributes (such as roles or
- * group names) to a list of Spring Security GrantedAuthorities.
- *
- * @author Ruud Senden
- * @since 2.0
- */
-public interface Attributes2GrantedAuthoritiesMapper {
- /**
- * Implementations of this method should map the given list of attributes to a
- * list of Spring Security GrantedAuthorities. There are no restrictions for the
- * mapping process; a single attribute can be mapped to multiple Spring Security
- * GrantedAuthorities, all attributes can be mapped to a single Spring Security
- * GrantedAuthority, some attributes may not be mapped, etc.
- *
- * @param attribute the attributes to be mapped
- * @return the list of mapped GrantedAuthorities
- */
- public List
- * This class implements the Attributes2GrantedAuthoritiesMapper interface by doing a
- * one-to-one mapping from roles to Spring Security GrantedAuthorities. Optionally a
- * prefix can be added, and the attribute name can be converted to upper or lower
- * case.
- *
- * By default, the attribute is prefixed with "ROLE_" unless it already starts with
- * "ROLE_", and no case conversion is done.
- *
- * @author Ruud Senden
- * @since 2.0
- */
-public class SimpleAttributes2GrantedAuthoritiesMapper implements Attributes2GrantedAuthoritiesMapper, InitializingBean {
- private String attributePrefix = "ROLE_";
-
- private boolean convertAttributeToUpperCase = false;
-
- private boolean convertAttributeToLowerCase = false;
-
- private boolean addPrefixIfAlreadyExisting = false;
-
- /**
- * Check whether all properties have been set to correct values.
- */
- public void afterPropertiesSet() throws Exception {
- Assert.isTrue(!(isConvertAttributeToUpperCase() && isConvertAttributeToLowerCase()),
- "Either convertAttributeToUpperCase or convertAttributeToLowerCase can be set to true, but not both");
- }
-
- /**
- * Map the given list of string attributes one-to-one to Spring Security GrantedAuthorities.
- */
- public List
+ * This class implements the Attributes2GrantedAuthoritiesMapper interface by doing a
+ * one-to-one mapping from roles to Spring Security GrantedAuthorities. Optionally a
+ * prefix can be added, and the attribute name can be converted to upper or lower
+ * case.
+ *
+ * By default, the attribute is prefixed with "ROLE_" unless it already starts with
+ * "ROLE_", and no case conversion is done.
+ *
+ * @author Ruud Senden
+ * @since 2.0
+ */
+public class SimpleAttributes2GrantedAuthoritiesMapper implements Attributes2GrantedAuthoritiesMapper, InitializingBean {
+ private String attributePrefix = "ROLE_";
+
+ private boolean convertAttributeToUpperCase = false;
+
+ private boolean convertAttributeToLowerCase = false;
+
+ private boolean addPrefixIfAlreadyExisting = false;
+
+ /**
+ * Check whether all properties have been set to correct values.
+ */
+ public void afterPropertiesSet() throws Exception {
+ Assert.isTrue(!(isConvertAttributeToUpperCase() && isConvertAttributeToLowerCase()),
+ "Either convertAttributeToUpperCase or convertAttributeToLowerCase can be set to true, but not both");
+ }
+
+ /**
+ * Map the given list of string attributes one-to-one to Spring Security GrantedAuthorities.
+ */
+ public List
- * This means that all instances in the JVM share the
- * same
+ * This means that all instances in the JVM share the
+ * same
- * The preferred strategy is loaded by {@link SecurityContextHolder}.
- *
- * @author Ben Alex
- * @version $Id$
- */
-public interface SecurityContextHolderStrategy {
- //~ Methods ========================================================================================================
-
- /**
- * Clears the current context.
- */
- void clearContext();
-
- /**
- * Obtains the current context.
- *
- * @return a context (never
+ * The preferred strategy is loaded by {@link SecurityContextHolder}.
+ *
+ * @author Ben Alex
+ */
+public interface SecurityContextHolderStrategy {
+ //~ Methods ========================================================================================================
+
+ /**
+ * Clears the current context.
+ */
+ void clearContext();
+
+ /**
+ * Obtains the current context.
+ *
+ * @return a context (never
* It is important that the keys assigned to tokens are sufficiently randomised and secured that
* they can serve as identifying a unique user session. Implementations of {@link TokenService}
@@ -11,34 +11,34 @@ package org.springframework.security.core.token;
* keys are of sufficient length to balance safety against persistence cost. In relation to persistence
* cost, it is strongly recommended that returned keys are small enough for encoding in a cookie.
*
* Implementations are solely concern with issuing a new {@link Token} on demand. The
* issued
* Given the tightly-focused behaviour provided by this interface, it can serve as a building block
* for more sophisticated token-based solutions. For example, authentication systems that depend on
@@ -20,7 +20,7 @@ package org.springframework.security.core.token;
* extended information associated with the key). It is important to recognise that we do not intend
* for this interface to be expanded to provide such capabilities directly.
* static field-based implementation of {@link SecurityContextHolderStrategy}.
- * SecurityContext. This is generally useful with rich clients, such as Swing.
- *
- * @author Ben Alex
- * @version $Id$
- */
-final class GlobalSecurityContextHolderStrategy implements SecurityContextHolderStrategy {
- //~ Static fields/initializers =====================================================================================
-
- private static SecurityContext contextHolder;
-
- //~ Methods ========================================================================================================
-
- public void clearContext() {
- contextHolder = null;
- }
-
- public SecurityContext getContext() {
- if (contextHolder == null) {
- contextHolder = new SecurityContextImpl();
- }
-
- return contextHolder;
- }
-
- public void setContext(SecurityContext context) {
- Assert.notNull(context, "Only non-null SecurityContext instances are permitted");
- contextHolder = context;
- }
-
- public SecurityContext createEmptyContext() {
- return new SecurityContextImpl();
- }
-}
+/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.security.core.context;
+
+import org.springframework.util.Assert;
+
+
+/**
+ * A static field-based implementation of {@link SecurityContextHolderStrategy}.
+ * SecurityContext. This is generally useful with rich clients, such as Swing.
+ *
+ * @author Ben Alex
+ */
+final class GlobalSecurityContextHolderStrategy implements SecurityContextHolderStrategy {
+ //~ Static fields/initializers =====================================================================================
+
+ private static SecurityContext contextHolder;
+
+ //~ Methods ========================================================================================================
+
+ public void clearContext() {
+ contextHolder = null;
+ }
+
+ public SecurityContext getContext() {
+ if (contextHolder == null) {
+ contextHolder = new SecurityContextImpl();
+ }
+
+ return contextHolder;
+ }
+
+ public void setContext(SecurityContext context) {
+ Assert.notNull(context, "Only non-null SecurityContext instances are permitted");
+ contextHolder = context;
+ }
+
+ public SecurityContext createEmptyContext() {
+ return new SecurityContextImpl();
+ }
+}
diff --git a/core/src/main/java/org/springframework/security/core/context/InheritableThreadLocalSecurityContextHolderStrategy.java b/core/src/main/java/org/springframework/security/core/context/InheritableThreadLocalSecurityContextHolderStrategy.java
index 7d79bdc023..888805c696 100644
--- a/core/src/main/java/org/springframework/security/core/context/InheritableThreadLocalSecurityContextHolderStrategy.java
+++ b/core/src/main/java/org/springframework/security/core/context/InheritableThreadLocalSecurityContextHolderStrategy.java
@@ -1,61 +1,60 @@
-/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.security.core.context;
-
-import org.springframework.util.Assert;
-
-
-/**
- * An InheritableThreadLocal-based implementation of {@link
- * org.springframework.security.core.context.SecurityContextHolderStrategy}.
- *
- * @author Ben Alex
- * @version $Id$
- *
- * @see java.lang.ThreadLocal
- * @see org.springframework.security.core.context.web.SecurityContextPersistenceFilter
- */
-final class InheritableThreadLocalSecurityContextHolderStrategy implements SecurityContextHolderStrategy {
- //~ Static fields/initializers =====================================================================================
-
- private static final ThreadLocalInheritableThreadLocal-based implementation of {@link
+ * org.springframework.security.core.context.SecurityContextHolderStrategy}.
+ *
+ * @author Ben Alex
+ *
+ * @see java.lang.ThreadLocal
+ * @see org.springframework.security.core.context.web.SecurityContextPersistenceFilter
+ */
+final class InheritableThreadLocalSecurityContextHolderStrategy implements SecurityContextHolderStrategy {
+ //~ Static fields/initializers =====================================================================================
+
+ private static final ThreadLocalnull - create a default implementation if necessary)
- */
- SecurityContext getContext();
-
- /**
- * Sets the current context.
- *
- * @param context to the new argument (should never be null, although implementations must check if
- * null has been passed and throw an IllegalArgumentException in such cases)
- */
- void setContext(SecurityContext context);
-
- /**
- * Creates a new, empty context implementation, for use by SecurityContextRepository implementations,
- * when creating a new context for the first time.
- *
- * @return the empty context.
- */
- SecurityContext createEmptyContext();
-}
+/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.security.core.context;
+
+/**
+ * A strategy for storing security context information against a thread.
+ *
+ * null - create a default implementation if necessary)
+ */
+ SecurityContext getContext();
+
+ /**
+ * Sets the current context.
+ *
+ * @param context to the new argument (should never be null, although implementations must check if
+ * null has been passed and throw an IllegalArgumentException in such cases)
+ */
+ void setContext(SecurityContext context);
+
+ /**
+ * Creates a new, empty context implementation, for use by SecurityContextRepository implementations,
+ * when creating a new context for the first time.
+ *
+ * @return the empty context.
+ */
+ SecurityContext createEmptyContext();
+}
diff --git a/core/src/main/java/org/springframework/security/core/context/SecurityContextImpl.java b/core/src/main/java/org/springframework/security/core/context/SecurityContextImpl.java
index 036fd81412..6d38bbb907 100644
--- a/core/src/main/java/org/springframework/security/core/context/SecurityContextImpl.java
+++ b/core/src/main/java/org/springframework/security/core/context/SecurityContextImpl.java
@@ -23,7 +23,6 @@ import org.springframework.security.core.Authentication;
* HttpSessionContextIntegrationFilter}.ThreadLocal-based implementation of {@link SecurityContextHolderStrategy}.
- *
- * @author Ben Alex
- * @version $Id$
- *
- * @see java.lang.ThreadLocal
- * @see org.springframework.security.core.context.web.SecurityContextPersistenceFilter
- */
-final class ThreadLocalSecurityContextHolderStrategy implements SecurityContextHolderStrategy {
- //~ Static fields/initializers =====================================================================================
-
- private static final ThreadLocalThreadLocal-based implementation of {@link SecurityContextHolderStrategy}.
+ *
+ * @author Ben Alex
+ *
+ * @see java.lang.ThreadLocal
+ * @see org.springframework.security.core.context.web.SecurityContextPersistenceFilter
+ */
+final class ThreadLocalSecurityContextHolderStrategy implements SecurityContextHolderStrategy {
+ //~ Static fields/initializers =====================================================================================
+
+ private static final ThreadLocalFilter.
*
* @author Ben Alex
- * @version $Id$
*/
public class SessionInformation implements Serializable {
//~ Instance fields ================================================================================================
diff --git a/core/src/main/java/org/springframework/security/core/session/SessionRegistry.java b/core/src/main/java/org/springframework/security/core/session/SessionRegistry.java
index 9496b923a4..230b77bf37 100644
--- a/core/src/main/java/org/springframework/security/core/session/SessionRegistry.java
+++ b/core/src/main/java/org/springframework/security/core/session/SessionRegistry.java
@@ -21,7 +21,6 @@ import java.util.List;
* Maintains a registry of SessionInformation instances.
*
* @author Ben Alex
- * @version $Id$
*/
public interface SessionRegistry {
//~ Methods ========================================================================================================
diff --git a/core/src/main/java/org/springframework/security/core/session/SessionRegistryImpl.java b/core/src/main/java/org/springframework/security/core/session/SessionRegistryImpl.java
index d73e0c60c1..39e8f22c7a 100644
--- a/core/src/main/java/org/springframework/security/core/session/SessionRegistryImpl.java
+++ b/core/src/main/java/org/springframework/security/core/session/SessionRegistryImpl.java
@@ -40,7 +40,6 @@ import org.springframework.util.Assert;
*
* @author Ben Alex
* @author Luke Taylor
- * @version $Id$
*/
public class SessionRegistryImpl implements SessionRegistry, ApplicationListenerToken that is equal to the original
* Token issued for that key.
- *
+ *
* @return a key with appropriate randomness and security.
*/
String getKey();
-
+
/**
* The time the token key was initially created is available from this method. Note that a given
* token must never have this creation time changed. If necessary, a new token can be
* requested from the {@link TokenService} to replace the original token.
- *
+ *
* @return the time this token key was created, in the same format as specified by {@link Date#getTime()).
*/
- long getKeyCreationTime();
-
+ long getKeyCreationTime();
+
/**
* Obtains the extended information associated within the token, which was presented when the token
* was first created.
- *
+ *
* @return the user-specified extended information, if any
*/
String getExtendedInformation();
diff --git a/core/src/main/java/org/springframework/security/core/token/TokenService.java b/core/src/main/java/org/springframework/security/core/token/TokenService.java
index 63c50ac6c4..5101cc5917 100644
--- a/core/src/main/java/org/springframework/security/core/token/TokenService.java
+++ b/core/src/main/java/org/springframework/security/core/token/TokenService.java
@@ -3,7 +3,7 @@ package org.springframework.security.core.token;
/**
* Provides a mechanism to allocate and rebuild secure, randomised tokens.
- *
+ *
* Token may contain user-specified extended information. The token also
@@ -12,7 +12,7 @@ package org.springframework.security.core.token;
* to the TokenService for verification and reconstruction of a Token
* equal to the original Token.
* null, but can be empty)
* @return a new token that has not been issued previously, and is guaranteed to be recognised
* by this implementation's {@link #verifyToken(String)} at any future time.
*/
Token allocateToken(String extendedInformation);
-
+
/**
* Permits verification the <{@link Token#getKey()} was issued by this TokenService and
* reconstructs the corresponding Token.
- *
+ *
* @param key as obtained from {@link Token#getKey()} and created by this implementation
* @return the token, or null if the token was not issued by this TokenService
*/
diff --git a/core/src/main/java/org/springframework/security/core/userdetails/AuthenticationUserDetailsService.java b/core/src/main/java/org/springframework/security/core/userdetails/AuthenticationUserDetailsService.java
index 46c496d6c5..56d10d9205 100644
--- a/core/src/main/java/org/springframework/security/core/userdetails/AuthenticationUserDetailsService.java
+++ b/core/src/main/java/org/springframework/security/core/userdetails/AuthenticationUserDetailsService.java
@@ -1,24 +1,23 @@
-package org.springframework.security.core.userdetails;
-
-import org.springframework.security.core.Authentication;
-
-
-/**
- * Interface that allows for retrieving a UserDetails object based on an Authentication object.
- *
- * @author Ruud Senden
- * @version $Id$
- * @since 2.0
- */
-public interface AuthenticationUserDetailsService {
-
- /**
- *
- * @param token The pre-authenticated authentication token
- * @return UserDetails for the given authentication token, never null.
- * @throws UsernameNotFoundException
- * if no user details can be found for the given authentication
- * token
- */
- UserDetails loadUserDetails(Authentication token) throws UsernameNotFoundException;
-}
+package org.springframework.security.core.userdetails;
+
+import org.springframework.security.core.Authentication;
+
+
+/**
+ * Interface that allows for retrieving a UserDetails object based on an Authentication object.
+ *
+ * @author Ruud Senden
+ * @since 2.0
+ */
+public interface AuthenticationUserDetailsService {
+
+ /**
+ *
+ * @param token The pre-authenticated authentication token
+ * @return UserDetails for the given authentication token, never null.
+ * @throws UsernameNotFoundException
+ * if no user details can be found for the given authentication
+ * token
+ */
+ UserDetails loadUserDetails(Authentication token) throws UsernameNotFoundException;
+}
diff --git a/core/src/main/java/org/springframework/security/core/userdetails/User.java b/core/src/main/java/org/springframework/security/core/userdetails/User.java
index 9c7b99efc5..5932171ab2 100644
--- a/core/src/main/java/org/springframework/security/core/userdetails/User.java
+++ b/core/src/main/java/org/springframework/security/core/userdetails/User.java
@@ -35,7 +35,6 @@ import org.springframework.util.Assert;
* scratch.
*
* @author Ben Alex
- * @version $Id$
*/
public class User implements UserDetails {
//~ Instance fields ================================================================================================
diff --git a/core/src/main/java/org/springframework/security/core/userdetails/UserCache.java b/core/src/main/java/org/springframework/security/core/userdetails/UserCache.java
index 68a17df0ec..02503891be 100644
--- a/core/src/main/java/org/springframework/security/core/userdetails/UserCache.java
+++ b/core/src/main/java/org/springframework/security/core/userdetails/UserCache.java
@@ -33,7 +33,6 @@ package org.springframework.security.core.userdetails;
* @see {@link org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider}
*
* @author Ben Alex
- * @version $Id$
*/
public interface UserCache {
//~ Methods ========================================================================================================
diff --git a/core/src/main/java/org/springframework/security/core/userdetails/UserDetails.java b/core/src/main/java/org/springframework/security/core/userdetails/UserDetails.java
index 05a1bfb942..689c17d018 100644
--- a/core/src/main/java/org/springframework/security/core/userdetails/UserDetails.java
+++ b/core/src/main/java/org/springframework/security/core/userdetails/UserDetails.java
@@ -50,7 +50,6 @@ import java.util.Collection;
* @see UserCache
*
* @author Ben Alex
- * @version $Id$
*/
public interface UserDetails extends Serializable {
//~ Methods ========================================================================================================
diff --git a/core/src/main/java/org/springframework/security/core/userdetails/UserDetailsByNameServiceWrapper.java b/core/src/main/java/org/springframework/security/core/userdetails/UserDetailsByNameServiceWrapper.java
index de235874ec..44118df738 100755
--- a/core/src/main/java/org/springframework/security/core/userdetails/UserDetailsByNameServiceWrapper.java
+++ b/core/src/main/java/org/springframework/security/core/userdetails/UserDetailsByNameServiceWrapper.java
@@ -1,65 +1,65 @@
-package org.springframework.security.core.userdetails;
-
-import org.springframework.security.core.Authentication;
-import org.springframework.beans.factory.InitializingBean;
-import org.springframework.dao.DataAccessException;
-import org.springframework.util.Assert;
-
-/**
- * This implementation for AuthenticationUserDetailsService wraps a regular
- * Spring Security UserDetailsService implementation, to retrieve a UserDetails object
- * based on the user name contained in an Authentication object.
- *
- * @author Ruud Senden
- * @author Scott Battaglia
- * @since 2.0
- */
-public class UserDetailsByNameServiceWrapper implements AuthenticationUserDetailsService, InitializingBean {
- private UserDetailsService userDetailsService = null;
-
- /**
- * Constructs an empty wrapper for compatibility with Spring Security 2.0.x's method of using a setter.
- */
- public UserDetailsByNameServiceWrapper() {
- // constructor for backwards compatibility with 2.0
- }
-
- /**
- * Constructs a new wrapper using the supplied {@link org.springframework.security.core.userdetails.UserDetailsService}
- * as the service to delegate to.
- *
- * @param userDetailsService the UserDetailsService to delegate to.
- */
- public UserDetailsByNameServiceWrapper(final UserDetailsService userDetailsService) {
- Assert.notNull(userDetailsService, "userDetailsService cannot be null.");
- this.userDetailsService = userDetailsService;
- }
-
- /**
- * Check whether all required properties have been set.
- *
- * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet()
- */
- public void afterPropertiesSet() throws Exception {
- Assert.notNull(this.userDetailsService, "UserDetailsService must be set");
- }
-
- /**
- * Get the UserDetails object from the wrapped UserDetailsService
- * implementation
- */
- public UserDetails loadUserDetails(Authentication authentication) throws UsernameNotFoundException,
- DataAccessException {
- return this.userDetailsService.loadUserByUsername(authentication.getName());
- }
-
- /**
- * Set the wrapped UserDetailsService implementation
- *
- * @param aUserDetailsService
- * The wrapped UserDetailsService to set
- */
- public void setUserDetailsService(UserDetailsService aUserDetailsService) {
- this.userDetailsService = aUserDetailsService;
- }
-}
+package org.springframework.security.core.userdetails;
+
+import org.springframework.security.core.Authentication;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.dao.DataAccessException;
+import org.springframework.util.Assert;
+
+/**
+ * This implementation for AuthenticationUserDetailsService wraps a regular
+ * Spring Security UserDetailsService implementation, to retrieve a UserDetails object
+ * based on the user name contained in an Authentication object.
+ *
+ * @author Ruud Senden
+ * @author Scott Battaglia
+ * @since 2.0
+ */
+public class UserDetailsByNameServiceWrapper implements AuthenticationUserDetailsService, InitializingBean {
+ private UserDetailsService userDetailsService = null;
+
+ /**
+ * Constructs an empty wrapper for compatibility with Spring Security 2.0.x's method of using a setter.
+ */
+ public UserDetailsByNameServiceWrapper() {
+ // constructor for backwards compatibility with 2.0
+ }
+
+ /**
+ * Constructs a new wrapper using the supplied {@link org.springframework.security.core.userdetails.UserDetailsService}
+ * as the service to delegate to.
+ *
+ * @param userDetailsService the UserDetailsService to delegate to.
+ */
+ public UserDetailsByNameServiceWrapper(final UserDetailsService userDetailsService) {
+ Assert.notNull(userDetailsService, "userDetailsService cannot be null.");
+ this.userDetailsService = userDetailsService;
+ }
+
+ /**
+ * Check whether all required properties have been set.
+ *
+ * @see org.springframework.beans.factory.InitializingBean#afterPropertiesSet()
+ */
+ public void afterPropertiesSet() throws Exception {
+ Assert.notNull(this.userDetailsService, "UserDetailsService must be set");
+ }
+
+ /**
+ * Get the UserDetails object from the wrapped UserDetailsService
+ * implementation
+ */
+ public UserDetails loadUserDetails(Authentication authentication) throws UsernameNotFoundException,
+ DataAccessException {
+ return this.userDetailsService.loadUserByUsername(authentication.getName());
+ }
+
+ /**
+ * Set the wrapped UserDetailsService implementation
+ *
+ * @param aUserDetailsService
+ * The wrapped UserDetailsService to set
+ */
+ public void setUserDetailsService(UserDetailsService aUserDetailsService) {
+ this.userDetailsService = aUserDetailsService;
+ }
+}
diff --git a/core/src/main/java/org/springframework/security/core/userdetails/UserDetailsChecker.java b/core/src/main/java/org/springframework/security/core/userdetails/UserDetailsChecker.java
index 1e53f5daba..290d3c69d0 100644
--- a/core/src/main/java/org/springframework/security/core/userdetails/UserDetailsChecker.java
+++ b/core/src/main/java/org/springframework/security/core/userdetails/UserDetailsChecker.java
@@ -10,7 +10,6 @@ package org.springframework.security.core.userdetails;
* It should not involved in making any authentication decisions based on a submitted authentication request.
*
* @author Luke Taylor
- * @version $Id$
* @since 2.0
*
* @see org.springframework.security.authentication.AccountStatusUserDetailsChecker
diff --git a/core/src/main/java/org/springframework/security/core/userdetails/UserDetailsService.java b/core/src/main/java/org/springframework/security/core/userdetails/UserDetailsService.java
index 499942ea1b..63975ce380 100644
--- a/core/src/main/java/org/springframework/security/core/userdetails/UserDetailsService.java
+++ b/core/src/main/java/org/springframework/security/core/userdetails/UserDetailsService.java
@@ -31,7 +31,6 @@ import org.springframework.dao.DataAccessException;
* @see UserDetails
*
* @author Ben Alex
- * @version $Id$
*/
public interface UserDetailsService {
//~ Methods ========================================================================================================
diff --git a/core/src/main/java/org/springframework/security/core/userdetails/UsernameNotFoundException.java b/core/src/main/java/org/springframework/security/core/userdetails/UsernameNotFoundException.java
index b5c833341d..30080cbb2c 100644
--- a/core/src/main/java/org/springframework/security/core/userdetails/UsernameNotFoundException.java
+++ b/core/src/main/java/org/springframework/security/core/userdetails/UsernameNotFoundException.java
@@ -22,7 +22,6 @@ import org.springframework.security.core.AuthenticationException;
* Thrown if an {@link UserDetailsService} implementation cannot locate a {@link User} by its username.
*
* @author Ben Alex
- * @version $Id$
*/
public class UsernameNotFoundException extends AuthenticationException {
//~ Constructors ===================================================================================================
diff --git a/core/src/main/java/org/springframework/security/core/userdetails/cache/EhCacheBasedUserCache.java b/core/src/main/java/org/springframework/security/core/userdetails/cache/EhCacheBasedUserCache.java
index 4fc745a8c6..7c729abc56 100644
--- a/core/src/main/java/org/springframework/security/core/userdetails/cache/EhCacheBasedUserCache.java
+++ b/core/src/main/java/org/springframework/security/core/userdetails/cache/EhCacheBasedUserCache.java
@@ -38,7 +38,6 @@ import org.springframework.util.Assert;
* HREF="http://ehcache.sourceforge.net">EHCACHE
SimpleHttpInvokerRequestExecutor.
*
* @author Ben Alex
- * @version $Id$
*/
public class AuthenticationSimpleHttpInvokerRequestExecutor extends SimpleHttpInvokerRequestExecutor {
//~ Static fields/initializers =====================================================================================
diff --git a/core/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocation.java b/core/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocation.java
index 5cbccf4fde..3822e4547f 100644
--- a/core/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocation.java
+++ b/core/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocation.java
@@ -41,7 +41,6 @@ import java.lang.reflect.InvocationTargetException;
*
* @author James Monaghan
* @author Ben Alex
- * @version $Id$
*/
public class ContextPropagatingRemoteInvocation extends RemoteInvocation {
//~ Static fields/initializers =====================================================================================
diff --git a/core/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocationFactory.java b/core/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocationFactory.java
index 7314dd0aa7..300ae3e324 100644
--- a/core/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocationFactory.java
+++ b/core/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocationFactory.java
@@ -28,7 +28,6 @@ import org.springframework.remoting.support.RemoteInvocationFactory;
*
* @author James Monaghan
* @author Ben Alex
- * @version $Id$
*/
public class ContextPropagatingRemoteInvocationFactory implements RemoteInvocationFactory {
//~ Methods ========================================================================================================
diff --git a/core/src/main/java/org/springframework/security/util/EncryptionUtils.java b/core/src/main/java/org/springframework/security/util/EncryptionUtils.java
index 7b5945f62f..c560a2aa95 100644
--- a/core/src/main/java/org/springframework/security/util/EncryptionUtils.java
+++ b/core/src/main/java/org/springframework/security/util/EncryptionUtils.java
@@ -36,7 +36,6 @@ import org.springframework.util.Assert;
*
* @author Alan Stewart
* @author Ben Alex
- * @version $Id$
*/
public final class EncryptionUtils {
diff --git a/core/src/main/java/org/springframework/security/util/FieldUtils.java b/core/src/main/java/org/springframework/security/util/FieldUtils.java
index 877e12722d..6387a7fa9f 100644
--- a/core/src/main/java/org/springframework/security/util/FieldUtils.java
+++ b/core/src/main/java/org/springframework/security/util/FieldUtils.java
@@ -26,7 +26,6 @@ import java.lang.reflect.Field;
* Offers static methods for directly manipulating static fields.
*
* @author Ben Alex
- * @version $Id$
*/
public final class FieldUtils {
//~ Constructors ===================================================================================================
diff --git a/core/src/main/java/org/springframework/security/util/InMemoryResource.java b/core/src/main/java/org/springframework/security/util/InMemoryResource.java
index 50c9f4ff20..b59553651c 100644
--- a/core/src/main/java/org/springframework/security/util/InMemoryResource.java
+++ b/core/src/main/java/org/springframework/security/util/InMemoryResource.java
@@ -29,7 +29,6 @@ import java.util.Arrays;
* Used to create a bean factory from an XML string, rather than a file.
* * @author Luke Taylor - * @version $Id$ */ public class InMemoryResource extends AbstractResource { //~ Instance fields ================================================================================================ diff --git a/core/src/main/java/org/springframework/security/util/MethodInvocationUtils.java b/core/src/main/java/org/springframework/security/util/MethodInvocationUtils.java index 335ea1a462..99a079ae45 100644 --- a/core/src/main/java/org/springframework/security/util/MethodInvocationUtils.java +++ b/core/src/main/java/org/springframework/security/util/MethodInvocationUtils.java @@ -29,7 +29,6 @@ import org.springframework.util.Assert; * All methods of this class return a {@link org.springframework.security.util.SimpleMethodInvocation}. * * @author Ben Alex - * @version $Id$ */ public final class MethodInvocationUtils { //~ Constructors =================================================================================================== diff --git a/core/src/main/java/org/springframework/security/util/SimpleMethodInvocation.java b/core/src/main/java/org/springframework/security/util/SimpleMethodInvocation.java index 14578f52b0..967ffa756b 100644 --- a/core/src/main/java/org/springframework/security/util/SimpleMethodInvocation.java +++ b/core/src/main/java/org/springframework/security/util/SimpleMethodInvocation.java @@ -25,7 +25,6 @@ import java.lang.reflect.Method; * Represents the AOP AllianceMethodInvocation.
*
* @author Ben Alex
- * @version $Id$
*/
public class SimpleMethodInvocation implements MethodInvocation {
//~ Instance fields ================================================================================================
diff --git a/core/src/main/resources/org/springframework/security/messages_fr.properties b/core/src/main/resources/org/springframework/security/messages_fr.properties
index 9ac4dbda26..bbbabf7fbc 100644
--- a/core/src/main/resources/org/springframework/security/messages_fr.properties
+++ b/core/src/main/resources/org/springframework/security/messages_fr.properties
@@ -1,45 +1,45 @@
-# Spring security
-# Messages in French
-# Translation by Laurent Pireyn (laurent.pireyn@pisolutions.eu)
-
-AuthByAdapterProvider.incorrectKey = L'implémentation de AuthByAdapter présentée ne contient pas la clé attendue
-BasicAclEntryAfterInvocationProvider.noPermission = L'authentification {0} n'a AUCUNE permission pour l'objet domaine {1}
-BasicAclEntryAfterInvocationProvider.insufficientPermission = L'authentification {0} a des permissions ACL pour l'objet domaine, mais pas la permission ACL requise pour l'objet domaine {1}
-ConcurrentSessionControllerImpl.exceededAllowed = Le maximum de {0} sessions a été dépassé pour cet utilisateur
-ProviderManager.providerNotFound = Aucun AuthenticationProvider n'a été trouvé pour {0}
-AnonymousAuthenticationProvider.incorrectKey = L'AnonymousAuthenticationToken présenté ne contient pas la clé attendue
-CasAuthenticationProvider.incorrectKey = Le CasAuthenticationToken présenté ne contient pas la clé attendue
-CasAuthenticationProvider.noServiceTicket = Echec d'obtention d'un ticket CAS à valider
-NamedCasProxyDecider.untrusted = Le proxy {0} le plus proche n'est pas fiable
-RejectProxyTickets.reject = Des tickets proxy ont été rejetés
-AbstractSecurityInterceptor.authenticationNotFound = Aucun objet Authentication n'a été trouvé dans le SecurityContext
-AbstractUserDetailsAuthenticationProvider.onlySupports = Seul UsernamePasswordAuthenticationToken est pris en charge
-AbstractUserDetailsAuthenticationProvider.locked = Le compte utilisateur est bloqué
-AbstractUserDetailsAuthenticationProvider.disabled = Le compte utilisateur est désactivé
-AbstractUserDetailsAuthenticationProvider.expired = Le compte utilisateur a expiré
-AbstractUserDetailsAuthenticationProvider.credentialsExpired = Les créances de l'utilisateur ont expiré
-AbstractUserDetailsAuthenticationProvider.badCredentials = Les créances sont erronées
-X509AuthenticationProvider.certificateNull = Le certificat est null
-DaoX509AuthoritiesPopulator.noMatching = Aucun motif concordant n'a été trouvé dans le subjectDN: {0}
-RememberMeAuthenticationProvider.incorrectKey = Le RememberMeAuthenticationToken présenté ne contient pas la clé attendue
-RunAsImplAuthenticationProvider.incorrectKey = Le RunAsUserToken présenté ne contient pas la clé attendue
-DigestProcessingFilter.missingMandatory = Une valeur obligatoire manque au condensé; reçu l'entête {0}
-DigestProcessingFilter.missingAuth = Une valeur obligatoire manque au condensé pour 'auth' QOP; reçu l'entête {0}
-DigestProcessingFilter.incorrectRealm = Le nom de domaine de la réponse {0} ne correspond pas au nom de domaine du système {1}
-DigestProcessingFilter.nonceExpired = Le nonce a expiré
-DigestProcessingFilter.nonceEncoding = Le nonce n'est pas encodé en Base64; reçu le nonce {0}
-DigestProcessingFilter.nonceNotTwoTokens = Le nonce aurait dû générer deux jetons, mais était {0}
-DigestProcessingFilter.nonceNotNumeric = Le jeton nonce aurait dû générer d'abord un jeton numérique, mais était {0}
-DigestProcessingFilter.nonceCompromised = Le jeton nonce est compromis {0}
-DigestProcessingFilter.usernameNotFound = Le nom d'utilisateur {0} n'a pas été trouvé
-DigestProcessingFilter.incorrectResponse = Réponse incorrecte
-JdbcDaoImpl.notFound=Le nom d'utilisateur {0} n'a pas été trouvé
-JdbcDaoImpl.noAuthority=Le compte utilisateur {0} n'a pas de permissions
-SwitchUserProcessingFilter.noCurrentUser = Aucun utilisateur n'est associé à la requête en cours
-SwitchUserProcessingFilter.noOriginalAuthentication = L'objet Authentication original n'a pas été trouvé
-SwitchUserProcessingFilter.usernameNotFound = Le nom d'utilisateur {0} n'a pas été trouvé
-SwitchUserProcessingFilter.locked = Le compte utilisateur est bloqué
-SwitchUserProcessingFilter.disabled = Le compte utilisateur est désactivé
-SwitchUserProcessingFilter.expired = Le compte utilisateur a expiré
-SwitchUserProcessingFilter.credentialsExpired = Les créances de l'utilisateur ont expiré
-AbstractAccessDecisionManager.accessDenied = Accès refusé
+# Spring security
+# Messages in French
+# Translation by Laurent Pireyn (laurent.pireyn@pisolutions.eu)
+
+AuthByAdapterProvider.incorrectKey = L'implémentation de AuthByAdapter présentée ne contient pas la clé attendue
+BasicAclEntryAfterInvocationProvider.noPermission = L'authentification {0} n'a AUCUNE permission pour l'objet domaine {1}
+BasicAclEntryAfterInvocationProvider.insufficientPermission = L'authentification {0} a des permissions ACL pour l'objet domaine, mais pas la permission ACL requise pour l'objet domaine {1}
+ConcurrentSessionControllerImpl.exceededAllowed = Le maximum de {0} sessions a été dépassé pour cet utilisateur
+ProviderManager.providerNotFound = Aucun AuthenticationProvider n'a été trouvé pour {0}
+AnonymousAuthenticationProvider.incorrectKey = L'AnonymousAuthenticationToken présenté ne contient pas la clé attendue
+CasAuthenticationProvider.incorrectKey = Le CasAuthenticationToken présenté ne contient pas la clé attendue
+CasAuthenticationProvider.noServiceTicket = Echec d'obtention d'un ticket CAS à valider
+NamedCasProxyDecider.untrusted = Le proxy {0} le plus proche n'est pas fiable
+RejectProxyTickets.reject = Des tickets proxy ont été rejetés
+AbstractSecurityInterceptor.authenticationNotFound = Aucun objet Authentication n'a été trouvé dans le SecurityContext
+AbstractUserDetailsAuthenticationProvider.onlySupports = Seul UsernamePasswordAuthenticationToken est pris en charge
+AbstractUserDetailsAuthenticationProvider.locked = Le compte utilisateur est bloqué
+AbstractUserDetailsAuthenticationProvider.disabled = Le compte utilisateur est désactivé
+AbstractUserDetailsAuthenticationProvider.expired = Le compte utilisateur a expiré
+AbstractUserDetailsAuthenticationProvider.credentialsExpired = Les créances de l'utilisateur ont expiré
+AbstractUserDetailsAuthenticationProvider.badCredentials = Les créances sont erronées
+X509AuthenticationProvider.certificateNull = Le certificat est null
+DaoX509AuthoritiesPopulator.noMatching = Aucun motif concordant n'a été trouvé dans le subjectDN: {0}
+RememberMeAuthenticationProvider.incorrectKey = Le RememberMeAuthenticationToken présenté ne contient pas la clé attendue
+RunAsImplAuthenticationProvider.incorrectKey = Le RunAsUserToken présenté ne contient pas la clé attendue
+DigestProcessingFilter.missingMandatory = Une valeur obligatoire manque au condensé; reçu l'entête {0}
+DigestProcessingFilter.missingAuth = Une valeur obligatoire manque au condensé pour 'auth' QOP; reçu l'entête {0}
+DigestProcessingFilter.incorrectRealm = Le nom de domaine de la réponse {0} ne correspond pas au nom de domaine du système {1}
+DigestProcessingFilter.nonceExpired = Le nonce a expiré
+DigestProcessingFilter.nonceEncoding = Le nonce n'est pas encodé en Base64; reçu le nonce {0}
+DigestProcessingFilter.nonceNotTwoTokens = Le nonce aurait dû générer deux jetons, mais était {0}
+DigestProcessingFilter.nonceNotNumeric = Le jeton nonce aurait dû générer d'abord un jeton numérique, mais était {0}
+DigestProcessingFilter.nonceCompromised = Le jeton nonce est compromis {0}
+DigestProcessingFilter.usernameNotFound = Le nom d'utilisateur {0} n'a pas été trouvé
+DigestProcessingFilter.incorrectResponse = Réponse incorrecte
+JdbcDaoImpl.notFound=Le nom d'utilisateur {0} n'a pas été trouvé
+JdbcDaoImpl.noAuthority=Le compte utilisateur {0} n'a pas de permissions
+SwitchUserProcessingFilter.noCurrentUser = Aucun utilisateur n'est associé à la requête en cours
+SwitchUserProcessingFilter.noOriginalAuthentication = L'objet Authentication original n'a pas été trouvé
+SwitchUserProcessingFilter.usernameNotFound = Le nom d'utilisateur {0} n'a pas été trouvé
+SwitchUserProcessingFilter.locked = Le compte utilisateur est bloqué
+SwitchUserProcessingFilter.disabled = Le compte utilisateur est désactivé
+SwitchUserProcessingFilter.expired = Le compte utilisateur a expiré
+SwitchUserProcessingFilter.credentialsExpired = Les créances de l'utilisateur ont expiré
+AbstractAccessDecisionManager.accessDenied = Accès refusé
diff --git a/core/src/main/resources/org/springframework/security/messages_ko_KR.properties b/core/src/main/resources/org/springframework/security/messages_ko_KR.properties
index 428b1a4d6d..4db6c91037 100644
--- a/core/src/main/resources/org/springframework/security/messages_ko_KR.properties
+++ b/core/src/main/resources/org/springframework/security/messages_ko_KR.properties
@@ -33,7 +33,7 @@ JdbcDaoImpl.notFound=\uc0ac\uc6a9\uc790 {0}\uc744/\ub97c \ucc3e\uc744 \uc218 \uc
JdbcDaoImpl.noAuthority=\uc0ac\uc6a9\uc790 {0}\uc740/\ub294 \uad8c\ud55c\uc774 \uc5c6\uc2b5\ub2c8\ub2e4.
SwitchUserProcessingFilter.noCurrentUser=\uc0ac\uc6a9\uc790\uac00 \uc874\uc7ac\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.
SwitchUserProcessingFilter.noOriginalAuthentication=Authentication\uc758 \uc6d0\ubcf8\uc744 \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
-SwitchUserProcessingFilter.usernameNotFound=\uc0ac\uc6a9\uc790\uba85(username) {0}\uc744/\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
+SwitchUserProcessingFilter.usernameNotFound=\uc0ac\uc6a9\uc790\uba85(username) {0}\uc744/\ub97c \ucc3e\uc744 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
SwitchUserProcessingFilter.locked=\uc0ac\uc6a9\uc790 \uacc4\uc815\uc774 \uc7a0\uaca8 \uc788\uc2b5\ub2c8\ub2e4.
SwitchUserProcessingFilter.disabled=\uc0ac\uc6a9\uc790 \uacc4\uc815\uc744 \uc0ac\uc6a9\ud560 \uc218 \uc5c6\uc2b5\ub2c8\ub2e4.
SwitchUserProcessingFilter.expired=\uc0ac\uc6a9\uc790 \uacc4\uc815\uc758 \uc720\ud6a8 \uae30\uac04\uc774 \ub9cc\ub8cc \ub418\uc5c8\uc2b5\ub2c8\ub2e4.
diff --git a/core/src/main/resources/org/springframework/security/messages_uk_UA.properties b/core/src/main/resources/org/springframework/security/messages_uk_UA.properties
index 3f471bd20d..a88a7aba6f 100644
--- a/core/src/main/resources/org/springframework/security/messages_uk_UA.properties
+++ b/core/src/main/resources/org/springframework/security/messages_uk_UA.properties
@@ -1,53 +1,53 @@
-AuthByAdapterProvider.incorrectKey=\u0414\u0430\u043D\u0430 \u0456\u043C\u043F\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0446\u0456\u044F AuthByAdapter \u043D\u0435 \u043C\u0456\u0441\u0442\u0438\u0442\u044C \u043E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043E\u0433\u043E \u043A\u043B\u044E\u0447\u0430
-BasicAclEntryAfterInvocationProvider.noPermission=\u0410\u0443\u0442\u0435\u043D\u0442\u0438\u0444\u0456\u043A\u0430\u0446\u0456\u044F {0} \u043D\u0435 \u043C\u0430\u0454 \u0436\u043E\u0434\u043D\u043E\u0433\u043E \u0434\u043E\u0437\u0432\u043E\u043B\u0443 \u0434\u043B\u044F \u0434\u043E\u0441\u0442\u0443\u043F\u0443 \u0434\u043E \u043E\u0431'\u0454\u043A\u0442\u0443 \u0434\u043E\u043C\u0435\u043D\u0443 {1}
-BasicAclEntryAfterInvocationProvider.insufficientPermission=\u0410\u0443\u0442\u0435\u043D\u0442\u0438\u0444\u0456\u043A\u0430\u0446\u0456\u044F {0} \u043C\u0430\u0454 ACL \u0434\u043E\u0437\u0432\u043E\u043B\u0438, \u0430\u043B\u0435 \u043D\u0435 \u043C\u0430\u0454 \u043D\u0435\u043E\u0431\u0445\u0456\u0434\u043D\u043E\u0433\u043E \u0434\u043E\u0437\u0432\u043E\u043B\u0443 \u0434\u043B\u044F \u0434\u043E\u0441\u0442\u0443\u043F\u0443 \u0434\u043E \u043E\u0431'\u0454\u043A\u0442\u0443 \u0434\u043E\u043C\u0435\u043D\u0443 {1}
-ConcurrentSessionControllerImpl.exceededAllowed=\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430 \u043A\u0456\u043B\u044C\u043A\u0456\u0441\u0442\u044C \u0441\u0435\u0441\u0456\u0439 ({0}) \u0434\u043B\u044F \u0446\u044C\u043E\u0433\u043E \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0432\u0438\u0447\u0435\u0440\u043F\u0430\u043D\u0430
-ProviderManager.providerNotFound=AuthenticationProvider \u0434\u043B\u044F {0} \u043D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u0438\u0439
-AnonymousAuthenticationProvider.incorrectKey=\u0414\u0430\u043D\u0438\u0439 AnonymousAuthenticationToken \u043D\u0435 \u043C\u0456\u0441\u0442\u0438\u0442\u044C \u043E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043E\u0433\u043E \u043A\u043B\u044E\u0447\u0430
-CasAuthenticationProvider.incorrectKey=\u0414\u0430\u043D\u0438\u0439 CasAuthenticationToken \u043D\u0435 \u043C\u0456\u0441\u0442\u0438\u0442\u044C \u043E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043E\u0433\u043E \u043A\u043B\u044E\u0447\u0430
-CasAuthenticationProvider.noServiceTicket=\u041D\u0435 \u043C\u043E\u0436\u043B\u0438\u0432\u043E \u043D\u0430\u0434\u0430\u0442\u0438 \u0431\u0456\u043B\u0435\u0442 \u0441\u0435\u0440\u0432\u0456\u0441\u0443 CAS \u0434\u043B\u044F \u0432\u0430\u043B\u0456\u0434\u0430\u0446\u0456\u0457
-NamedCasProxyDecider.untrusted=\u041D\u0430\u0439\u0431\u043B\u0438\u0436\u0447\u0438\u0439 \u043F\u0440\u043E\u043A\u0441\u0456-\u0441\u0435\u0440\u0432\u0435\u0440 {0} \u0454 \u043D\u0435\u043D\u0430\u0434\u0456\u0439\u043D\u0438\u043C
-RejectProxyTickets.reject=\u0411\u0456\u043B\u0435\u0442\u0438 \u043F\u0440\u043E\u043A\u0441\u0456-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0432\u0456\u0434\u0445\u0438\u043B\u0435\u043D\u0456
-AbstractSecurityInterceptor.authenticationNotFound=\u041E\u0431'\u0454\u043A\u0442 Authentication \u043D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u0438\u0439 \u0432 SecurityContext
-AbstractUserDetailsAuthenticationProvider.onlySupports=\u0422\u0456\u043B\u044C\u043A\u0438 UsernamePasswordAuthenticationToken \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0454\u0442\u044C\u0441\u044F
-AbstractUserDetailsAuthenticationProvider.locked=\u041E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441 \u043A\u043E\u0440\u0443\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0437\u0430\u0431\u043B\u043E\u043A\u043E\u0432\u0430\u043D\u0438\u0439
-AbstractUserDetailsAuthenticationProvider.disabled=\u041E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441 \u043A\u043E\u0440\u0443\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0437\u0430\u0431\u043E\u0440\u043E\u043D\u0435\u043D\u0438\u0439
-AbstractUserDetailsAuthenticationProvider.expired=\u041E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441 \u043A\u043E\u0440\u0443\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0432\u0438\u0447\u0435\u0440\u043F\u0430\u0432 \u0442\u0435\u0440\u043C\u0456\u043D \u0434\u0456\u0457
-AbstractUserDetailsAuthenticationProvider.credentialsExpired=\u041F\u043E\u0432\u043D\u043E\u0432\u0430\u0436\u0435\u043D\u043D\u044F \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0432\u0438\u0447\u0435\u0440\u043F\u0430\u043B\u0438 \u0442\u0435\u0440\u043C\u0456\u043D \u0434\u0456\u0457
-AbstractUserDetailsAuthenticationProvider.badCredentials=\u0414\u0430\u043D\u0456 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u043D\u0435\u043A\u043E\u0440\u0435\u043A\u0442\u043D\u0456
-X509AuthenticationProvider.certificateNull=\u0421\u0435\u0440\u0442\u0438\u0444\u0456\u043A\u0430\u0442 \u043F\u043E\u0440\u043E\u0436\u043D\u0456\u0439
-DaoX509AuthoritiesPopulator.noMatching=\u041D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u043E \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u043D\u043E\u0433\u043E \u0448\u0430\u0431\u043B\u043E\u043D\u0443 \u0432 subjectDN: {0}
-RememberMeAuthenticationProvider.incorrectKey=\u0414\u0430\u043D\u0438\u0439 RememberMeAuthenticationToken \u043D\u0435 \u043C\u0456\u0441\u0442\u0438\u0442\u044C \u043E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043E\u0433\u043E \u043A\u043B\u044E\u0447\u0430
-RunAsImplAuthenticationProvider.incorrectKey=\u0414\u0430\u043D\u0438\u0439 RunAsUserToken \u043D\u0435 \u043C\u0456\u0441\u0442\u0438\u0442\u044C \u043E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043E\u0433\u043E \u043A\u043B\u044E\u0447\u0430
-DigestProcessingFilter.missingMandatory=\u0412\u0456\u0434\u0441\u0443\u0442\u043D\u0454 \u043E\u0431\u043E\u0432'\u044F\u0437\u043A\u043E\u0432\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u0430; \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u0438\u0439 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A {0}
-DigestProcessingFilter.missingAuth=\u0412\u0456\u0434\u0441\u0443\u0442\u043D\u0454 \u043E\u0431\u043E\u0432'\u044F\u0437\u043A\u043E\u0432\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u0430 \u0434\u043B\u044F 'auth' QOP; \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u0438\u0439 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A {0}
-DigestProcessingFilter.incorrectRealm=\u041D\u0430\u0437\u0432\u0430 \u0434\u043E\u043C\u0435\u043D\u0443 {0} \u0443 \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0456 \u043D\u0435 \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0454 \u043D\u0430\u0437\u0432\u0456 \u0434\u043E\u043C\u0435\u043D\u0443 {1} \u0432 \u0441\u0438\u0441\u0442\u0435\u043C\u0456
-DigestProcessingFilter.nonceExpired=\u041A\u043E\u0434 (nonce) \u0432\u0438\u0447\u0435\u0440\u043F\u0430\u0432 \u0442\u0435\u0440\u043C\u0456\u043D \u0434\u0456\u0457
-DigestProcessingFilter.nonceEncoding=\u041A\u043E\u0434 (nonce) \u043D\u0435 \u0437\u0430\u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0438\u0439 \u0432 Base64; \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u0438\u0439 \u043A\u043E\u0434 {0}
-DigestProcessingFilter.nonceNotTwoTokens=\u041A\u043E\u0434 (nonce) \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 \u0434\u0432\u0430 \u0441\u0438\u043C\u0432\u043E\u043B\u0438 (tokens), \u0430\u043B\u0435 \u043C\u0456\u0441\u0442\u0438\u0442\u044C {0}
-DigestProcessingFilter.nonceNotNumeric=\u041F\u0435\u0440\u0448\u0438\u0439 \u0441\u0438\u043C\u0432\u043E\u043B (token) \u043A\u043E\u0434 \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 \u0446\u0438\u0444\u0440\u043E\u0432\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F, \u0430 \u043C\u0456\u0441\u0442\u0438\u0442\u044C: {0}
-DigestProcessingFilter.nonceCompromised=\u041A\u043E\u0434 (nonce) \u0441\u043A\u043E\u043C\u043F\u0440\u043E\u043C\u0435\u0442\u043E\u0432\u0430\u043D\u0438\u0439 {0}
-DigestProcessingFilter.usernameNotFound=\u041E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 {0} \u043D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u0438\u0439
-DigestProcessingFilter.incorrectResponse=\u041D\u0435\u043A\u043E\u0440\u0435\u043A\u0442\u043D\u0430 \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u044C
-JdbcDaoImpl.notFound=\u041E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 {0} \u043D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u0438\u0439
-JdbcDaoImpl.noAuthority=\u041A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447 {0} \u043D\u0435 \u043C\u0430\u0454 \u043F\u043E\u0432\u043D\u043E\u0432\u0430\u0436\u0435\u043D\u044C (GrantedAuthority)
-SwitchUserProcessingFilter.noCurrentUser=\u041D\u0435\u043C\u0430\u0454 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430, \u043F\u043E\u0432'\u044F\u0437\u0430\u043D\u043E\u0433\u043E \u0456\u0437 \u0434\u0430\u043D\u0438\u043C \u0437\u0430\u043F\u0438\u0442\u043E\u043C
-SwitchUserProcessingFilter.noOriginalAuthentication=\u041D\u0435 \u043C\u043E\u0436\u043B\u0438\u0432\u043E \u0437\u043D\u0430\u0439\u0442\u0438 \u043E\u0440\u0438\u0433\u0456\u043D\u0430\u043B\u044C\u043D\u0438\u0439 \u043E\u0431'\u0454\u043A\u0442 Authentication
-SwitchUserProcessingFilter.usernameNotFound=\u0406\u043C'\u044F \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 {0} \u043D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u0435
-SwitchUserProcessingFilter.locked=\u041E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0437\u0430\u0431\u043B\u043E\u043A\u043E\u0432\u0430\u043D\u0438\u0439
-SwitchUserProcessingFilter.disabled=\u041E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441 \u043A\u043E\u0440\u0443\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0437\u0430\u0431\u043E\u0440\u043E\u043D\u0435\u043D\u0438\u0439
-SwitchUserProcessingFilter.expired=\u041E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441 \u043A\u043E\u0440\u0443\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0432\u0438\u0447\u0435\u0440\u043F\u0430\u0432 \u0442\u0435\u0440\u043C\u0456\u043D \u0434\u0456\u0457
-SwitchUserProcessingFilter.credentialsExpired=\u041F\u043E\u0432\u043D\u043E\u0432\u0430\u0436\u0435\u043D\u043D\u044F \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0432\u0438\u0447\u0435\u0440\u043F\u0430\u043B\u0438 \u0442\u0435\u0440\u043C\u0456\u043D \u0434\u0456\u0457
-AbstractAccessDecisionManager.accessDenied=\u0414\u043E\u0441\u0442\u0443\u043F \u0437\u0430\u0431\u043E\u0440\u043E\u043D\u0435\u043D\u0438\u0439
-LdapAuthenticationProvider.emptyUsername=\u041F\u043E\u0440\u043E\u0436\u043D\u0454 \u0456\u043C'\u044F \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0454 \u0437\u0430\u0431\u043E\u0440\u043E\u043D\u0435\u043D\u0438\u043C
-LdapAuthenticationProvider.emptyPassword=\u0414\u0430\u043D\u0456 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u043D\u0435\u043A\u043E\u0440\u0435\u043A\u0442\u043D\u0456
-DefaultIntitalDirContextFactory.communicationFailure=\u041D\u0435\u043C\u043E\u0436\u043B\u0438\u0432\u043E \u0437'\u0454\u0434\u043D\u0430\u0442\u0438\u0441\u044F \u0437 LDAP \u0441\u0435\u0440\u0432\u0435\u0440\u043E\u043C
-DefaultIntitalDirContextFactory.badCredentials=\u0414\u0430\u043D\u0456 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u043D\u0435\u043A\u043E\u0440\u0435\u043A\u0442\u043D\u0456
-DefaultIntitalDirContextFactory.unexpectedException=\u041D\u0435\u043C\u043E\u0436\u043B\u0438\u0432\u043E \u043E\u0442\u0440\u0438\u043C\u0430\u0442\u0438 InitialDirContext \u0447\u0435\u0440\u0435\u0437 \u0432\u0438\u043D\u0438\u043A\u043D\u0435\u043D\u043D\u044F \u043D\u0435\u043E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043E\u0457 \u043F\u043E\u043C\u0438\u043B\u043A\u0438
-PasswordComparisonAuthenticator.badCredentials=\u0414\u0430\u043D\u0456 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u043D\u0435\u043A\u043E\u0440\u0435\u043A\u0442\u043D\u0456
-BindAuthenticator.badCredentials=\u0414\u0430\u043D\u0456 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u043D\u0435\u043A\u043E\u0440\u0435\u043A\u0442\u043D\u0456
-BindAuthenticator.failedToLoadAttributes=\u0414\u0430\u043D\u0456 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u043D\u0435\u043A\u043E\u0440\u0435\u043A\u0442\u043D\u0456
-UserDetailsService.locked=\u041E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0437\u0430\u0431\u043B\u043E\u043A\u043E\u0432\u0430\u043D\u0438\u0439
-UserDetailsService.disabled=\u041E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441 \u043A\u043E\u0440\u0443\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0437\u0430\u0431\u043E\u0440\u043E\u043D\u0435\u043D\u0438\u0439
-UserDetailsService.expired=\u041E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441 \u043A\u043E\u0440\u0443\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0432\u0438\u0447\u0435\u0440\u043F\u0430\u0432 \u0442\u0435\u0440\u043C\u0456\u043D \u0434\u0456\u0457
-UserDetailsService.credentialsExpired=\u041F\u043E\u0432\u043D\u043E\u0432\u0430\u0436\u0435\u043D\u043D\u044F \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0432\u0438\u0447\u0435\u0440\u043F\u0430\u043B\u0438 \u0442\u0435\u0440\u043C\u0456\u043D \u0434\u0456\u0457
+AuthByAdapterProvider.incorrectKey=\u0414\u0430\u043D\u0430 \u0456\u043C\u043F\u043B\u0435\u043C\u0435\u043D\u0442\u0430\u0446\u0456\u044F AuthByAdapter \u043D\u0435 \u043C\u0456\u0441\u0442\u0438\u0442\u044C \u043E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043E\u0433\u043E \u043A\u043B\u044E\u0447\u0430
+BasicAclEntryAfterInvocationProvider.noPermission=\u0410\u0443\u0442\u0435\u043D\u0442\u0438\u0444\u0456\u043A\u0430\u0446\u0456\u044F {0} \u043D\u0435 \u043C\u0430\u0454 \u0436\u043E\u0434\u043D\u043E\u0433\u043E \u0434\u043E\u0437\u0432\u043E\u043B\u0443 \u0434\u043B\u044F \u0434\u043E\u0441\u0442\u0443\u043F\u0443 \u0434\u043E \u043E\u0431'\u0454\u043A\u0442\u0443 \u0434\u043E\u043C\u0435\u043D\u0443 {1}
+BasicAclEntryAfterInvocationProvider.insufficientPermission=\u0410\u0443\u0442\u0435\u043D\u0442\u0438\u0444\u0456\u043A\u0430\u0446\u0456\u044F {0} \u043C\u0430\u0454 ACL \u0434\u043E\u0437\u0432\u043E\u043B\u0438, \u0430\u043B\u0435 \u043D\u0435 \u043C\u0430\u0454 \u043D\u0435\u043E\u0431\u0445\u0456\u0434\u043D\u043E\u0433\u043E \u0434\u043E\u0437\u0432\u043E\u043B\u0443 \u0434\u043B\u044F \u0434\u043E\u0441\u0442\u0443\u043F\u0443 \u0434\u043E \u043E\u0431'\u0454\u043A\u0442\u0443 \u0434\u043E\u043C\u0435\u043D\u0443 {1}
+ConcurrentSessionControllerImpl.exceededAllowed=\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430 \u043A\u0456\u043B\u044C\u043A\u0456\u0441\u0442\u044C \u0441\u0435\u0441\u0456\u0439 ({0}) \u0434\u043B\u044F \u0446\u044C\u043E\u0433\u043E \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0432\u0438\u0447\u0435\u0440\u043F\u0430\u043D\u0430
+ProviderManager.providerNotFound=AuthenticationProvider \u0434\u043B\u044F {0} \u043D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u0438\u0439
+AnonymousAuthenticationProvider.incorrectKey=\u0414\u0430\u043D\u0438\u0439 AnonymousAuthenticationToken \u043D\u0435 \u043C\u0456\u0441\u0442\u0438\u0442\u044C \u043E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043E\u0433\u043E \u043A\u043B\u044E\u0447\u0430
+CasAuthenticationProvider.incorrectKey=\u0414\u0430\u043D\u0438\u0439 CasAuthenticationToken \u043D\u0435 \u043C\u0456\u0441\u0442\u0438\u0442\u044C \u043E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043E\u0433\u043E \u043A\u043B\u044E\u0447\u0430
+CasAuthenticationProvider.noServiceTicket=\u041D\u0435 \u043C\u043E\u0436\u043B\u0438\u0432\u043E \u043D\u0430\u0434\u0430\u0442\u0438 \u0431\u0456\u043B\u0435\u0442 \u0441\u0435\u0440\u0432\u0456\u0441\u0443 CAS \u0434\u043B\u044F \u0432\u0430\u043B\u0456\u0434\u0430\u0446\u0456\u0457
+NamedCasProxyDecider.untrusted=\u041D\u0430\u0439\u0431\u043B\u0438\u0436\u0447\u0438\u0439 \u043F\u0440\u043E\u043A\u0441\u0456-\u0441\u0435\u0440\u0432\u0435\u0440 {0} \u0454 \u043D\u0435\u043D\u0430\u0434\u0456\u0439\u043D\u0438\u043C
+RejectProxyTickets.reject=\u0411\u0456\u043B\u0435\u0442\u0438 \u043F\u0440\u043E\u043A\u0441\u0456-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0432\u0456\u0434\u0445\u0438\u043B\u0435\u043D\u0456
+AbstractSecurityInterceptor.authenticationNotFound=\u041E\u0431'\u0454\u043A\u0442 Authentication \u043D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u0438\u0439 \u0432 SecurityContext
+AbstractUserDetailsAuthenticationProvider.onlySupports=\u0422\u0456\u043B\u044C\u043A\u0438 UsernamePasswordAuthenticationToken \u043F\u0456\u0434\u0442\u0440\u0438\u043C\u0443\u0454\u0442\u044C\u0441\u044F
+AbstractUserDetailsAuthenticationProvider.locked=\u041E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441 \u043A\u043E\u0440\u0443\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0437\u0430\u0431\u043B\u043E\u043A\u043E\u0432\u0430\u043D\u0438\u0439
+AbstractUserDetailsAuthenticationProvider.disabled=\u041E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441 \u043A\u043E\u0440\u0443\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0437\u0430\u0431\u043E\u0440\u043E\u043D\u0435\u043D\u0438\u0439
+AbstractUserDetailsAuthenticationProvider.expired=\u041E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441 \u043A\u043E\u0440\u0443\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0432\u0438\u0447\u0435\u0440\u043F\u0430\u0432 \u0442\u0435\u0440\u043C\u0456\u043D \u0434\u0456\u0457
+AbstractUserDetailsAuthenticationProvider.credentialsExpired=\u041F\u043E\u0432\u043D\u043E\u0432\u0430\u0436\u0435\u043D\u043D\u044F \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0432\u0438\u0447\u0435\u0440\u043F\u0430\u043B\u0438 \u0442\u0435\u0440\u043C\u0456\u043D \u0434\u0456\u0457
+AbstractUserDetailsAuthenticationProvider.badCredentials=\u0414\u0430\u043D\u0456 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u043D\u0435\u043A\u043E\u0440\u0435\u043A\u0442\u043D\u0456
+X509AuthenticationProvider.certificateNull=\u0421\u0435\u0440\u0442\u0438\u0444\u0456\u043A\u0430\u0442 \u043F\u043E\u0440\u043E\u0436\u043D\u0456\u0439
+DaoX509AuthoritiesPopulator.noMatching=\u041D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u043E \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u043D\u043E\u0433\u043E \u0448\u0430\u0431\u043B\u043E\u043D\u0443 \u0432 subjectDN: {0}
+RememberMeAuthenticationProvider.incorrectKey=\u0414\u0430\u043D\u0438\u0439 RememberMeAuthenticationToken \u043D\u0435 \u043C\u0456\u0441\u0442\u0438\u0442\u044C \u043E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043E\u0433\u043E \u043A\u043B\u044E\u0447\u0430
+RunAsImplAuthenticationProvider.incorrectKey=\u0414\u0430\u043D\u0438\u0439 RunAsUserToken \u043D\u0435 \u043C\u0456\u0441\u0442\u0438\u0442\u044C \u043E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043E\u0433\u043E \u043A\u043B\u044E\u0447\u0430
+DigestProcessingFilter.missingMandatory=\u0412\u0456\u0434\u0441\u0443\u0442\u043D\u0454 \u043E\u0431\u043E\u0432'\u044F\u0437\u043A\u043E\u0432\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u0430; \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u0438\u0439 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A {0}
+DigestProcessingFilter.missingAuth=\u0412\u0456\u0434\u0441\u0443\u0442\u043D\u0454 \u043E\u0431\u043E\u0432'\u044F\u0437\u043A\u043E\u0432\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F \u0434\u0430\u0439\u0434\u0436\u0435\u0441\u0442\u0430 \u0434\u043B\u044F 'auth' QOP; \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u0438\u0439 \u0437\u0430\u0433\u043E\u043B\u043E\u0432\u043E\u043A {0}
+DigestProcessingFilter.incorrectRealm=\u041D\u0430\u0437\u0432\u0430 \u0434\u043E\u043C\u0435\u043D\u0443 {0} \u0443 \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0456 \u043D\u0435 \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u0430\u0454 \u043D\u0430\u0437\u0432\u0456 \u0434\u043E\u043C\u0435\u043D\u0443 {1} \u0432 \u0441\u0438\u0441\u0442\u0435\u043C\u0456
+DigestProcessingFilter.nonceExpired=\u041A\u043E\u0434 (nonce) \u0432\u0438\u0447\u0435\u0440\u043F\u0430\u0432 \u0442\u0435\u0440\u043C\u0456\u043D \u0434\u0456\u0457
+DigestProcessingFilter.nonceEncoding=\u041A\u043E\u0434 (nonce) \u043D\u0435 \u0437\u0430\u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0438\u0439 \u0432 Base64; \u043E\u0442\u0440\u0438\u043C\u0430\u043D\u0438\u0439 \u043A\u043E\u0434 {0}
+DigestProcessingFilter.nonceNotTwoTokens=\u041A\u043E\u0434 (nonce) \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 \u0434\u0432\u0430 \u0441\u0438\u043C\u0432\u043E\u043B\u0438 (tokens), \u0430\u043B\u0435 \u043C\u0456\u0441\u0442\u0438\u0442\u044C {0}
+DigestProcessingFilter.nonceNotNumeric=\u041F\u0435\u0440\u0448\u0438\u0439 \u0441\u0438\u043C\u0432\u043E\u043B (token) \u043A\u043E\u0434 \u043F\u043E\u0432\u0438\u043D\u0435\u043D \u043C\u0456\u0441\u0442\u0438\u0442\u0438 \u0446\u0438\u0444\u0440\u043E\u0432\u0435 \u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044F, \u0430 \u043C\u0456\u0441\u0442\u0438\u0442\u044C: {0}
+DigestProcessingFilter.nonceCompromised=\u041A\u043E\u0434 (nonce) \u0441\u043A\u043E\u043C\u043F\u0440\u043E\u043C\u0435\u0442\u043E\u0432\u0430\u043D\u0438\u0439 {0}
+DigestProcessingFilter.usernameNotFound=\u041E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 {0} \u043D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u0438\u0439
+DigestProcessingFilter.incorrectResponse=\u041D\u0435\u043A\u043E\u0440\u0435\u043A\u0442\u043D\u0430 \u0432\u0456\u0434\u043F\u043E\u0432\u0456\u0434\u044C
+JdbcDaoImpl.notFound=\u041E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 {0} \u043D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u0438\u0439
+JdbcDaoImpl.noAuthority=\u041A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447 {0} \u043D\u0435 \u043C\u0430\u0454 \u043F\u043E\u0432\u043D\u043E\u0432\u0430\u0436\u0435\u043D\u044C (GrantedAuthority)
+SwitchUserProcessingFilter.noCurrentUser=\u041D\u0435\u043C\u0430\u0454 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430, \u043F\u043E\u0432'\u044F\u0437\u0430\u043D\u043E\u0433\u043E \u0456\u0437 \u0434\u0430\u043D\u0438\u043C \u0437\u0430\u043F\u0438\u0442\u043E\u043C
+SwitchUserProcessingFilter.noOriginalAuthentication=\u041D\u0435 \u043C\u043E\u0436\u043B\u0438\u0432\u043E \u0437\u043D\u0430\u0439\u0442\u0438 \u043E\u0440\u0438\u0433\u0456\u043D\u0430\u043B\u044C\u043D\u0438\u0439 \u043E\u0431'\u0454\u043A\u0442 Authentication
+SwitchUserProcessingFilter.usernameNotFound=\u0406\u043C'\u044F \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 {0} \u043D\u0435 \u0437\u043D\u0430\u0439\u0434\u0435\u043D\u0435
+SwitchUserProcessingFilter.locked=\u041E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0437\u0430\u0431\u043B\u043E\u043A\u043E\u0432\u0430\u043D\u0438\u0439
+SwitchUserProcessingFilter.disabled=\u041E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441 \u043A\u043E\u0440\u0443\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0437\u0430\u0431\u043E\u0440\u043E\u043D\u0435\u043D\u0438\u0439
+SwitchUserProcessingFilter.expired=\u041E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441 \u043A\u043E\u0440\u0443\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0432\u0438\u0447\u0435\u0440\u043F\u0430\u0432 \u0442\u0435\u0440\u043C\u0456\u043D \u0434\u0456\u0457
+SwitchUserProcessingFilter.credentialsExpired=\u041F\u043E\u0432\u043D\u043E\u0432\u0430\u0436\u0435\u043D\u043D\u044F \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0432\u0438\u0447\u0435\u0440\u043F\u0430\u043B\u0438 \u0442\u0435\u0440\u043C\u0456\u043D \u0434\u0456\u0457
+AbstractAccessDecisionManager.accessDenied=\u0414\u043E\u0441\u0442\u0443\u043F \u0437\u0430\u0431\u043E\u0440\u043E\u043D\u0435\u043D\u0438\u0439
+LdapAuthenticationProvider.emptyUsername=\u041F\u043E\u0440\u043E\u0436\u043D\u0454 \u0456\u043C'\u044F \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0454 \u0437\u0430\u0431\u043E\u0440\u043E\u043D\u0435\u043D\u0438\u043C
+LdapAuthenticationProvider.emptyPassword=\u0414\u0430\u043D\u0456 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u043D\u0435\u043A\u043E\u0440\u0435\u043A\u0442\u043D\u0456
+DefaultIntitalDirContextFactory.communicationFailure=\u041D\u0435\u043C\u043E\u0436\u043B\u0438\u0432\u043E \u0437'\u0454\u0434\u043D\u0430\u0442\u0438\u0441\u044F \u0437 LDAP \u0441\u0435\u0440\u0432\u0435\u0440\u043E\u043C
+DefaultIntitalDirContextFactory.badCredentials=\u0414\u0430\u043D\u0456 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u043D\u0435\u043A\u043E\u0440\u0435\u043A\u0442\u043D\u0456
+DefaultIntitalDirContextFactory.unexpectedException=\u041D\u0435\u043C\u043E\u0436\u043B\u0438\u0432\u043E \u043E\u0442\u0440\u0438\u043C\u0430\u0442\u0438 InitialDirContext \u0447\u0435\u0440\u0435\u0437 \u0432\u0438\u043D\u0438\u043A\u043D\u0435\u043D\u043D\u044F \u043D\u0435\u043E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043E\u0457 \u043F\u043E\u043C\u0438\u043B\u043A\u0438
+PasswordComparisonAuthenticator.badCredentials=\u0414\u0430\u043D\u0456 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u043D\u0435\u043A\u043E\u0440\u0435\u043A\u0442\u043D\u0456
+BindAuthenticator.badCredentials=\u0414\u0430\u043D\u0456 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u043D\u0435\u043A\u043E\u0440\u0435\u043A\u0442\u043D\u0456
+BindAuthenticator.failedToLoadAttributes=\u0414\u0430\u043D\u0456 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u043D\u0435\u043A\u043E\u0440\u0435\u043A\u0442\u043D\u0456
+UserDetailsService.locked=\u041E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441 \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0437\u0430\u0431\u043B\u043E\u043A\u043E\u0432\u0430\u043D\u0438\u0439
+UserDetailsService.disabled=\u041E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441 \u043A\u043E\u0440\u0443\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0437\u0430\u0431\u043E\u0440\u043E\u043D\u0435\u043D\u0438\u0439
+UserDetailsService.expired=\u041E\u0431\u043B\u0456\u043A\u043E\u0432\u0438\u0439 \u0437\u0430\u043F\u0438\u0441 \u043A\u043E\u0440\u0443\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0432\u0438\u0447\u0435\u0440\u043F\u0430\u0432 \u0442\u0435\u0440\u043C\u0456\u043D \u0434\u0456\u0457
+UserDetailsService.credentialsExpired=\u041F\u043E\u0432\u043D\u043E\u0432\u0430\u0436\u0435\u043D\u043D\u044F \u043A\u043E\u0440\u0438\u0441\u0442\u0443\u0432\u0430\u0447\u0430 \u0432\u0438\u0447\u0435\u0440\u043F\u0430\u043B\u0438 \u0442\u0435\u0440\u043C\u0456\u043D \u0434\u0456\u0457
diff --git a/core/src/main/resources/org/springframework/security/messages_zh_CN.properties b/core/src/main/resources/org/springframework/security/messages_zh_CN.properties
index 7345527901..9579dc6e74 100644
--- a/core/src/main/resources/org/springframework/security/messages_zh_CN.properties
+++ b/core/src/main/resources/org/springframework/security/messages_zh_CN.properties
@@ -1,54 +1,54 @@
-AuthByAdapterProvider.incorrectKey=\u5c55\u793a\u7684AuthByAdapter\u5b9e\u73b0\u4e0d\u542b\u6709\u9884\u671f\u7684key
-BasicAclEntryAfterInvocationProvider.noPermission=\u7ed9\u5b9a\u7684Authentication\u5bf9\u8c61({0})\u6839\u672c\u65e0\u6743\u64cd\u63a7\u9886\u57df\u5bf9\u8c61({1})
-BasicAclEntryAfterInvocationProvider.insufficientPermission=Authentication\u5bf9\u8c61({0})\u786e\u5b9e\u542b\u6709ACL\u6743\u9650\uff0c\u4f46\u5e76\u4e0d\u662f\u76ee\u6807\u9886\u57df\u5bf9\u8c61\u6240\u8981\u6c42\u7684({1})
-ConcurrentSessionControllerImpl.exceededAllowed=\u5df2\u7ecf\u8d85\u8fc7\u4e86\u5f53\u524d\u4e3b\u4f53({0})\u88ab\u5141\u8bb8\u7684\u6700\u5927\u4f1a\u8bdd\u6570\u91cf
-ProviderManager.providerNotFound=\u672a\u67e5\u627e\u5230\u9488\u5bf9{0}\u7684AuthenticationProvider
-AnonymousAuthenticationProvider.incorrectKey=\u5c55\u793a\u7684AnonymousAuthenticationToken\u4e0d\u542b\u6709\u9884\u671f\u7684key
-CasAuthenticationProvider.incorrectKey=\u5c55\u793a\u7684CasAuthenticationToken\u4e0d\u542b\u6709\u9884\u671f\u7684key
-CasAuthenticationProvider.noServiceTicket=\u672a\u80fd\u591f\u6b63\u786e\u63d0\u4f9b\u5f85\u9a8c\u8bc1\u7684CAS\u670d\u52a1\u7968\u6839
-NamedCasProxyDecider.untrusted=\u4ee3\u7406({0})\u4e0d\u53d7\u4fe1\u4efb
-RejectProxyTickets.reject=Proxy\u7968\u6839\u88ab\u62d2\u7edd
-AbstractSecurityInterceptor.authenticationNotFound=\u672a\u5728SecurityContext\u4e2d\u67e5\u627e\u5230\u8ba4\u8bc1\u5bf9\u8c61
-AbstractUserDetailsAuthenticationProvider.onlySupports=\u4ec5\u4ec5\u652f\u6301UsernamePasswordAuthenticationToken
-AbstractUserDetailsAuthenticationProvider.locked=\u7528\u6237\u5e10\u53f7\u5df2\u88ab\u9501\u5b9a
-AbstractUserDetailsAuthenticationProvider.disabled=\u7528\u6237\u5df2\u5931\u6548
-AbstractUserDetailsAuthenticationProvider.expired=\u7528\u6237\u5e10\u53f7\u5df2\u8fc7\u671f
-AbstractUserDetailsAuthenticationProvider.credentialsExpired=\u7528\u6237\u51ed\u8bc1\u5df2\u8fc7\u671f
-AbstractUserDetailsAuthenticationProvider.badCredentials=\u574f\u7684\u51ed\u8bc1
-X509AuthenticationProvider.certificateNull=\u672a\u63d0\u4f9b\u8bc1\u4e66
-DaoX509AuthoritiesPopulator.noMatching=\u672a\u5728subjectDN: {0}\u4e2d\u627e\u5230\u5339\u914d\u7684\u6a21\u5f0f
-RememberMeAuthenticationProvider.incorrectKey=\u5c55\u793aRememberMeAuthenticationToken\u4e0d\u542b\u6709\u9884\u671f\u7684key
-RunAsImplAuthenticationProvider.incorrectKey=\u5c55\u793a\u7684RunAsUserToken\u4e0d\u542b\u6709\u9884\u671f\u7684key
-DigestProcessingFilter.missingMandatory=\u9057\u6f0f\u4e86\u5fc5\u987b\u7ed9\u5b9a\u7684\u6458\u8981\u53d6\u503c; \u63a5\u6536\u5230\u7684\u5934\u4fe1\u606f\u4e3a{0}
-DigestProcessingFilter.missingAuth=\u9057\u6f0f\u4e86\u9488\u5bf9'auth' QOP\u7684\u3001\u5fc5\u987b\u7ed9\u5b9a\u7684\u6458\u8981\u53d6\u503c; \u63a5\u6536\u5230\u7684\u5934\u4fe1\u606f\u4e3a{0}
-DigestProcessingFilter.incorrectRealm=\u54cd\u5e94\u7ed3\u679c\u4e2d\u7684Realm\u540d\u5b57({0})\u540c\u7cfb\u7edf\u6307\u5b9a\u7684Realm\u540d\u5b57({1})\u4e0d\u543b\u5408
-DigestProcessingFilter.nonceExpired=Nonce\u5df2\u7ecf\u8fc7\u671f/\u8d85\u65f6
-DigestProcessingFilter.nonceEncoding=Nonce\u672a\u7ecf\u8fc7Base64\u7f16\u7801; \u76f8\u5e94\u7684nonce\u53d6\u503c\u4e3a {0}
-DigestProcessingFilter.nonceNotTwoTokens=Nonce\u5e94\u8be5\u7531\u4e24\u90e8\u5206\u53d6\u503c\u6784\u6210\uff0c\u4f46\u7ed3\u679c\u5374\u662f{0}
-DigestProcessingFilter.nonceNotNumeric=Nonce\u4ee4\u724c\u7684\u7b2c1\u90e8\u5206\u5e94\u8be5\u662f\u6570\u5b57\uff0c\u4f46\u7ed3\u679c\u5374\u662f{0}
-DigestProcessingFilter.nonceCompromised=Nonce\u4ee4\u724c\u5df2\u7ecf\u5b58\u5728\u95ee\u9898\u4e86\uff0c{0}
-DigestProcessingFilter.usernameNotFound=\u7528\u6237\u540d{0}\u672a\u627e\u5230
-DigestProcessingFilter.incorrectResponse=\u9519\u8bef\u7684\u54cd\u5e94\u7ed3\u679c
-JdbcDaoImpl.notFound=\u672a\u627e\u5230\u7528\u6237{0}
-JdbcDaoImpl.noAuthority=\u6ca1\u6709\u4e3a\u7528\u6237{0}\u6307\u5b9a\u89d2\u8272
-SwitchUserProcessingFilter.noCurrentUser=\u4e0d\u5b58\u5728\u5f53\u524d\u7528\u6237
-SwitchUserProcessingFilter.noOriginalAuthentication=\u4e0d\u80fd\u591f\u67e5\u627e\u5230\u539f\u5148\u7684\u5df2\u8ba4\u8bc1\u5bf9\u8c61
-SwitchUserProcessingFilter.usernameNotFound=\u7528\u6237\u540d{0}\u672a\u627e\u5230
-SwitchUserProcessingFilter.locked=\u7528\u6237\u5e10\u53f7\u5df2\u88ab\u9501\u5b9a
-SwitchUserProcessingFilter.disabled=\u7528\u6237\u5df2\u5931\u6548
-SwitchUserProcessingFilter.expired=\u7528\u6237\u5e10\u53f7\u5df2\u8fc7\u671f
-SwitchUserProcessingFilter.credentialsExpired=\u7528\u6237\u51ed\u8bc1\u5df2\u8fc7\u671f
-AbstractAccessDecisionManager.accessDenied=\u4e0d\u5141\u8bb8\u8bbf\u95ee
-LdapAuthenticationProvider.emptyUsername=\u7528\u6237\u540d\u4e0d\u5141\u8bb8\u4e3a\u7a7a
-LdapAuthenticationProvider.emptyPassword=\u574f\u7684\u51ed\u8bc1
-DefaultIntitalDirContextFactory.communicationFailure=\u4e0d\u80fd\u591f\u8fde\u63a5\u5230LDAP\u670d\u52a1\u5668
-DefaultIntitalDirContextFactory.badCredentials=\u574f\u7684\u51ed\u8bc1
-DefaultIntitalDirContextFactory.unexpectedException=\u7531\u4e8e\u672a\u9884\u671f\u5f02\u5e38\u800c\u4e0d\u80fd\u591f\u83b7\u5f97InitialDirContext
-PasswordComparisonAuthenticator.badCredentials=\u574f\u7684\u51ed\u8bc1
-BindAuthenticator.badCredentials=\u574f\u7684\u51ed\u8bc1
-BindAuthenticator.failedToLoadAttributes=\u574f\u7684\u51ed\u8bc1
-UserDetailsService.locked=\u7528\u6237\u5e10\u53f7\u5df2\u88ab\u9501\u5b9a
-UserDetailsService.disabled=\u7528\u6237\u5df2\u5931\u6548
-UserDetailsService.expired=\u7528\u6237\u5e10\u53f7\u5df2\u8fc7\u671f
-UserDetailsService.credentialsExpired=\u7528\u6237\u51ed\u8bc1\u5df2\u8fc7\u671f
-
+AuthByAdapterProvider.incorrectKey=\u5c55\u793a\u7684AuthByAdapter\u5b9e\u73b0\u4e0d\u542b\u6709\u9884\u671f\u7684key
+BasicAclEntryAfterInvocationProvider.noPermission=\u7ed9\u5b9a\u7684Authentication\u5bf9\u8c61({0})\u6839\u672c\u65e0\u6743\u64cd\u63a7\u9886\u57df\u5bf9\u8c61({1})
+BasicAclEntryAfterInvocationProvider.insufficientPermission=Authentication\u5bf9\u8c61({0})\u786e\u5b9e\u542b\u6709ACL\u6743\u9650\uff0c\u4f46\u5e76\u4e0d\u662f\u76ee\u6807\u9886\u57df\u5bf9\u8c61\u6240\u8981\u6c42\u7684({1})
+ConcurrentSessionControllerImpl.exceededAllowed=\u5df2\u7ecf\u8d85\u8fc7\u4e86\u5f53\u524d\u4e3b\u4f53({0})\u88ab\u5141\u8bb8\u7684\u6700\u5927\u4f1a\u8bdd\u6570\u91cf
+ProviderManager.providerNotFound=\u672a\u67e5\u627e\u5230\u9488\u5bf9{0}\u7684AuthenticationProvider
+AnonymousAuthenticationProvider.incorrectKey=\u5c55\u793a\u7684AnonymousAuthenticationToken\u4e0d\u542b\u6709\u9884\u671f\u7684key
+CasAuthenticationProvider.incorrectKey=\u5c55\u793a\u7684CasAuthenticationToken\u4e0d\u542b\u6709\u9884\u671f\u7684key
+CasAuthenticationProvider.noServiceTicket=\u672a\u80fd\u591f\u6b63\u786e\u63d0\u4f9b\u5f85\u9a8c\u8bc1\u7684CAS\u670d\u52a1\u7968\u6839
+NamedCasProxyDecider.untrusted=\u4ee3\u7406({0})\u4e0d\u53d7\u4fe1\u4efb
+RejectProxyTickets.reject=Proxy\u7968\u6839\u88ab\u62d2\u7edd
+AbstractSecurityInterceptor.authenticationNotFound=\u672a\u5728SecurityContext\u4e2d\u67e5\u627e\u5230\u8ba4\u8bc1\u5bf9\u8c61
+AbstractUserDetailsAuthenticationProvider.onlySupports=\u4ec5\u4ec5\u652f\u6301UsernamePasswordAuthenticationToken
+AbstractUserDetailsAuthenticationProvider.locked=\u7528\u6237\u5e10\u53f7\u5df2\u88ab\u9501\u5b9a
+AbstractUserDetailsAuthenticationProvider.disabled=\u7528\u6237\u5df2\u5931\u6548
+AbstractUserDetailsAuthenticationProvider.expired=\u7528\u6237\u5e10\u53f7\u5df2\u8fc7\u671f
+AbstractUserDetailsAuthenticationProvider.credentialsExpired=\u7528\u6237\u51ed\u8bc1\u5df2\u8fc7\u671f
+AbstractUserDetailsAuthenticationProvider.badCredentials=\u574f\u7684\u51ed\u8bc1
+X509AuthenticationProvider.certificateNull=\u672a\u63d0\u4f9b\u8bc1\u4e66
+DaoX509AuthoritiesPopulator.noMatching=\u672a\u5728subjectDN: {0}\u4e2d\u627e\u5230\u5339\u914d\u7684\u6a21\u5f0f
+RememberMeAuthenticationProvider.incorrectKey=\u5c55\u793aRememberMeAuthenticationToken\u4e0d\u542b\u6709\u9884\u671f\u7684key
+RunAsImplAuthenticationProvider.incorrectKey=\u5c55\u793a\u7684RunAsUserToken\u4e0d\u542b\u6709\u9884\u671f\u7684key
+DigestProcessingFilter.missingMandatory=\u9057\u6f0f\u4e86\u5fc5\u987b\u7ed9\u5b9a\u7684\u6458\u8981\u53d6\u503c; \u63a5\u6536\u5230\u7684\u5934\u4fe1\u606f\u4e3a{0}
+DigestProcessingFilter.missingAuth=\u9057\u6f0f\u4e86\u9488\u5bf9'auth' QOP\u7684\u3001\u5fc5\u987b\u7ed9\u5b9a\u7684\u6458\u8981\u53d6\u503c; \u63a5\u6536\u5230\u7684\u5934\u4fe1\u606f\u4e3a{0}
+DigestProcessingFilter.incorrectRealm=\u54cd\u5e94\u7ed3\u679c\u4e2d\u7684Realm\u540d\u5b57({0})\u540c\u7cfb\u7edf\u6307\u5b9a\u7684Realm\u540d\u5b57({1})\u4e0d\u543b\u5408
+DigestProcessingFilter.nonceExpired=Nonce\u5df2\u7ecf\u8fc7\u671f/\u8d85\u65f6
+DigestProcessingFilter.nonceEncoding=Nonce\u672a\u7ecf\u8fc7Base64\u7f16\u7801; \u76f8\u5e94\u7684nonce\u53d6\u503c\u4e3a {0}
+DigestProcessingFilter.nonceNotTwoTokens=Nonce\u5e94\u8be5\u7531\u4e24\u90e8\u5206\u53d6\u503c\u6784\u6210\uff0c\u4f46\u7ed3\u679c\u5374\u662f{0}
+DigestProcessingFilter.nonceNotNumeric=Nonce\u4ee4\u724c\u7684\u7b2c1\u90e8\u5206\u5e94\u8be5\u662f\u6570\u5b57\uff0c\u4f46\u7ed3\u679c\u5374\u662f{0}
+DigestProcessingFilter.nonceCompromised=Nonce\u4ee4\u724c\u5df2\u7ecf\u5b58\u5728\u95ee\u9898\u4e86\uff0c{0}
+DigestProcessingFilter.usernameNotFound=\u7528\u6237\u540d{0}\u672a\u627e\u5230
+DigestProcessingFilter.incorrectResponse=\u9519\u8bef\u7684\u54cd\u5e94\u7ed3\u679c
+JdbcDaoImpl.notFound=\u672a\u627e\u5230\u7528\u6237{0}
+JdbcDaoImpl.noAuthority=\u6ca1\u6709\u4e3a\u7528\u6237{0}\u6307\u5b9a\u89d2\u8272
+SwitchUserProcessingFilter.noCurrentUser=\u4e0d\u5b58\u5728\u5f53\u524d\u7528\u6237
+SwitchUserProcessingFilter.noOriginalAuthentication=\u4e0d\u80fd\u591f\u67e5\u627e\u5230\u539f\u5148\u7684\u5df2\u8ba4\u8bc1\u5bf9\u8c61
+SwitchUserProcessingFilter.usernameNotFound=\u7528\u6237\u540d{0}\u672a\u627e\u5230
+SwitchUserProcessingFilter.locked=\u7528\u6237\u5e10\u53f7\u5df2\u88ab\u9501\u5b9a
+SwitchUserProcessingFilter.disabled=\u7528\u6237\u5df2\u5931\u6548
+SwitchUserProcessingFilter.expired=\u7528\u6237\u5e10\u53f7\u5df2\u8fc7\u671f
+SwitchUserProcessingFilter.credentialsExpired=\u7528\u6237\u51ed\u8bc1\u5df2\u8fc7\u671f
+AbstractAccessDecisionManager.accessDenied=\u4e0d\u5141\u8bb8\u8bbf\u95ee
+LdapAuthenticationProvider.emptyUsername=\u7528\u6237\u540d\u4e0d\u5141\u8bb8\u4e3a\u7a7a
+LdapAuthenticationProvider.emptyPassword=\u574f\u7684\u51ed\u8bc1
+DefaultIntitalDirContextFactory.communicationFailure=\u4e0d\u80fd\u591f\u8fde\u63a5\u5230LDAP\u670d\u52a1\u5668
+DefaultIntitalDirContextFactory.badCredentials=\u574f\u7684\u51ed\u8bc1
+DefaultIntitalDirContextFactory.unexpectedException=\u7531\u4e8e\u672a\u9884\u671f\u5f02\u5e38\u800c\u4e0d\u80fd\u591f\u83b7\u5f97InitialDirContext
+PasswordComparisonAuthenticator.badCredentials=\u574f\u7684\u51ed\u8bc1
+BindAuthenticator.badCredentials=\u574f\u7684\u51ed\u8bc1
+BindAuthenticator.failedToLoadAttributes=\u574f\u7684\u51ed\u8bc1
+UserDetailsService.locked=\u7528\u6237\u5e10\u53f7\u5df2\u88ab\u9501\u5b9a
+UserDetailsService.disabled=\u7528\u6237\u5df2\u5931\u6548
+UserDetailsService.expired=\u7528\u6237\u5e10\u53f7\u5df2\u8fc7\u671f
+UserDetailsService.credentialsExpired=\u7528\u6237\u51ed\u8bc1\u5df2\u8fc7\u671f
+
diff --git a/core/src/test/java/org/springframework/security/ITargetObject.java b/core/src/test/java/org/springframework/security/ITargetObject.java
index 0c073ec078..4e0cc06d66 100644
--- a/core/src/test/java/org/springframework/security/ITargetObject.java
+++ b/core/src/test/java/org/springframework/security/ITargetObject.java
@@ -19,7 +19,6 @@ package org.springframework.security;
* Represents the interface of a secured object.
*
* @author Ben Alex
- * @version $Id$
*/
public interface ITargetObject {
//~ Methods ========================================================================================================
diff --git a/core/src/test/java/org/springframework/security/MockAuthenticationManager.java b/core/src/test/java/org/springframework/security/MockAuthenticationManager.java
index 23f408a62c..0d5dcf3600 100644
--- a/core/src/test/java/org/springframework/security/MockAuthenticationManager.java
+++ b/core/src/test/java/org/springframework/security/MockAuthenticationManager.java
@@ -25,7 +25,6 @@ import org.springframework.security.core.AuthenticationException;
*
* @author Ben Alex
* @author Wesley Hall
- * @version $Id$
*/
public class MockAuthenticationManager extends AbstractAuthenticationManager {
//~ Instance fields ================================================================================================
diff --git a/core/src/test/java/org/springframework/security/MockJoinPoint.java b/core/src/test/java/org/springframework/security/MockJoinPoint.java
index 041175cd7e..964a409a97 100644
--- a/core/src/test/java/org/springframework/security/MockJoinPoint.java
+++ b/core/src/test/java/org/springframework/security/MockJoinPoint.java
@@ -27,7 +27,6 @@ import java.lang.reflect.Method;
* A mock AspectJ JoinPoint.
*
* @author Ben Alex
- * @version $Id$
*/
@SuppressWarnings("unchecked")
public class MockJoinPoint implements JoinPoint {
diff --git a/core/src/test/java/org/springframework/security/OtherTargetObject.java b/core/src/test/java/org/springframework/security/OtherTargetObject.java
index 5d57ca56f7..ce9366f60f 100644
--- a/core/src/test/java/org/springframework/security/OtherTargetObject.java
+++ b/core/src/test/java/org/springframework/security/OtherTargetObject.java
@@ -24,7 +24,6 @@ package org.springframework.security;
* its parent class or classes).
*
* @author Ben Alex
- * @version $Id$
*/
public class OtherTargetObject extends TargetObject implements ITargetObject {
//~ Methods ========================================================================================================
diff --git a/core/src/test/java/org/springframework/security/PopulatedDatabase.java b/core/src/test/java/org/springframework/security/PopulatedDatabase.java
index 19feb52c84..000c7e9b0f 100644
--- a/core/src/test/java/org/springframework/security/PopulatedDatabase.java
+++ b/core/src/test/java/org/springframework/security/PopulatedDatabase.java
@@ -24,7 +24,6 @@ import javax.sql.DataSource;
* Singleton which provides a populated database connection for all JDBC-related unit tests.
*
* @author Ben Alex
- * @version $Id$
*/
public class PopulatedDatabase {
//~ Static fields/initializers =====================================================================================
diff --git a/core/src/test/java/org/springframework/security/TargetObject.java b/core/src/test/java/org/springframework/security/TargetObject.java
index 209c21cbde..9a7f045c0f 100644
--- a/core/src/test/java/org/springframework/security/TargetObject.java
+++ b/core/src/test/java/org/springframework/security/TargetObject.java
@@ -23,7 +23,6 @@ import org.springframework.security.core.context.SecurityContextHolder;
* Represents a secured object.
*
* @author Ben Alex
- * @version $Id$
*/
public class TargetObject implements ITargetObject {
//~ Methods ========================================================================================================
diff --git a/core/src/test/java/org/springframework/security/TestDataSource.java b/core/src/test/java/org/springframework/security/TestDataSource.java
index 183ff882d8..5c322d61f7 100644
--- a/core/src/test/java/org/springframework/security/TestDataSource.java
+++ b/core/src/test/java/org/springframework/security/TestDataSource.java
@@ -9,14 +9,13 @@ import org.springframework.beans.factory.DisposableBean;
* shuts down the database when the application context it is defined in is closed.
*
* @author Luke Taylor
- * @version $Id$
*/
public class TestDataSource extends DriverManagerDataSource implements DisposableBean {
String name;
public TestDataSource(String databaseName) {
name = databaseName;
- System.out.println("Creating database: " + name);
+ System.out.println("Creating database: " + name);
setDriverClassName("org.hsqldb.jdbcDriver");
setUrl("jdbc:hsqldb:mem:" + databaseName);
setUsername("sa");
diff --git a/core/src/test/java/org/springframework/security/access/AuthenticationCredentialsNotFoundEventTests.java b/core/src/test/java/org/springframework/security/access/AuthenticationCredentialsNotFoundEventTests.java
index 4ccc61091e..8c20ce0ecf 100644
--- a/core/src/test/java/org/springframework/security/access/AuthenticationCredentialsNotFoundEventTests.java
+++ b/core/src/test/java/org/springframework/security/access/AuthenticationCredentialsNotFoundEventTests.java
@@ -26,7 +26,6 @@ import org.springframework.security.util.SimpleMethodInvocation;
* Tests {@link AuthenticationCredentialsNotFoundEvent}.
*
* @author Ben Alex
- * @version $Id$
*/
public class AuthenticationCredentialsNotFoundEventTests {
diff --git a/core/src/test/java/org/springframework/security/access/AuthorizationFailureEventTests.java b/core/src/test/java/org/springframework/security/access/AuthorizationFailureEventTests.java
index 73427ea268..7c5dc9c99b 100644
--- a/core/src/test/java/org/springframework/security/access/AuthorizationFailureEventTests.java
+++ b/core/src/test/java/org/springframework/security/access/AuthorizationFailureEventTests.java
@@ -27,7 +27,6 @@ import org.springframework.security.util.SimpleMethodInvocation;
* Tests {@link AuthorizationFailureEvent}.
*
* @author Ben Alex
- * @version $Id$
*/
public class AuthorizationFailureEventTests {
diff --git a/core/src/test/java/org/springframework/security/access/AuthorizedEventTests.java b/core/src/test/java/org/springframework/security/access/AuthorizedEventTests.java
index a33ec8c14d..32152dadc5 100644
--- a/core/src/test/java/org/springframework/security/access/AuthorizedEventTests.java
+++ b/core/src/test/java/org/springframework/security/access/AuthorizedEventTests.java
@@ -26,7 +26,6 @@ import org.springframework.security.util.SimpleMethodInvocation;
* Tests {@link AuthorizedEvent}.
*
* @author Ben Alex
- * @version $Id$
*/
public class AuthorizedEventTests {
diff --git a/core/src/test/java/org/springframework/security/access/SecurityConfigTests.java b/core/src/test/java/org/springframework/security/access/SecurityConfigTests.java
index fbe438c816..54218f725e 100644
--- a/core/src/test/java/org/springframework/security/access/SecurityConfigTests.java
+++ b/core/src/test/java/org/springframework/security/access/SecurityConfigTests.java
@@ -26,7 +26,6 @@ import org.springframework.security.access.SecurityConfig;
* Tests {@link SecurityConfig}.
*
* @author Ben Alex
- * @version $Id$
*/
public class SecurityConfigTests {
@@ -37,7 +36,7 @@ public class SecurityConfigTests {
SecurityConfig config = new SecurityConfig("TEST");
Assert.assertEquals("TEST".hashCode(), config.hashCode());
}
-
+
@Test(expected=IllegalArgumentException.class)
public void testCannotConstructWithNullAttribute() {
new SecurityConfig(null); // SEC-727
@@ -84,7 +83,7 @@ public class SecurityConfigTests {
SecurityConfig config = new SecurityConfig("TEST");
Assert.assertEquals("TEST", config.toString());
}
-
+
//~ Inner Classes ==================================================================================================
private class MockConfigAttribute implements ConfigAttribute {
diff --git a/core/src/test/java/org/springframework/security/access/annotation/BusinessService.java b/core/src/test/java/org/springframework/security/access/annotation/BusinessService.java
index 52cc679ff1..29c000d3bb 100644
--- a/core/src/test/java/org/springframework/security/access/annotation/BusinessService.java
+++ b/core/src/test/java/org/springframework/security/access/annotation/BusinessService.java
@@ -24,7 +24,6 @@ import org.springframework.security.access.annotation.Secured;
import org.springframework.security.access.prepost.PreAuthorize;
/**
- * @version $Id$
*/
@Secured({"ROLE_USER"})
@PermitAll
diff --git a/core/src/test/java/org/springframework/security/access/annotation/Jsr250BusinessServiceImpl.java b/core/src/test/java/org/springframework/security/access/annotation/Jsr250BusinessServiceImpl.java
index 7077359161..01b59c26c6 100644
--- a/core/src/test/java/org/springframework/security/access/annotation/Jsr250BusinessServiceImpl.java
+++ b/core/src/test/java/org/springframework/security/access/annotation/Jsr250BusinessServiceImpl.java
@@ -10,7 +10,6 @@ import javax.annotation.security.PermitAll;
/**
*
* @author Luke Taylor
- * @version $Id$
*/
@PermitAll
public class Jsr250BusinessServiceImpl implements BusinessService {
diff --git a/core/src/test/java/org/springframework/security/access/annotation/Jsr250MethodDefinitionSourceTests.java b/core/src/test/java/org/springframework/security/access/annotation/Jsr250MethodDefinitionSourceTests.java
index fcd23d55d0..0621399dbb 100644
--- a/core/src/test/java/org/springframework/security/access/annotation/Jsr250MethodDefinitionSourceTests.java
+++ b/core/src/test/java/org/springframework/security/access/annotation/Jsr250MethodDefinitionSourceTests.java
@@ -15,7 +15,6 @@ import org.springframework.security.access.ConfigAttribute;
/**
* @author Luke Taylor
* @author Ben Alex
- * @version $Id$
*/
public class Jsr250MethodDefinitionSourceTests {
Jsr250MethodSecurityMetadataSource mds = new Jsr250MethodSecurityMetadataSource();
diff --git a/core/src/test/java/org/springframework/security/access/annotation/MethodDefinitionSourceEditorTigerTests.java b/core/src/test/java/org/springframework/security/access/annotation/MethodDefinitionSourceEditorTigerTests.java
index d47d456741..d278176586 100644
--- a/core/src/test/java/org/springframework/security/access/annotation/MethodDefinitionSourceEditorTigerTests.java
+++ b/core/src/test/java/org/springframework/security/access/annotation/MethodDefinitionSourceEditorTigerTests.java
@@ -36,7 +36,6 @@ import org.springframework.security.access.method.MethodSecurityMetadataSourceEd
* Extra tests to demonstrate generics behaviour with MapBasedMethodDefinitionSource.
*
* @author Ben Alex
- * @version $Id$
*/
@SuppressWarnings("deprecation")
public class MethodDefinitionSourceEditorTigerTests {
diff --git a/core/src/test/java/org/springframework/security/access/annotation/SecuredAnnotationSecurityMetadataDefinitionSourceTests.java b/core/src/test/java/org/springframework/security/access/annotation/SecuredAnnotationSecurityMetadataDefinitionSourceTests.java
index 1048dfbb49..439de1aaa8 100644
--- a/core/src/test/java/org/springframework/security/access/annotation/SecuredAnnotationSecurityMetadataDefinitionSourceTests.java
+++ b/core/src/test/java/org/springframework/security/access/annotation/SecuredAnnotationSecurityMetadataDefinitionSourceTests.java
@@ -32,7 +32,6 @@ import org.springframework.util.StringUtils;
* @author Mark St.Godard
* @author Joe Scalise
* @author Ben Alex
- * @version $Id$
*/
public class SecuredAnnotationSecurityMetadataDefinitionSourceTests extends TestCase {
//~ Instance fields ================================================================================================
diff --git a/core/src/test/java/org/springframework/security/access/annotation/test/Entity.java b/core/src/test/java/org/springframework/security/access/annotation/test/Entity.java
index c93ea8d3b6..d547102b42 100644
--- a/core/src/test/java/org/springframework/security/access/annotation/test/Entity.java
+++ b/core/src/test/java/org/springframework/security/access/annotation/test/Entity.java
@@ -22,7 +22,6 @@ import org.springframework.util.Assert;
* An entity used in our generics testing.
*
* @author Ben Alex
- * @version $Id$
*/
public class Entity {
//~ Instance fields ================================================================================================
diff --git a/core/src/test/java/org/springframework/security/access/annotation/test/Organisation.java b/core/src/test/java/org/springframework/security/access/annotation/test/Organisation.java
index b5cbde1934..d3d6b0c46d 100644
--- a/core/src/test/java/org/springframework/security/access/annotation/test/Organisation.java
+++ b/core/src/test/java/org/springframework/security/access/annotation/test/Organisation.java
@@ -19,7 +19,6 @@ package org.springframework.security.access.annotation.test;
* An extended version of Entity.
*
* @author Ben Alex
- * @version $Id$
*/
public class Organisation extends Entity {
//~ Instance fields ================================================================================================
diff --git a/core/src/test/java/org/springframework/security/access/annotation/test/OrganisationService.java b/core/src/test/java/org/springframework/security/access/annotation/test/OrganisationService.java
index a546d40022..86ec72b6be 100644
--- a/core/src/test/java/org/springframework/security/access/annotation/test/OrganisationService.java
+++ b/core/src/test/java/org/springframework/security/access/annotation/test/OrganisationService.java
@@ -18,8 +18,6 @@ package org.springframework.security.access.annotation.test;
/**
* DOCUMENT ME!
*
- * @author $author$
- * @version $Revision: 1496 $
*/
public interface OrganisationService extends ServiceEntity.
*
* @author Ben Alex
- * @version $Id$
*/
public class Person extends Entity {
//~ Instance fields ================================================================================================
diff --git a/core/src/test/java/org/springframework/security/access/annotation/test/PersonServiceImpl.java b/core/src/test/java/org/springframework/security/access/annotation/test/PersonServiceImpl.java
index 754f27df7d..65d3649d42 100644
--- a/core/src/test/java/org/springframework/security/access/annotation/test/PersonServiceImpl.java
+++ b/core/src/test/java/org/springframework/security/access/annotation/test/PersonServiceImpl.java
@@ -18,8 +18,6 @@ package org.springframework.security.access.annotation.test;
/**
* DOCUMENT ME!
*
- * @author $author$
- * @version $Revision: 1496 $
*/
public class PersonServiceImpl extends ServiceImplMethodSecurityInterceptorTests class.
*
* @author Ben Alex
- * @version $Id$
*/
public class AbstractSecurityInterceptorTests {
private Mockery jmock = new JUnit4Mockery();
diff --git a/core/src/test/java/org/springframework/security/access/intercept/AfterInvocationProviderManagerTests.java b/core/src/test/java/org/springframework/security/access/intercept/AfterInvocationProviderManagerTests.java
index 701ff4d0fd..cf1f744b0a 100644
--- a/core/src/test/java/org/springframework/security/access/intercept/AfterInvocationProviderManagerTests.java
+++ b/core/src/test/java/org/springframework/security/access/intercept/AfterInvocationProviderManagerTests.java
@@ -35,7 +35,6 @@ import org.springframework.security.util.SimpleMethodInvocation;
* Tests {@link AfterInvocationProviderManager}.
*
* @author Ben Alex
- * @version $Id$
*/
@SuppressWarnings("unchecked")
public class AfterInvocationProviderManagerTests extends TestCase {
diff --git a/core/src/test/java/org/springframework/security/access/intercept/InterceptorStatusTokenTests.java b/core/src/test/java/org/springframework/security/access/intercept/InterceptorStatusTokenTests.java
index 072a995a87..6e696c0b20 100644
--- a/core/src/test/java/org/springframework/security/access/intercept/InterceptorStatusTokenTests.java
+++ b/core/src/test/java/org/springframework/security/access/intercept/InterceptorStatusTokenTests.java
@@ -33,7 +33,6 @@ import org.springframework.security.util.SimpleMethodInvocation;
* Tests {@link InterceptorStatusToken}.
*
* @author Ben Alex
- * @version $Id$
*/
public class InterceptorStatusTokenTests {
diff --git a/core/src/test/java/org/springframework/security/access/intercept/NullRunAsManagerTests.java b/core/src/test/java/org/springframework/security/access/intercept/NullRunAsManagerTests.java
index fe331324ea..a32e0d32a9 100644
--- a/core/src/test/java/org/springframework/security/access/intercept/NullRunAsManagerTests.java
+++ b/core/src/test/java/org/springframework/security/access/intercept/NullRunAsManagerTests.java
@@ -25,7 +25,6 @@ import org.springframework.security.access.intercept.NullRunAsManager;
* Tests {@link NullRunAsManager}.
*
* @author Ben Alex
- * @version $Id$
*/
public class NullRunAsManagerTests extends TestCase {
//~ Methods ========================================================================================================
diff --git a/core/src/test/java/org/springframework/security/access/intercept/RunAsManagerImplTests.java b/core/src/test/java/org/springframework/security/access/intercept/RunAsManagerImplTests.java
index 513bf7db53..e6e2b0979b 100644
--- a/core/src/test/java/org/springframework/security/access/intercept/RunAsManagerImplTests.java
+++ b/core/src/test/java/org/springframework/security/access/intercept/RunAsManagerImplTests.java
@@ -29,7 +29,6 @@ import org.springframework.security.core.authority.AuthorityUtils;
* Tests {@link RunAsManagerImpl}.
*
* @author Ben Alex
- * @version $Id$
*/
public class RunAsManagerImplTests extends TestCase {
public void testAlwaysSupportsClass() {
diff --git a/core/src/test/java/org/springframework/security/access/intercept/RunAsUserTokenTests.java b/core/src/test/java/org/springframework/security/access/intercept/RunAsUserTokenTests.java
index 315c51b797..9a9841449a 100644
--- a/core/src/test/java/org/springframework/security/access/intercept/RunAsUserTokenTests.java
+++ b/core/src/test/java/org/springframework/security/access/intercept/RunAsUserTokenTests.java
@@ -28,7 +28,6 @@ import org.springframework.security.core.authority.GrantedAuthorityImpl;
* Tests {@link RunAsUserToken}.
*
* @author Ben Alex
- * @version $Id$
*/
public class RunAsUserTokenTests extends TestCase {
//~ Constructors ===================================================================================================
diff --git a/core/src/test/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityInterceptorTests.java b/core/src/test/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityInterceptorTests.java
index 33747917a1..2624ce9af2 100644
--- a/core/src/test/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityInterceptorTests.java
+++ b/core/src/test/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityInterceptorTests.java
@@ -50,7 +50,6 @@ import org.springframework.security.core.context.SecurityContextHolder;
* Tests {@link MethodSecurityInterceptor}.
*
* @author Ben Alex
- * @version $Id$
*/
@SuppressWarnings("unchecked")
public class MethodSecurityInterceptorTests {
diff --git a/core/src/test/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityMetadataSourceAdvisorTests.java b/core/src/test/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityMetadataSourceAdvisorTests.java
index 2633c850c7..8d2d54f3d3 100644
--- a/core/src/test/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityMetadataSourceAdvisorTests.java
+++ b/core/src/test/java/org/springframework/security/access/intercept/aopalliance/MethodSecurityMetadataSourceAdvisorTests.java
@@ -29,7 +29,6 @@ import org.springframework.security.access.method.MethodSecurityMetadataSourceEd
* Tests {@link MethodSecurityMetadataSourceAdvisor}.
*
* @author Ben Alex
- * @version $Id$
*/
@SuppressWarnings("deprecation")
public class MethodSecurityMetadataSourceAdvisorTests extends TestCase {
diff --git a/core/src/test/java/org/springframework/security/access/intercept/aspectj/AspectJSecurityInterceptorTests.java b/core/src/test/java/org/springframework/security/access/intercept/aspectj/AspectJSecurityInterceptorTests.java
index d8a6cc9706..2f84f5863a 100644
--- a/core/src/test/java/org/springframework/security/access/intercept/aspectj/AspectJSecurityInterceptorTests.java
+++ b/core/src/test/java/org/springframework/security/access/intercept/aspectj/AspectJSecurityInterceptorTests.java
@@ -42,7 +42,6 @@ import org.springframework.security.core.context.SecurityContextHolder;
* Tests {@link AspectJSecurityInterceptor}.
*
* @author Ben Alex
- * @version $Id$
*/
public class AspectJSecurityInterceptorTests {
private Mockery jmock = new JUnit4Mockery();
diff --git a/core/src/test/java/org/springframework/security/access/intercept/method/MethodInvocationPrivilegeEvaluatorTests.java b/core/src/test/java/org/springframework/security/access/intercept/method/MethodInvocationPrivilegeEvaluatorTests.java
index 4e250177e4..489d4f0ecd 100644
--- a/core/src/test/java/org/springframework/security/access/intercept/method/MethodInvocationPrivilegeEvaluatorTests.java
+++ b/core/src/test/java/org/springframework/security/access/intercept/method/MethodInvocationPrivilegeEvaluatorTests.java
@@ -45,7 +45,6 @@ import org.springframework.security.util.MethodInvocationUtils;
* Tests {@link org.springframework.security.access.intercept.MethodInvocationPrivilegeEvaluator}.
*
* @author Ben Alex
- * @version $Id$
*/
public class MethodInvocationPrivilegeEvaluatorTests {
private Mockery jmock = new JUnit4Mockery();
diff --git a/core/src/test/java/org/springframework/security/access/intercept/method/MethodSecurityMetadataSourceEditorTests.java b/core/src/test/java/org/springframework/security/access/intercept/method/MethodSecurityMetadataSourceEditorTests.java
index 17ff50a85d..bbcbed3eeb 100644
--- a/core/src/test/java/org/springframework/security/access/intercept/method/MethodSecurityMetadataSourceEditorTests.java
+++ b/core/src/test/java/org/springframework/security/access/intercept/method/MethodSecurityMetadataSourceEditorTests.java
@@ -37,7 +37,6 @@ import org.springframework.security.access.method.MethodSecurityMetadataSourceEd
* Tests {@link MethodSecurityMetadataSourceEditor} and its associated {@link MapBasedMethodSecurityMetadataSource}.
*
* @author Ben Alex
- * @version $Id$
*/
@SuppressWarnings("deprecation")
public class MethodSecurityMetadataSourceEditorTests extends TestCase {
diff --git a/core/src/test/java/org/springframework/security/access/intercept/method/MockMethodSecurityMetadataSource.java b/core/src/test/java/org/springframework/security/access/intercept/method/MockMethodSecurityMetadataSource.java
index c1d5cb0ca4..c33eee59e0 100644
--- a/core/src/test/java/org/springframework/security/access/intercept/method/MockMethodSecurityMetadataSource.java
+++ b/core/src/test/java/org/springframework/security/access/intercept/method/MockMethodSecurityMetadataSource.java
@@ -29,7 +29,6 @@ import org.springframework.security.access.method.MethodSecurityMetadataSource;
/**
* @author Ben Alex
- * @version $Id$
*/
public class MockMethodSecurityMetadataSource implements MethodSecurityMetadataSource {
//~ Instance fields ================================================================================================
diff --git a/core/src/test/java/org/springframework/security/access/vote/AbstractAccessDecisionManagerTests.java b/core/src/test/java/org/springframework/security/access/vote/AbstractAccessDecisionManagerTests.java
index 60f27f6e67..63f1f21660 100644
--- a/core/src/test/java/org/springframework/security/access/vote/AbstractAccessDecisionManagerTests.java
+++ b/core/src/test/java/org/springframework/security/access/vote/AbstractAccessDecisionManagerTests.java
@@ -34,7 +34,6 @@ import java.util.Vector;
* Tests {@link AbstractAccessDecisionManager}.
*
* @author Ben Alex
- * @version $Id$
*/
@SuppressWarnings("unchecked")
public class AbstractAccessDecisionManagerTests extends TestCase {
diff --git a/core/src/test/java/org/springframework/security/access/vote/AbstractAclVoterTests.java b/core/src/test/java/org/springframework/security/access/vote/AbstractAclVoterTests.java
index 614bc58c2a..b321f59312 100644
--- a/core/src/test/java/org/springframework/security/access/vote/AbstractAclVoterTests.java
+++ b/core/src/test/java/org/springframework/security/access/vote/AbstractAclVoterTests.java
@@ -18,7 +18,6 @@ import org.springframework.security.util.MethodInvocationUtils;
/**
*
* @author Luke Taylor
- * @version $Id$
*/
public class AbstractAclVoterTests {
private AbstractAclVoter voter = new AbstractAclVoter() {
diff --git a/core/src/test/java/org/springframework/security/access/vote/AffirmativeBasedTests.java b/core/src/test/java/org/springframework/security/access/vote/AffirmativeBasedTests.java
index b9df043172..93403fb633 100644
--- a/core/src/test/java/org/springframework/security/access/vote/AffirmativeBasedTests.java
+++ b/core/src/test/java/org/springframework/security/access/vote/AffirmativeBasedTests.java
@@ -36,7 +36,6 @@ import org.springframework.security.core.Authentication;
* Tests {@link AffirmativeBased}.
*
* @author Ben Alex
- * @version $Id$
*/
public class AffirmativeBasedTests {
private final ListAll comparisons are case sensitive.
* * @author Ben Alex - * @version $Id$ */ public class DenyVoter implements AccessDecisionVoter { //~ Methods ======================================================================================================== diff --git a/core/src/test/java/org/springframework/security/access/vote/LabelBasedAclVoterTests.java b/core/src/test/java/org/springframework/security/access/vote/LabelBasedAclVoterTests.java index 5ee8dde3af..c6772168ab 100644 --- a/core/src/test/java/org/springframework/security/access/vote/LabelBasedAclVoterTests.java +++ b/core/src/test/java/org/springframework/security/access/vote/LabelBasedAclVoterTests.java @@ -32,7 +32,6 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; /** * @author Greg Turnquist - * @version $Id$ */ @ContextConfiguration(locations={"/org/springframework/security/vote/labelBasedSecurityApplicationContext.xml"}) @RunWith(SpringJUnit4ClassRunner.class) diff --git a/core/src/test/java/org/springframework/security/access/vote/RoleVoterTests.java b/core/src/test/java/org/springframework/security/access/vote/RoleVoterTests.java index 01c4afd991..148dd5a176 100644 --- a/core/src/test/java/org/springframework/security/access/vote/RoleVoterTests.java +++ b/core/src/test/java/org/springframework/security/access/vote/RoleVoterTests.java @@ -11,7 +11,6 @@ import org.springframework.security.core.Authentication; /** * * @author Luke Taylor - * @version $Id$ */ public class RoleVoterTests { @Test diff --git a/core/src/test/java/org/springframework/security/access/vote/SampleBlockOfData.java b/core/src/test/java/org/springframework/security/access/vote/SampleBlockOfData.java index 3d71ed77a4..42ca005f09 100644 --- a/core/src/test/java/org/springframework/security/access/vote/SampleBlockOfData.java +++ b/core/src/test/java/org/springframework/security/access/vote/SampleBlockOfData.java @@ -24,7 +24,6 @@ import java.io.Serializable; * For label unit tests. * * @author Greg Turnquist - * @version $Id$ */ public class SampleBlockOfData implements Serializable, LabeledData { //~ Static fields/initializers ===================================================================================== diff --git a/core/src/test/java/org/springframework/security/access/vote/SampleService.java b/core/src/test/java/org/springframework/security/access/vote/SampleService.java index 10776815c7..30437bbaf0 100644 --- a/core/src/test/java/org/springframework/security/access/vote/SampleService.java +++ b/core/src/test/java/org/springframework/security/access/vote/SampleService.java @@ -20,7 +20,6 @@ import java.util.List; /** * @author Greg Turnquist - * @version $Id$ */ public interface SampleService { //~ Methods ======================================================================================================== diff --git a/core/src/test/java/org/springframework/security/access/vote/SampleServiceImpl.java b/core/src/test/java/org/springframework/security/access/vote/SampleServiceImpl.java index 95291649f6..aa9bf9d4f4 100644 --- a/core/src/test/java/org/springframework/security/access/vote/SampleServiceImpl.java +++ b/core/src/test/java/org/springframework/security/access/vote/SampleServiceImpl.java @@ -22,7 +22,6 @@ import java.util.Vector; * For label unit tests. * * @author Greg Turnquist - * @version $Id$ */ public class SampleServiceImpl implements SampleService { //~ Methods ======================================================================================================== diff --git a/core/src/test/java/org/springframework/security/access/vote/SomeDomainObject.java b/core/src/test/java/org/springframework/security/access/vote/SomeDomainObject.java index 3e9133cc02..28712a935d 100644 --- a/core/src/test/java/org/springframework/security/access/vote/SomeDomainObject.java +++ b/core/src/test/java/org/springframework/security/access/vote/SomeDomainObject.java @@ -19,7 +19,6 @@ package org.springframework.security.access.vote; * Simple domain object, used by {@link BasicAclEntryVoterTests}. * * @author Ben Alex - * @version $Id$ */ public class SomeDomainObject { //~ Instance fields ================================================================================================ diff --git a/core/src/test/java/org/springframework/security/access/vote/SomeDomainObjectManager.java b/core/src/test/java/org/springframework/security/access/vote/SomeDomainObjectManager.java index cca5e0ffdd..762fc0861a 100644 --- a/core/src/test/java/org/springframework/security/access/vote/SomeDomainObjectManager.java +++ b/core/src/test/java/org/springframework/security/access/vote/SomeDomainObjectManager.java @@ -20,7 +20,6 @@ package org.springframework.security.access.vote; *SomeDomainObject.
*
* @author Ben Alex
- * @version $Id$
*/
public class SomeDomainObjectManager {
//~ Methods ========================================================================================================
diff --git a/core/src/test/java/org/springframework/security/access/vote/UnanimousBasedTests.java b/core/src/test/java/org/springframework/security/access/vote/UnanimousBasedTests.java
index a190f6dcb3..7513593307 100644
--- a/core/src/test/java/org/springframework/security/access/vote/UnanimousBasedTests.java
+++ b/core/src/test/java/org/springframework/security/access/vote/UnanimousBasedTests.java
@@ -33,7 +33,6 @@ import org.springframework.security.authentication.TestingAuthenticationToken;
* Tests {@link UnanimousBased}.
*
* @author Ben Alex
- * @version $Id$
*/
public class UnanimousBasedTests extends TestCase {
diff --git a/core/src/test/java/org/springframework/security/authentication/AbstractAuthenticationTokenTests.java b/core/src/test/java/org/springframework/security/authentication/AbstractAuthenticationTokenTests.java
index 5d2190eae8..908831c626 100644
--- a/core/src/test/java/org/springframework/security/authentication/AbstractAuthenticationTokenTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/AbstractAuthenticationTokenTests.java
@@ -30,7 +30,6 @@ import org.springframework.security.core.authority.GrantedAuthorityImpl;
* Tests {@link AbstractAuthenticationToken}.
*
* @author Ben Alex
- * @version $Id$
*/
public class AbstractAuthenticationTokenTests {
//~ Instance fields ================================================================================================
diff --git a/core/src/test/java/org/springframework/security/authentication/AuthenticationDetailsSourceImplTests.java b/core/src/test/java/org/springframework/security/authentication/AuthenticationDetailsSourceImplTests.java
index ec6a984ab9..afc63f6ddc 100644
--- a/core/src/test/java/org/springframework/security/authentication/AuthenticationDetailsSourceImplTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/AuthenticationDetailsSourceImplTests.java
@@ -10,7 +10,6 @@ import org.springframework.security.authentication.TestingAuthenticationToken;
/**
*
* @author Luke Taylor
- * @version $Id$
*/
public class AuthenticationDetailsSourceImplTests {
diff --git a/core/src/test/java/org/springframework/security/authentication/AuthenticationTrustResolverImplTests.java b/core/src/test/java/org/springframework/security/authentication/AuthenticationTrustResolverImplTests.java
index 5da9dcaab8..9acd77f182 100644
--- a/core/src/test/java/org/springframework/security/authentication/AuthenticationTrustResolverImplTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/AuthenticationTrustResolverImplTests.java
@@ -28,7 +28,6 @@ import org.springframework.security.core.authority.AuthorityUtils;
* Tests {@link org.springframework.security.authentication.AuthenticationTrustResolverImpl}.
*
* @author Ben Alex
- * @version $Id$
*/
public class AuthenticationTrustResolverImplTests extends TestCase {
diff --git a/core/src/test/java/org/springframework/security/authentication/ProviderManagerTests.java b/core/src/test/java/org/springframework/security/authentication/ProviderManagerTests.java
index f63bc66140..a8ec61c75f 100644
--- a/core/src/test/java/org/springframework/security/authentication/ProviderManagerTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/ProviderManagerTests.java
@@ -34,7 +34,6 @@ import org.springframework.security.core.authority.AuthorityUtils;
* Tests {@link ProviderManager}.
*
* @author Ben Alex
- * @version $Id$
*/
@SuppressWarnings("unchecked")
public class ProviderManagerTests {
diff --git a/core/src/test/java/org/springframework/security/authentication/TestingAuthenticationProviderTests.java b/core/src/test/java/org/springframework/security/authentication/TestingAuthenticationProviderTests.java
index 5ce1a7aaf6..882c3b49ba 100644
--- a/core/src/test/java/org/springframework/security/authentication/TestingAuthenticationProviderTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/TestingAuthenticationProviderTests.java
@@ -26,7 +26,6 @@ import org.springframework.security.core.authority.AuthorityUtils;
* Tests {@link TestingAuthenticationProvider}.
*
* @author Ben Alex
- * @version $Id$
*/
public class TestingAuthenticationProviderTests extends TestCase {
diff --git a/core/src/test/java/org/springframework/security/authentication/UsernamePasswordAuthenticationTokenTests.java b/core/src/test/java/org/springframework/security/authentication/UsernamePasswordAuthenticationTokenTests.java
index 1274c4220d..d0218727be 100644
--- a/core/src/test/java/org/springframework/security/authentication/UsernamePasswordAuthenticationTokenTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/UsernamePasswordAuthenticationTokenTests.java
@@ -28,7 +28,6 @@ import org.springframework.security.core.authority.AuthorityUtils;
* Tests {@link UsernamePasswordAuthenticationToken}.
*
* @author Ben Alex
- * @version $Id$
*/
public class UsernamePasswordAuthenticationTokenTests {
diff --git a/core/src/test/java/org/springframework/security/authentication/anonymous/AnonymousAuthenticationProviderTests.java b/core/src/test/java/org/springframework/security/authentication/anonymous/AnonymousAuthenticationProviderTests.java
index 437c4467e5..b3ac39db73 100644
--- a/core/src/test/java/org/springframework/security/authentication/anonymous/AnonymousAuthenticationProviderTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/anonymous/AnonymousAuthenticationProviderTests.java
@@ -32,7 +32,6 @@ import org.springframework.security.core.authority.GrantedAuthorityImpl;
* Tests {@link AnonymousAuthenticationProvider}.
*
* @author Ben Alex
- * @version $Id$
*/
public class AnonymousAuthenticationProviderTests extends TestCase {
diff --git a/core/src/test/java/org/springframework/security/authentication/anonymous/AnonymousAuthenticationTokenTests.java b/core/src/test/java/org/springframework/security/authentication/anonymous/AnonymousAuthenticationTokenTests.java
index ef7185e520..dc61388a9c 100644
--- a/core/src/test/java/org/springframework/security/authentication/anonymous/AnonymousAuthenticationTokenTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/anonymous/AnonymousAuthenticationTokenTests.java
@@ -29,7 +29,6 @@ import org.springframework.security.core.authority.AuthorityUtils;
* Tests {@link AnonymousAuthenticationToken}.
*
* @author Ben Alex
- * @version $Id$
*/
public class AnonymousAuthenticationTokenTests extends TestCase {
diff --git a/core/src/test/java/org/springframework/security/authentication/dao/DaoAuthenticationProviderTests.java b/core/src/test/java/org/springframework/security/authentication/dao/DaoAuthenticationProviderTests.java
index 85cec8fa28..4d1b9365ac 100644
--- a/core/src/test/java/org/springframework/security/authentication/dao/DaoAuthenticationProviderTests.java
+++ b/core/src/test/java/org/springframework/security/authentication/dao/DaoAuthenticationProviderTests.java
@@ -45,7 +45,6 @@ import org.springframework.security.core.userdetails.cache.NullUserCache;
* Tests {@link DaoAuthenticationProvider}.
*
* @author Ben Alex
- * @version $Id$
*/
public class DaoAuthenticationProviderTests extends TestCase {
private static final ListTestCase for BasePasswordEncoder.
* * @author Ben Alex - * @version $Id$ */ public class BasePasswordEncoderTests extends TestCase { //~ Methods ======================================================================================================== diff --git a/core/src/test/java/org/springframework/security/authentication/encoding/Md4PasswordEncoderTests.java b/core/src/test/java/org/springframework/security/authentication/encoding/Md4PasswordEncoderTests.java index 619f5b9cef..57777b2eb8 100644 --- a/core/src/test/java/org/springframework/security/authentication/encoding/Md4PasswordEncoderTests.java +++ b/core/src/test/java/org/springframework/security/authentication/encoding/Md4PasswordEncoderTests.java @@ -1,73 +1,73 @@ -/* Copyright 2004, 2005, 2006, 2007 Acegi Technology Pty Limited - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.security.authentication.encoding; - -import org.springframework.security.authentication.encoding.Md4PasswordEncoder; - -import junit.framework.TestCase; - -public class Md4PasswordEncoderTests extends TestCase { - - public void testEncodeUnsaltedPassword() { - Md4PasswordEncoder md4 = new Md4PasswordEncoder(); - md4.setEncodeHashAsBase64(true); - String encodedPassword = md4.encodePassword("ww_uni123", null); - assertEquals("8zobtq72iAt0W6KNqavGwg==", encodedPassword); - } - - public void testEncodeSaltedPassword() { - Md4PasswordEncoder md4 = new Md4PasswordEncoder(); - md4.setEncodeHashAsBase64(true); - String encodedPassword = md4.encodePassword("ww_uni123", "Alan K Stewart"); - assertEquals("ZplT6P5Kv6Rlu6W4FIoYNA==", encodedPassword); - } - - public void testEncodeNullPassword() { - Md4PasswordEncoder md4 = new Md4PasswordEncoder(); - md4.setEncodeHashAsBase64(true); - String encodedPassword = md4.encodePassword(null, null); - assertEquals("MdbP4NFq6TG3PFnX4MCJwA==", encodedPassword); - } - - public void testEncodeEmptyPassword() { - Md4PasswordEncoder md4 = new Md4PasswordEncoder(); - md4.setEncodeHashAsBase64(true); - String encodedPassword = md4.encodePassword("", null); - assertEquals("MdbP4NFq6TG3PFnX4MCJwA==", encodedPassword); - } - - public void testNonAsciiPasswordHasCorrectHash() { - Md4PasswordEncoder md4 = new Md4PasswordEncoder(); - String encodedPassword = md4.encodePassword("\u4F60\u597d", null); - assertEquals("a7f1196539fd1f85f754ffd185b16e6e", encodedPassword); - } - - public void testIsHexPasswordValid() { - Md4PasswordEncoder md4 = new Md4PasswordEncoder(); - assertTrue(md4.isPasswordValid("31d6cfe0d16ae931b73c59d7e0c089c0", "", null)); - } - - public void testIsPasswordValid() { - Md4PasswordEncoder md4 = new Md4PasswordEncoder(); - md4.setEncodeHashAsBase64(true); - assertTrue(md4.isPasswordValid("8zobtq72iAt0W6KNqavGwg==", "ww_uni123", null)); - } - - public void testIsSaltedPasswordValid() { - Md4PasswordEncoder md4 = new Md4PasswordEncoder(); - md4.setEncodeHashAsBase64(true); - assertTrue(md4.isPasswordValid("ZplT6P5Kv6Rlu6W4FIoYNA==", "ww_uni123", "Alan K Stewart")); - } -} +/* Copyright 2004, 2005, 2006, 2007 Acegi Technology Pty Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.springframework.security.authentication.encoding; + +import org.springframework.security.authentication.encoding.Md4PasswordEncoder; + +import junit.framework.TestCase; + +public class Md4PasswordEncoderTests extends TestCase { + + public void testEncodeUnsaltedPassword() { + Md4PasswordEncoder md4 = new Md4PasswordEncoder(); + md4.setEncodeHashAsBase64(true); + String encodedPassword = md4.encodePassword("ww_uni123", null); + assertEquals("8zobtq72iAt0W6KNqavGwg==", encodedPassword); + } + + public void testEncodeSaltedPassword() { + Md4PasswordEncoder md4 = new Md4PasswordEncoder(); + md4.setEncodeHashAsBase64(true); + String encodedPassword = md4.encodePassword("ww_uni123", "Alan K Stewart"); + assertEquals("ZplT6P5Kv6Rlu6W4FIoYNA==", encodedPassword); + } + + public void testEncodeNullPassword() { + Md4PasswordEncoder md4 = new Md4PasswordEncoder(); + md4.setEncodeHashAsBase64(true); + String encodedPassword = md4.encodePassword(null, null); + assertEquals("MdbP4NFq6TG3PFnX4MCJwA==", encodedPassword); + } + + public void testEncodeEmptyPassword() { + Md4PasswordEncoder md4 = new Md4PasswordEncoder(); + md4.setEncodeHashAsBase64(true); + String encodedPassword = md4.encodePassword("", null); + assertEquals("MdbP4NFq6TG3PFnX4MCJwA==", encodedPassword); + } + + public void testNonAsciiPasswordHasCorrectHash() { + Md4PasswordEncoder md4 = new Md4PasswordEncoder(); + String encodedPassword = md4.encodePassword("\u4F60\u597d", null); + assertEquals("a7f1196539fd1f85f754ffd185b16e6e", encodedPassword); + } + + public void testIsHexPasswordValid() { + Md4PasswordEncoder md4 = new Md4PasswordEncoder(); + assertTrue(md4.isPasswordValid("31d6cfe0d16ae931b73c59d7e0c089c0", "", null)); + } + + public void testIsPasswordValid() { + Md4PasswordEncoder md4 = new Md4PasswordEncoder(); + md4.setEncodeHashAsBase64(true); + assertTrue(md4.isPasswordValid("8zobtq72iAt0W6KNqavGwg==", "ww_uni123", null)); + } + + public void testIsSaltedPasswordValid() { + Md4PasswordEncoder md4 = new Md4PasswordEncoder(); + md4.setEncodeHashAsBase64(true); + assertTrue(md4.isPasswordValid("ZplT6P5Kv6Rlu6W4FIoYNA==", "ww_uni123", "Alan K Stewart")); + } +} diff --git a/core/src/test/java/org/springframework/security/authentication/encoding/Md5PasswordEncoderTests.java b/core/src/test/java/org/springframework/security/authentication/encoding/Md5PasswordEncoderTests.java index f457dd66ed..bb66604f1e 100644 --- a/core/src/test/java/org/springframework/security/authentication/encoding/Md5PasswordEncoderTests.java +++ b/core/src/test/java/org/springframework/security/authentication/encoding/Md5PasswordEncoderTests.java @@ -26,7 +26,6 @@ import junit.framework.TestCase; * @author colin sampaleanu * @author Ben Alex * @author Ray Krueger - * @version $Id$ */ public class Md5PasswordEncoderTests extends TestCase { //~ Methods ======================================================================================================== @@ -42,12 +41,12 @@ public class Md5PasswordEncoderTests extends TestCase { assertEquals("a68aafd90299d0b137de28fb4bb68573", encoded); assertEquals("MD5", pe.getAlgorithm()); } - + public void testNonAsciiPasswordHasCorrectHash() { Md5PasswordEncoder md5 = new Md5PasswordEncoder(); String encodedPassword = md5.encodePassword("\u4F60\u597d", null); - assertEquals("7eca689f0d3389d9dea66ae112e5cfd7", encodedPassword); - } + assertEquals("7eca689f0d3389d9dea66ae112e5cfd7", encodedPassword); + } public void testBase64() throws Exception { Md5PasswordEncoder pe = new Md5PasswordEncoder(); diff --git a/core/src/test/java/org/springframework/security/authentication/encoding/PlaintextPasswordEncoderTests.java b/core/src/test/java/org/springframework/security/authentication/encoding/PlaintextPasswordEncoderTests.java index 50fcf9a3c1..1e15fcbd41 100644 --- a/core/src/test/java/org/springframework/security/authentication/encoding/PlaintextPasswordEncoderTests.java +++ b/core/src/test/java/org/springframework/security/authentication/encoding/PlaintextPasswordEncoderTests.java @@ -25,7 +25,6 @@ import junit.framework.TestCase; * * @author colin sampaleanu * @author Ben Alex - * @version $Id$ */ public class PlaintextPasswordEncoderTests extends TestCase { //~ Methods ======================================================================================================== diff --git a/core/src/test/java/org/springframework/security/authentication/encoding/ShaPasswordEncoderTests.java b/core/src/test/java/org/springframework/security/authentication/encoding/ShaPasswordEncoderTests.java index 270d421324..913bb38d8b 100644 --- a/core/src/test/java/org/springframework/security/authentication/encoding/ShaPasswordEncoderTests.java +++ b/core/src/test/java/org/springframework/security/authentication/encoding/ShaPasswordEncoderTests.java @@ -26,7 +26,6 @@ import junit.framework.TestCase; * @author colin sampaleanu * @author Ben Alex * @author Ray Krueger - * @version $Id$ */ public class ShaPasswordEncoderTests extends TestCase { //~ Methods ======================================================================================================== diff --git a/core/src/test/java/org/springframework/security/authentication/event/AuthenticationEventTests.java b/core/src/test/java/org/springframework/security/authentication/event/AuthenticationEventTests.java index 0b0a2fb174..ce57bba42a 100644 --- a/core/src/test/java/org/springframework/security/authentication/event/AuthenticationEventTests.java +++ b/core/src/test/java/org/springframework/security/authentication/event/AuthenticationEventTests.java @@ -32,7 +32,6 @@ import org.springframework.security.core.AuthenticationException; * Tests {@link AbstractAuthenticationEvent} and its subclasses. * * @author Ben Alex - * @version $Id$ */ public class AuthenticationEventTests extends TestCase { //~ Methods ======================================================================================================== diff --git a/core/src/test/java/org/springframework/security/authentication/event/LoggerListenerTests.java b/core/src/test/java/org/springframework/security/authentication/event/LoggerListenerTests.java index 8ac74d48ff..3bed46b166 100644 --- a/core/src/test/java/org/springframework/security/authentication/event/LoggerListenerTests.java +++ b/core/src/test/java/org/springframework/security/authentication/event/LoggerListenerTests.java @@ -29,7 +29,6 @@ import org.springframework.security.core.Authentication; * Tests {@link LoggerListener}. * * @author Ben Alex - * @version $Id$ */ public class LoggerListenerTests extends TestCase { //~ Methods ======================================================================================================== diff --git a/core/src/test/java/org/springframework/security/authentication/jaas/JaasAuthenticationProviderTests.java b/core/src/test/java/org/springframework/security/authentication/jaas/JaasAuthenticationProviderTests.java index 7f7a117b9d..c922d35729 100644 --- a/core/src/test/java/org/springframework/security/authentication/jaas/JaasAuthenticationProviderTests.java +++ b/core/src/test/java/org/springframework/security/authentication/jaas/JaasAuthenticationProviderTests.java @@ -50,7 +50,6 @@ import org.springframework.security.core.session.SessionDestroyedEvent; * Tests for the JaasAuthenticationProvider * * @author Ray Krueger - * @version $Id$ */ public class JaasAuthenticationProviderTests { //~ Instance fields ================================================================================================ diff --git a/core/src/test/java/org/springframework/security/authentication/jaas/JaasEventCheck.java b/core/src/test/java/org/springframework/security/authentication/jaas/JaasEventCheck.java index 129bb06ff8..2024566138 100644 --- a/core/src/test/java/org/springframework/security/authentication/jaas/JaasEventCheck.java +++ b/core/src/test/java/org/springframework/security/authentication/jaas/JaasEventCheck.java @@ -23,7 +23,6 @@ import org.springframework.security.authentication.jaas.event.JaasAuthentication /** * @author Ray Krueger - * @version $Id$ */ public class JaasEventCheck implements ApplicationListenerconfiguration attributeswhich are specified for a + The voters act on the
configuration attributeswhich are specified for a secured resource (such as a method invocation). With this approach, not all attributes may be relevant to all voters and a voter needs to know when it should ignore an attribute (abstain) and - when it should vote to grant or deny access based on the attribute value. + when it should vote to grant or deny access based on the attribute value. The most common voter is the
ROLE_prefix. It makes a simple comparison of the attribute (such as
ROLE_USER) with the name names of the authorities which - the current user has been assigned. If it finds a match (they have an authority called -
ROLE_USER), it votes to grant access, otherwise it votes to deny access. + the current user has been assigned. If it finds a match (they have an authority called +
ROLE_USER), it votes to grant access, otherwise it votes to deny access.
dc=springframework,dc=org, which is the default. Used this way, the namespace parser will create an embedded Apache Directory server and scan the @@ -96,7 +96,7 @@ that user with the login password. This is OK if all your users are stored under a single node in the directory. If instead you wished to configure an LDAP search filter to locate the user, you could use the following:
ben, the subsequent loading of authorities would perform a search under the directory entry @@ -314,7 +314,7 @@
Anyone can view this page.
- -Your principal object is....: <%= request.getUserPrincipal() %>
- - - - + + +Anyone can view this page.
+ +Your principal object is....: <%= request.getUserPrincipal() %>
+ + + + \ No newline at end of file diff --git a/samples/cas/client/src/main/webapp/secure/extreme/index.jsp b/samples/cas/client/src/main/webapp/secure/extreme/index.jsp index f7df8f9a80..c5ff40bfef 100644 --- a/samples/cas/client/src/main/webapp/secure/extreme/index.jsp +++ b/samples/cas/client/src/main/webapp/secure/extreme/index.jsp @@ -1,9 +1,9 @@ - - -Home -
Logout - + +
+Home +
Logout + \ No newline at end of file diff --git a/samples/cas/client/src/main/webapp/secure/index.jsp b/samples/cas/client/src/main/webapp/secure/index.jsp index 0c960942a7..97d9b216d4 100644 --- a/samples/cas/client/src/main/webapp/secure/index.jsp +++ b/samples/cas/client/src/main/webapp/secure/index.jsp @@ -1,15 +1,15 @@ - -
-Home -
Logout - + +
+Home +
Logout
+
\ No newline at end of file
diff --git a/samples/contacts/client/client.properties b/samples/contacts/client/client.properties
index 00e0fadf67..9f3feee9ea 100644
--- a/samples/contacts/client/client.properties
+++ b/samples/contacts/client/client.properties
@@ -1,7 +1,6 @@
# Properties file with server URL settings for remote access.
# Applied by PropertyPlaceholderConfigurer from "clientContext.xml".
#
-# $Id$
serverName=localhost
httpPort=8080
diff --git a/samples/contacts/pom.xml b/samples/contacts/pom.xml
index 751f5fa812..5e3a945055 100644
--- a/samples/contacts/pom.xml
+++ b/samples/contacts/pom.xml
@@ -34,7 +34,7 @@
Anyone can view this page.
- -Your principal object is....: <%= request.getUserPrincipal() %>
- - - - + + +Anyone can view this page.
+ +Your principal object is....: <%= request.getUserPrincipal() %>
+ + + + \ No newline at end of file diff --git a/samples/ldap/src/main/webapp/secure/extreme/index.jsp b/samples/ldap/src/main/webapp/secure/extreme/index.jsp index 5cc73bb8b6..2804561673 100644 --- a/samples/ldap/src/main/webapp/secure/extreme/index.jsp +++ b/samples/ldap/src/main/webapp/secure/extreme/index.jsp @@ -1,10 +1,10 @@ - - - -Home -
Logout - + + +
+Home +
Logout + \ No newline at end of file diff --git a/samples/ldap/src/main/webapp/secure/index.jsp b/samples/ldap/src/main/webapp/secure/index.jsp index b774c40ed8..97d9b216d4 100644 --- a/samples/ldap/src/main/webapp/secure/index.jsp +++ b/samples/ldap/src/main/webapp/secure/index.jsp @@ -1,15 +1,15 @@ - -
-Home -
Logout - + +
Home +
Logout
+
\ No newline at end of file
diff --git a/samples/openid/src/main/java/zzz/Dummy.java b/samples/openid/src/main/java/zzz/Dummy.java
index 2e17f69cd6..ca5d30edb5 100644
--- a/samples/openid/src/main/java/zzz/Dummy.java
+++ b/samples/openid/src/main/java/zzz/Dummy.java
@@ -1,7 +1,6 @@
package zzz;
/**
* @author Luke Taylor
- * @version $Id$
*/
public class Dummy {
}
diff --git a/samples/openid/src/main/webapp/WEB-INF/applicationContext-security.xml b/samples/openid/src/main/webapp/WEB-INF/applicationContext-security.xml
index e7007eda76..4adbf90c69 100644
--- a/samples/openid/src/main/webapp/WEB-INF/applicationContext-security.xml
+++ b/samples/openid/src/main/webapp/WEB-INF/applicationContext-security.xml
@@ -1,36 +1,35 @@
-
-
-
-
-
Anyone can view this page.
- -Your principal object is....: <%= request.getUserPrincipal() %>
- - - - + + +Anyone can view this page.
+ +Your principal object is....: <%= request.getUserPrincipal() %>
+ + + + \ No newline at end of file diff --git a/samples/openid/src/main/webapp/secure/extreme/index.jsp b/samples/openid/src/main/webapp/secure/extreme/index.jsp index f7df8f9a80..c5ff40bfef 100644 --- a/samples/openid/src/main/webapp/secure/extreme/index.jsp +++ b/samples/openid/src/main/webapp/secure/extreme/index.jsp @@ -1,9 +1,9 @@ - - -Home -
Logout - + +
+Home +
Logout + \ No newline at end of file diff --git a/samples/openid/src/main/webapp/secure/index.jsp b/samples/openid/src/main/webapp/secure/index.jsp index b774c40ed8..97d9b216d4 100644 --- a/samples/openid/src/main/webapp/secure/index.jsp +++ b/samples/openid/src/main/webapp/secure/index.jsp @@ -1,15 +1,15 @@ - -
-Home -
Logout - + +
Home +
Logout
+
\ No newline at end of file
diff --git a/samples/pom.xml b/samples/pom.xml
index 305c24fc88..354581c7bd 100644
--- a/samples/pom.xml
+++ b/samples/pom.xml
@@ -16,14 +16,14 @@
Anyone can view this page.
- -Your principal object is....: <%= request.getUserPrincipal() %>
- - - - + + +Anyone can view this page.
+ +Your principal object is....: <%= request.getUserPrincipal() %>
+ + + + \ No newline at end of file diff --git a/samples/preauth/src/main/webapp/secure/extreme/index.jsp b/samples/preauth/src/main/webapp/secure/extreme/index.jsp index 5cc73bb8b6..2804561673 100644 --- a/samples/preauth/src/main/webapp/secure/extreme/index.jsp +++ b/samples/preauth/src/main/webapp/secure/extreme/index.jsp @@ -1,10 +1,10 @@ - - - -Home -
Logout - + + +
+Home +
Logout + \ No newline at end of file diff --git a/samples/preauth/src/main/webapp/secure/index.jsp b/samples/preauth/src/main/webapp/secure/index.jsp index b774c40ed8..97d9b216d4 100644 --- a/samples/preauth/src/main/webapp/secure/index.jsp +++ b/samples/preauth/src/main/webapp/secure/index.jsp @@ -1,15 +1,15 @@ - -
-Home -
Logout - + +
Home +
Logout
+
\ No newline at end of file
diff --git a/samples/tutorial/src/main/java/bigbank/Account.java b/samples/tutorial/src/main/java/bigbank/Account.java
index df031b5af9..5d3fbee0d5 100644
--- a/samples/tutorial/src/main/java/bigbank/Account.java
+++ b/samples/tutorial/src/main/java/bigbank/Account.java
@@ -7,7 +7,6 @@ package bigbank;
* as opposed to what they ideally would be doing.
*
* @author Ben Alex
- * @version $Id$
*/
public class Account {
private long id = -1;
diff --git a/samples/tutorial/src/main/java/bigbank/SeedData.java b/samples/tutorial/src/main/java/bigbank/SeedData.java
index 182ac392b4..6eaf6ec16c 100644
--- a/samples/tutorial/src/main/java/bigbank/SeedData.java
+++ b/samples/tutorial/src/main/java/bigbank/SeedData.java
@@ -13,9 +13,9 @@ public class SeedData implements InitializingBean{
bankDao.createOrUpdateAccount(new Account("scott"));
bankDao.createOrUpdateAccount(new Account("peter"));
}
-
+
public void setBankDao(BankDao bankDao) {
this.bankDao = bankDao;
}
-
+
}
diff --git a/samples/tutorial/src/main/webapp/WEB-INF/applicationContext-security.xml b/samples/tutorial/src/main/webapp/WEB-INF/applicationContext-security.xml
index 7074675d1f..1a9a47abd7 100644
--- a/samples/tutorial/src/main/webapp/WEB-INF/applicationContext-security.xml
+++ b/samples/tutorial/src/main/webapp/WEB-INF/applicationContext-security.xml
@@ -1,62 +1,61 @@
-
-
-
-
-
-Anyone can view this page. -
--If you're logged in, you can list accounts. -
--Your principal object is....: <%= request.getUserPrincipal() %> -
-
-
-
+Anyone can view this page. +
++If you're logged in, you can list accounts. +
++Your principal object is....: <%= request.getUserPrincipal() %> +
+
+
+
Home -
Logout - - +<%@ taglib prefix="authz" uri="http://www.springframework.org/security/tags" %> + + +
+Home +
Logout + + diff --git a/samples/tutorial/src/main/webapp/secure/index.jsp b/samples/tutorial/src/main/webapp/secure/index.jsp index 8fa5039644..95fca71f15 100644 --- a/samples/tutorial/src/main/webapp/secure/index.jsp +++ b/samples/tutorial/src/main/webapp/secure/index.jsp @@ -1,36 +1,36 @@ -<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> - - -
--This is a protected page. You can get to me if you've been remembered, -or if you've authenticated this session. -
- -| Tag | Value |
|---|---|
| <sec:authentication property='name' /> | |
| <sec:authentication property='principal.username' /> | |
| <sec:authentication property='principal.enabled' /> | |
| <sec:authentication property='principal.accountNonLocked' /> |
Home -
Logout - - +<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> + + +
++This is a protected page. You can get to me if you've been remembered, +or if you've authenticated this session. +
+ +| Tag | Value |
|---|---|
| <sec:authentication property='name' /> | |
| <sec:authentication property='principal.username' /> | |
| <sec:authentication property='principal.enabled' /> | |
| <sec:authentication property='principal.accountNonLocked' /> |
Home +
Logout
+
+
diff --git a/sandbox/heavyduty/jetty-jmx.xml b/sandbox/heavyduty/jetty-jmx.xml
index 7a553731b8..53fe158000 100644
--- a/sandbox/heavyduty/jetty-jmx.xml
+++ b/sandbox/heavyduty/jetty-jmx.xml
@@ -16,14 +16,14 @@
-Anyone can view this page. -
+<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> + + ++Anyone can view this page. +
Test multi-action controller SEC-830. -
--Your principal object is....: <%= request.getUserPrincipal() %> -
-+Your principal object is....: <%= request.getUserPrincipal() %> +
+Home -
Logout - +<%@ taglib prefix="authz" uri="http://www.springframework.org/security/tags" %> + + +
+Home +
Logout + \ No newline at end of file diff --git a/sandbox/heavyduty/src/main/webapp/secure/index.jsp b/sandbox/heavyduty/src/main/webapp/secure/index.jsp index 6abe155d88..ef87083a45 100755 --- a/sandbox/heavyduty/src/main/webapp/secure/index.jsp +++ b/sandbox/heavyduty/src/main/webapp/secure/index.jsp @@ -1,38 +1,38 @@ -<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> - - -
--This is a protected page. You can get to me if you've been remembered, -or if you've authenticated this session. -
- -| Tag | Value |
|---|---|
| <sec:authentication property='name' /> | |
| <sec:authentication property='principal.username' /> | |
| <sec:authentication property='principal.enabled' /> | |
| <sec:authentication property='principal.accountNonLocked' /> |
| Tag | Value |
|---|---|
| <sec:authentication property='name' /> | |
| <sec:authentication property='principal.username' /> | |
| <sec:authentication property='principal.enabled' /> | |
| <sec:authentication property='principal.accountNonLocked' /> |
Home -
Logout - +Saved Request: <%= session.getAttribute("SPRING_SECURITY_SAVED_REQUEST_KEY") %> + + +
Home +
Logout
+
\ No newline at end of file
diff --git a/sandbox/webflow/pom.xml b/sandbox/webflow/pom.xml
index 7893386193..2aefda7be4 100644
--- a/sandbox/webflow/pom.xml
+++ b/sandbox/webflow/pom.xml
@@ -24,27 +24,27 @@
Home
- Logout
-
+<%@ taglib prefix="authz" uri="http://www.springframework.org/security/tags" %>
+
+
+ Home
+ Logout
+
\ No newline at end of file
diff --git a/sandbox/webflow/src/main/webapp/secure/index.jsp b/sandbox/webflow/src/main/webapp/secure/index.jsp
index e44be8bcd7..873e2553b1 100644
--- a/sandbox/webflow/src/main/webapp/secure/index.jsp
+++ b/sandbox/webflow/src/main/webapp/secure/index.jsp
@@ -1,36 +1,36 @@
-<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
-
-
-
-This is a protected page. You can get to me if you've been remembered,
-or if you've authenticated this session.
- Home
- Logout
-
+<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>
+
+
+
+This is a protected page. You can get to me if you've been remembered,
+or if you've authenticated this session.
+ Home
+ Logout
+
\ No newline at end of file
diff --git a/taglibs/pom.xml b/taglibs/pom.xml
index 3f4327cadf..106600f322 100644
--- a/taglibs/pom.xml
+++ b/taglibs/pom.xml
@@ -51,5 +51,5 @@
VERY Secure Page
-This is a protected page. You can only see me if you are a supervisor.
-
-VERY Secure Page
+This is a protected page. You can only see me if you are a supervisor.
+
+Secure Page
-
-Properties obtained using <sec:authentication /> tag
-
-
-
-
-
-Tag Value
-
-<sec:authentication property='name' />
-
-
-<sec:authentication property='principal.username' />
-
-
-<sec:authentication property='principal.enabled' />
-
-
-<sec:authentication property='principal.accountNonLocked' />
-Secure Page
+
+Properties obtained using <sec:authentication /> tag
+
+
+
+
+
+Tag Value
+
+<sec:authentication property='name' />
+
+
+<sec:authentication property='principal.username' />
+
+
+<sec:authentication property='principal.enabled' />
+
+
+<sec:authentication property='principal.accountNonLocked' />
+SecurityContext directly, this tag avoids handling null conditions.
*
* @author Thomas Champagne
- * @version $Id$
*/
public class AuthenticationTag extends TagSupport {
diff --git a/taglibs/src/main/java/org/springframework/security/taglibs/authz/AuthorizeTag.java b/taglibs/src/main/java/org/springframework/security/taglibs/authz/AuthorizeTag.java
index 23cca4684d..af28090178 100644
--- a/taglibs/src/main/java/org/springframework/security/taglibs/authz/AuthorizeTag.java
+++ b/taglibs/src/main/java/org/springframework/security/taglibs/authz/AuthorizeTag.java
@@ -29,7 +29,6 @@ import org.springframework.web.context.support.WebApplicationContextUtils;
*
AccessDeniedException.
- *
- * @author Ben Alex
- * @version $Id$
- */
-public interface AccessDeniedHandler {
- //~ Methods ========================================================================================================
-
- /**
- * Handles an access denied failure.
- *
- * @param request that resulted in an AccessDeniedException
- * @param response so that the user agent can be advised of the failure
- * @param accessDeniedException that caused the invocation
- *
- * @throws IOException in the event of an IOException
- * @throws ServletException in the event of a ServletException
- */
- void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException)
- throws IOException, ServletException;
-}
+/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.security.web.access;
+
+import org.springframework.security.access.AccessDeniedException;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+
+/**
+ * Used by {@link ExceptionTranslationFilter} to handle an
+ * AccessDeniedException.
+ *
+ * @author Ben Alex
+ */
+public interface AccessDeniedHandler {
+ //~ Methods ========================================================================================================
+
+ /**
+ * Handles an access denied failure.
+ *
+ * @param request that resulted in an AccessDeniedException
+ * @param response so that the user agent can be advised of the failure
+ * @param accessDeniedException that caused the invocation
+ *
+ * @throws IOException in the event of an IOException
+ * @throws ServletException in the event of a ServletException
+ */
+ void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException)
+ throws IOException, ServletException;
+}
diff --git a/web/src/main/java/org/springframework/security/web/access/AccessDeniedHandlerImpl.java b/web/src/main/java/org/springframework/security/web/access/AccessDeniedHandlerImpl.java
index d5cff8a3be..5bdf4547f1 100644
--- a/web/src/main/java/org/springframework/security/web/access/AccessDeniedHandlerImpl.java
+++ b/web/src/main/java/org/springframework/security/web/access/AccessDeniedHandlerImpl.java
@@ -1,88 +1,87 @@
-/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.security.web.access;
-
-import java.io.IOException;
-
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.springframework.security.access.AccessDeniedException;
-
-
-/**
- * Base implementation of {@link AccessDeniedHandler}.
- *
- * This implementation sends a 403 (SC_FORBIDDEN) HTTP error code. In addition, if an {@link #errorPage} is defined,
- * the implementation will perform a request dispatcher "forward" to the specified error page view.
- * Being a "forward", the SecurityContextHolder will remain
- * populated. This is of benefit if the view (or a tag library or macro) wishes to access the
- * SecurityContextHolder. The request scope will also be populated with the exception itself, available
- * from the key {@link #SPRING_SECURITY_ACCESS_DENIED_EXCEPTION_KEY}.
- *
- * @author Ben Alex
- * @version $Id$
- */
-public class AccessDeniedHandlerImpl implements AccessDeniedHandler {
- //~ Static fields/initializers =====================================================================================
-
- public static final String SPRING_SECURITY_ACCESS_DENIED_EXCEPTION_KEY = "SPRING_SECURITY_403_EXCEPTION";
- protected static final Log logger = LogFactory.getLog(AccessDeniedHandlerImpl.class);
-
- //~ Instance fields ================================================================================================
-
- private String errorPage;
-
- //~ Methods ========================================================================================================
-
- public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException)
- throws IOException, ServletException {
- if (!response.isCommitted()) {
- if (errorPage != null) {
- // Put exception into request scope (perhaps of use to a view)
- request.setAttribute(SPRING_SECURITY_ACCESS_DENIED_EXCEPTION_KEY, accessDeniedException);
-
- // Set the 403 status code.
- response.setStatus(HttpServletResponse.SC_FORBIDDEN);
-
- // forward to error page.
- RequestDispatcher dispatcher = request.getRequestDispatcher(errorPage);
- dispatcher.forward(request, response);
- } else {
- response.sendError(HttpServletResponse.SC_FORBIDDEN, accessDeniedException.getMessage());
- }
- }
- }
-
- /**
- * The error page to use. Must begin with a "/" and is interpreted relative to the current context root.
- *
- * @param errorPage the dispatcher path to display
- *
- * @throws IllegalArgumentException if the argument doesn't comply with the above limitations
- */
- public void setErrorPage(String errorPage) {
- if ((errorPage != null) && !errorPage.startsWith("/")) {
- throw new IllegalArgumentException("errorPage must begin with '/'");
- }
-
- this.errorPage = errorPage;
- }
-}
+/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.security.web.access;
+
+import java.io.IOException;
+
+import javax.servlet.RequestDispatcher;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.springframework.security.access.AccessDeniedException;
+
+
+/**
+ * Base implementation of {@link AccessDeniedHandler}.
+ *
+ * This implementation sends a 403 (SC_FORBIDDEN) HTTP error code. In addition, if an {@link #errorPage} is defined,
+ * the implementation will perform a request dispatcher "forward" to the specified error page view.
+ * Being a "forward", the SecurityContextHolder will remain
+ * populated. This is of benefit if the view (or a tag library or macro) wishes to access the
+ * SecurityContextHolder. The request scope will also be populated with the exception itself, available
+ * from the key {@link #SPRING_SECURITY_ACCESS_DENIED_EXCEPTION_KEY}.
+ *
+ * @author Ben Alex
+ */
+public class AccessDeniedHandlerImpl implements AccessDeniedHandler {
+ //~ Static fields/initializers =====================================================================================
+
+ public static final String SPRING_SECURITY_ACCESS_DENIED_EXCEPTION_KEY = "SPRING_SECURITY_403_EXCEPTION";
+ protected static final Log logger = LogFactory.getLog(AccessDeniedHandlerImpl.class);
+
+ //~ Instance fields ================================================================================================
+
+ private String errorPage;
+
+ //~ Methods ========================================================================================================
+
+ public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException)
+ throws IOException, ServletException {
+ if (!response.isCommitted()) {
+ if (errorPage != null) {
+ // Put exception into request scope (perhaps of use to a view)
+ request.setAttribute(SPRING_SECURITY_ACCESS_DENIED_EXCEPTION_KEY, accessDeniedException);
+
+ // Set the 403 status code.
+ response.setStatus(HttpServletResponse.SC_FORBIDDEN);
+
+ // forward to error page.
+ RequestDispatcher dispatcher = request.getRequestDispatcher(errorPage);
+ dispatcher.forward(request, response);
+ } else {
+ response.sendError(HttpServletResponse.SC_FORBIDDEN, accessDeniedException.getMessage());
+ }
+ }
+ }
+
+ /**
+ * The error page to use. Must begin with a "/" and is interpreted relative to the current context root.
+ *
+ * @param errorPage the dispatcher path to display
+ *
+ * @throws IllegalArgumentException if the argument doesn't comply with the above limitations
+ */
+ public void setErrorPage(String errorPage) {
+ if ((errorPage != null) && !errorPage.startsWith("/")) {
+ throw new IllegalArgumentException("errorPage must begin with '/'");
+ }
+
+ this.errorPage = errorPage;
+ }
+}
diff --git a/web/src/main/java/org/springframework/security/web/access/DefaultWebInvocationPrivilegeEvaluator.java b/web/src/main/java/org/springframework/security/web/access/DefaultWebInvocationPrivilegeEvaluator.java
index b2919908b0..66fa524146 100644
--- a/web/src/main/java/org/springframework/security/web/access/DefaultWebInvocationPrivilegeEvaluator.java
+++ b/web/src/main/java/org/springframework/security/web/access/DefaultWebInvocationPrivilegeEvaluator.java
@@ -52,7 +52,6 @@ import org.springframework.util.Assert;
*
* @author Ben Alex
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public class DefaultWebInvocationPrivilegeEvaluator implements WebInvocationPrivilegeEvaluator {
diff --git a/web/src/main/java/org/springframework/security/web/access/ExceptionTranslationFilter.java b/web/src/main/java/org/springframework/security/web/access/ExceptionTranslationFilter.java
index 5e71abada3..11f0c1f2b8 100644
--- a/web/src/main/java/org/springframework/security/web/access/ExceptionTranslationFilter.java
+++ b/web/src/main/java/org/springframework/security/web/access/ExceptionTranslationFilter.java
@@ -67,7 +67,6 @@ import org.springframework.web.filter.GenericFilterBean;
*
* @author Ben Alex
* @author colin sampaleanu
- * @version $Id$
*/
public class ExceptionTranslationFilter extends GenericFilterBean {
diff --git a/web/src/main/java/org/springframework/security/web/access/channel/AbstractRetryEntryPoint.java b/web/src/main/java/org/springframework/security/web/access/channel/AbstractRetryEntryPoint.java
index 8ec3292075..c50a8edca8 100644
--- a/web/src/main/java/org/springframework/security/web/access/channel/AbstractRetryEntryPoint.java
+++ b/web/src/main/java/org/springframework/security/web/access/channel/AbstractRetryEntryPoint.java
@@ -16,7 +16,6 @@ import java.io.IOException;
/**
* @author Luke Taylor
- * @version $Id$
*/
public abstract class AbstractRetryEntryPoint implements ChannelEntryPoint {
//~ Static fields/initializers =====================================================================================
diff --git a/web/src/main/java/org/springframework/security/web/access/channel/ChannelDecisionManager.java b/web/src/main/java/org/springframework/security/web/access/channel/ChannelDecisionManager.java
index 887069b4ae..e6d74ee484 100644
--- a/web/src/main/java/org/springframework/security/web/access/channel/ChannelDecisionManager.java
+++ b/web/src/main/java/org/springframework/security/web/access/channel/ChannelDecisionManager.java
@@ -28,7 +28,6 @@ import javax.servlet.ServletException;
* Decides whether a web channel provides sufficient security.
*
* @author Ben Alex
- * @version $Id$
*/
public interface ChannelDecisionManager {
//~ Methods ========================================================================================================
diff --git a/web/src/main/java/org/springframework/security/web/access/channel/ChannelDecisionManagerImpl.java b/web/src/main/java/org/springframework/security/web/access/channel/ChannelDecisionManagerImpl.java
index b21fbfb044..5652587ec1 100644
--- a/web/src/main/java/org/springframework/security/web/access/channel/ChannelDecisionManagerImpl.java
+++ b/web/src/main/java/org/springframework/security/web/access/channel/ChannelDecisionManagerImpl.java
@@ -46,7 +46,6 @@ import javax.servlet.ServletException;
* skipped (see SEC-494, SEC-335).
*
* @author Ben Alex
- * @version $Id$
*/
public class ChannelDecisionManagerImpl implements ChannelDecisionManager, InitializingBean {
diff --git a/web/src/main/java/org/springframework/security/web/access/channel/ChannelEntryPoint.java b/web/src/main/java/org/springframework/security/web/access/channel/ChannelEntryPoint.java
index 41a7ddcd54..5a93e28d13 100644
--- a/web/src/main/java/org/springframework/security/web/access/channel/ChannelEntryPoint.java
+++ b/web/src/main/java/org/springframework/security/web/access/channel/ChannelEntryPoint.java
@@ -31,7 +31,6 @@ import javax.servlet.http.HttpServletResponse;
* this delegation.
*
* @author Ben Alex
- * @version $Id$
*/
public interface ChannelEntryPoint {
//~ Methods ========================================================================================================
diff --git a/web/src/main/java/org/springframework/security/web/access/channel/ChannelProcessingFilter.java b/web/src/main/java/org/springframework/security/web/access/channel/ChannelProcessingFilter.java
index 782da57496..98330c21bb 100644
--- a/web/src/main/java/org/springframework/security/web/access/channel/ChannelProcessingFilter.java
+++ b/web/src/main/java/org/springframework/security/web/access/channel/ChannelProcessingFilter.java
@@ -43,7 +43,6 @@ import org.springframework.web.filter.GenericFilterBean;
* the filter chain will not proceed.
insecureKeyword is REQUIRES_INSECURE_CHANNEL.
*
* @author Ben Alex
- * @version $Id$
*/
public class InsecureChannelProcessor implements InitializingBean, ChannelProcessor {
//~ Instance fields ================================================================================================
diff --git a/web/src/main/java/org/springframework/security/web/access/channel/RetryWithHttpEntryPoint.java b/web/src/main/java/org/springframework/security/web/access/channel/RetryWithHttpEntryPoint.java
index f1fbed5ea2..3375d94ded 100644
--- a/web/src/main/java/org/springframework/security/web/access/channel/RetryWithHttpEntryPoint.java
+++ b/web/src/main/java/org/springframework/security/web/access/channel/RetryWithHttpEntryPoint.java
@@ -23,7 +23,6 @@ package org.springframework.security.web.access.channel;
* other usage where a standard redirect would cause an issue.
*
* @author Ben Alex
- * @version $Id$
*/
public class RetryWithHttpEntryPoint extends AbstractRetryEntryPoint {
diff --git a/web/src/main/java/org/springframework/security/web/access/channel/RetryWithHttpsEntryPoint.java b/web/src/main/java/org/springframework/security/web/access/channel/RetryWithHttpsEntryPoint.java
index e11a07b010..11b11f6883 100644
--- a/web/src/main/java/org/springframework/security/web/access/channel/RetryWithHttpsEntryPoint.java
+++ b/web/src/main/java/org/springframework/security/web/access/channel/RetryWithHttpsEntryPoint.java
@@ -22,7 +22,6 @@ package org.springframework.security.web.access.channel;
* or other usage where a standard redirect would cause an issue.
*
* @author Ben Alex
- * @version $Id$
*/
public class RetryWithHttpsEntryPoint extends AbstractRetryEntryPoint {
diff --git a/web/src/main/java/org/springframework/security/web/access/channel/SecureChannelProcessor.java b/web/src/main/java/org/springframework/security/web/access/channel/SecureChannelProcessor.java
index b2a4aa5704..fe284b3a60 100644
--- a/web/src/main/java/org/springframework/security/web/access/channel/SecureChannelProcessor.java
+++ b/web/src/main/java/org/springframework/security/web/access/channel/SecureChannelProcessor.java
@@ -37,7 +37,6 @@ import org.springframework.util.Assert;
* The default secureKeyword is REQUIRES_SECURE_CHANNEL.
*
* @author Ben Alex
- * @version $Id$
*/
public class SecureChannelProcessor implements InitializingBean, ChannelProcessor {
//~ Instance fields ================================================================================================
diff --git a/web/src/main/java/org/springframework/security/web/access/expression/DefaultWebSecurityExpressionHandler.java b/web/src/main/java/org/springframework/security/web/access/expression/DefaultWebSecurityExpressionHandler.java
index 2fea10df66..11236a96a9 100644
--- a/web/src/main/java/org/springframework/security/web/access/expression/DefaultWebSecurityExpressionHandler.java
+++ b/web/src/main/java/org/springframework/security/web/access/expression/DefaultWebSecurityExpressionHandler.java
@@ -16,7 +16,6 @@ import org.springframework.security.web.FilterInvocation;
* from the implementation of the underlying expression objects.
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public class DefaultWebSecurityExpressionHandler implements WebSecurityExpressionHandler {
diff --git a/web/src/main/java/org/springframework/security/web/access/expression/ExpressionBasedFilterInvocationSecurityMetadataSource.java b/web/src/main/java/org/springframework/security/web/access/expression/ExpressionBasedFilterInvocationSecurityMetadataSource.java
index 72b9117a66..6686c89693 100644
--- a/web/src/main/java/org/springframework/security/web/access/expression/ExpressionBasedFilterInvocationSecurityMetadataSource.java
+++ b/web/src/main/java/org/springframework/security/web/access/expression/ExpressionBasedFilterInvocationSecurityMetadataSource.java
@@ -19,7 +19,6 @@ import org.springframework.util.Assert;
* Expression-based FilterInvocationSecurityMetadataSource.
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public final class ExpressionBasedFilterInvocationSecurityMetadataSource extends DefaultFilterInvocationSecurityMetadataSource {
diff --git a/web/src/main/java/org/springframework/security/web/access/expression/WebExpressionConfigAttribute.java b/web/src/main/java/org/springframework/security/web/access/expression/WebExpressionConfigAttribute.java
index e950338f97..6834a56479 100644
--- a/web/src/main/java/org/springframework/security/web/access/expression/WebExpressionConfigAttribute.java
+++ b/web/src/main/java/org/springframework/security/web/access/expression/WebExpressionConfigAttribute.java
@@ -7,7 +7,6 @@ import org.springframework.security.access.ConfigAttribute;
* Simple expression configuration attribute for use in web request authorizations.
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
class WebExpressionConfigAttribute implements ConfigAttribute {
diff --git a/web/src/main/java/org/springframework/security/web/access/expression/WebExpressionVoter.java b/web/src/main/java/org/springframework/security/web/access/expression/WebExpressionVoter.java
index 9df1fdc3d4..439c1fccf0 100644
--- a/web/src/main/java/org/springframework/security/web/access/expression/WebExpressionVoter.java
+++ b/web/src/main/java/org/springframework/security/web/access/expression/WebExpressionVoter.java
@@ -12,7 +12,6 @@ import org.springframework.security.web.FilterInvocation;
/**
* Voter which handles web authorisation decisions.
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public class WebExpressionVoter implements AccessDecisionVoter {
diff --git a/web/src/main/java/org/springframework/security/web/access/expression/WebSecurityExpressionRoot.java b/web/src/main/java/org/springframework/security/web/access/expression/WebSecurityExpressionRoot.java
index 2d8f2f05b2..3580cf182e 100644
--- a/web/src/main/java/org/springframework/security/web/access/expression/WebSecurityExpressionRoot.java
+++ b/web/src/main/java/org/springframework/security/web/access/expression/WebSecurityExpressionRoot.java
@@ -14,7 +14,6 @@ import org.springframework.util.StringUtils;
/**
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public class WebSecurityExpressionRoot extends SecurityExpressionRoot {
diff --git a/web/src/main/java/org/springframework/security/web/access/intercept/DefaultFilterInvocationSecurityMetadataSource.java b/web/src/main/java/org/springframework/security/web/access/intercept/DefaultFilterInvocationSecurityMetadataSource.java
index 4fb4e1b769..f65475c998 100644
--- a/web/src/main/java/org/springframework/security/web/access/intercept/DefaultFilterInvocationSecurityMetadataSource.java
+++ b/web/src/main/java/org/springframework/security/web/access/intercept/DefaultFilterInvocationSecurityMetadataSource.java
@@ -49,7 +49,6 @@ import org.springframework.security.web.util.UrlMatcher;
*
* @author Ben Alex
* @author Luke Taylor
- * @version $Id$
*/
public class DefaultFilterInvocationSecurityMetadataSource implements FilterInvocationSecurityMetadataSource {
diff --git a/web/src/main/java/org/springframework/security/web/access/intercept/FilterInvocationSecurityMetadataSource.java b/web/src/main/java/org/springframework/security/web/access/intercept/FilterInvocationSecurityMetadataSource.java
index b3fb6609ce..b6f4145812 100644
--- a/web/src/main/java/org/springframework/security/web/access/intercept/FilterInvocationSecurityMetadataSource.java
+++ b/web/src/main/java/org/springframework/security/web/access/intercept/FilterInvocationSecurityMetadataSource.java
@@ -24,6 +24,5 @@ import org.springframework.security.web.FilterInvocation;
* that are designed to perform lookups keyed on {@link FilterInvocation}s.
*
* @author Ben Alex
- * @version $Id$
*/
public interface FilterInvocationSecurityMetadataSource extends SecurityMetadataSource {}
diff --git a/web/src/main/java/org/springframework/security/web/access/intercept/FilterSecurityInterceptor.java b/web/src/main/java/org/springframework/security/web/access/intercept/FilterSecurityInterceptor.java
index f8ed6a0bd0..139549ee0a 100644
--- a/web/src/main/java/org/springframework/security/web/access/intercept/FilterSecurityInterceptor.java
+++ b/web/src/main/java/org/springframework/security/web/access/intercept/FilterSecurityInterceptor.java
@@ -39,7 +39,6 @@ import org.springframework.security.web.FilterInvocation;
* Refer to {@link AbstractSecurityInterceptor} for details on the workflow.
*
* @author Ben Alex
- * @version $Id$
*/
public class FilterSecurityInterceptor extends AbstractSecurityInterceptor implements Filter {
//~ Static fields/initializers =====================================================================================
diff --git a/web/src/main/java/org/springframework/security/web/access/intercept/RequestKey.java b/web/src/main/java/org/springframework/security/web/access/intercept/RequestKey.java
index 70fcaa3dda..3c699f4e08 100644
--- a/web/src/main/java/org/springframework/security/web/access/intercept/RequestKey.java
+++ b/web/src/main/java/org/springframework/security/web/access/intercept/RequestKey.java
@@ -2,7 +2,6 @@ package org.springframework.security.web.access.intercept;
/**
* @author Luke Taylor
- * @version $Id$
* @since 2.0
*/
public class RequestKey {
@@ -17,7 +16,7 @@ public class RequestKey {
this.url = url;
this.method = method;
}
-
+
String getUrl() {
return url;
}
@@ -29,7 +28,7 @@ public class RequestKey {
public int hashCode() {
int code = 31;
code ^= url.hashCode();
-
+
if (method != null) {
code ^= method.hashCode();
}
@@ -47,12 +46,12 @@ public class RequestKey {
if (!url.equals(key.url)) {
return false;
}
-
+
if (method == null) {
return key.method == null;
}
- return method.equals(key.method);
+ return method.equals(key.method);
}
public String toString() {
@@ -63,7 +62,7 @@ public class RequestKey {
}
sb.append(url);
sb.append("]");
-
+
return sb.toString();
}
}
diff --git a/web/src/main/java/org/springframework/security/web/authentication/AbstractAuthenticationProcessingFilter.java b/web/src/main/java/org/springframework/security/web/authentication/AbstractAuthenticationProcessingFilter.java
index 153b3372e8..b6dc548991 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/AbstractAuthenticationProcessingFilter.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/AbstractAuthenticationProcessingFilter.java
@@ -101,7 +101,6 @@ import org.springframework.web.filter.GenericFilterBean;
* sessionRegistry property to make sure that the session information is updated consistently.
*
* @author Ben Alex
- * @version $Id$
*/
public abstract class AbstractAuthenticationProcessingFilter extends GenericFilterBean implements
ApplicationEventPublisherAware, MessageSourceAware {
@@ -394,7 +393,7 @@ public abstract class AbstractAuthenticationProcessingFilter extends GenericFilt
/**
* The session handling strategy which will be invoked immediately after an authentication request is
- * successfully processed by the AuthenticationManager. Used, for example, to handle changing of the
+ * successfully processed by the AuthenticationManager. Used, for example, to handle changing of the
* session identifier to prevent session fixation attacks.
*
* @param sessionStrategy the implementation to use. If not set a null implementation is
diff --git a/web/src/main/java/org/springframework/security/web/authentication/AbstractAuthenticationTargetUrlRequestHandler.java b/web/src/main/java/org/springframework/security/web/authentication/AbstractAuthenticationTargetUrlRequestHandler.java
index afe3d1bc89..630d6a2895 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/AbstractAuthenticationTargetUrlRequestHandler.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/AbstractAuthenticationTargetUrlRequestHandler.java
@@ -41,7 +41,6 @@ import org.springframework.util.StringUtils;
*
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public abstract class AbstractAuthenticationTargetUrlRequestHandler {
diff --git a/web/src/main/java/org/springframework/security/web/authentication/AbstractProcessingFilter.java b/web/src/main/java/org/springframework/security/web/authentication/AbstractProcessingFilter.java
index 4bbfd58dee..b75cb7a108 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/AbstractProcessingFilter.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/AbstractProcessingFilter.java
@@ -6,7 +6,6 @@ package org.springframework.security.web.authentication;
* See {@link AbstractAuthenticationProcessingFilter}.
*
* @author Luke Taylor
- * @version $Id$
* @deprecated Use AbstractAuthenticationProcessingFilter instead.
*/
@Deprecated
diff --git a/web/src/main/java/org/springframework/security/web/authentication/AnonymousAuthenticationFilter.java b/web/src/main/java/org/springframework/security/web/authentication/AnonymousAuthenticationFilter.java
index c0049e5fd6..d5cfd1dec4 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/AnonymousAuthenticationFilter.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/AnonymousAuthenticationFilter.java
@@ -39,7 +39,6 @@ import org.springframework.web.filter.GenericFilterBean;
* populates it with one if needed.
*
* @author Ben Alex
- * @version $Id$
*/
public class AnonymousAuthenticationFilter extends GenericFilterBean implements InitializingBean {
diff --git a/web/src/main/java/org/springframework/security/web/authentication/AuthenticationFailureHandler.java b/web/src/main/java/org/springframework/security/web/authentication/AuthenticationFailureHandler.java
index c4c307132f..72a84d4a81 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/AuthenticationFailureHandler.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/AuthenticationFailureHandler.java
@@ -18,7 +18,6 @@ import org.springframework.security.core.AuthenticationException;
* user to change their password.
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public interface AuthenticationFailureHandler {
diff --git a/web/src/main/java/org/springframework/security/web/authentication/AuthenticationProcessingFilter.java b/web/src/main/java/org/springframework/security/web/authentication/AuthenticationProcessingFilter.java
index 78e2341f68..06dcd8bca0 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/AuthenticationProcessingFilter.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/AuthenticationProcessingFilter.java
@@ -6,7 +6,6 @@ package org.springframework.security.web.authentication;
* See {@link UsernamePasswordAuthenticationFilter}.
*
* @author Luke Taylor
- * @version $Id$
* @deprecated Use UsernamePasswordAuthenticationFilter instead.
*/
diff --git a/web/src/main/java/org/springframework/security/web/authentication/AuthenticationProcessingFilterEntryPoint.java b/web/src/main/java/org/springframework/security/web/authentication/AuthenticationProcessingFilterEntryPoint.java
index be8c4d5f4a..02bc133d76 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/AuthenticationProcessingFilterEntryPoint.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/AuthenticationProcessingFilterEntryPoint.java
@@ -6,7 +6,6 @@ package org.springframework.security.web.authentication;
* See {@link LoginUrlAuthenticationEntryPoint}.
*
* @author Luke Taylor
- * @version $Id$
* @deprecated Use LoginUrlAuthenticationEntryPoint instead.
*/
public class AuthenticationProcessingFilterEntryPoint extends LoginUrlAuthenticationEntryPoint{
diff --git a/web/src/main/java/org/springframework/security/web/authentication/AuthenticationSuccessHandler.java b/web/src/main/java/org/springframework/security/web/authentication/AuthenticationSuccessHandler.java
index 754ac612ac..ff71df2c80 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/AuthenticationSuccessHandler.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/AuthenticationSuccessHandler.java
@@ -17,7 +17,6 @@ import org.springframework.security.core.Authentication;
* (see {@link AbstractAuthenticationProcessingFilter} and subclasses). Other logic may also be included if required.
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
* @see
*/
diff --git a/web/src/main/java/org/springframework/security/web/authentication/ExceptionMappingAuthenticationFailureHandler.java b/web/src/main/java/org/springframework/security/web/authentication/ExceptionMappingAuthenticationFailureHandler.java
index 311b76baef..7d3ece9a12 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/ExceptionMappingAuthenticationFailureHandler.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/ExceptionMappingAuthenticationFailureHandler.java
@@ -22,7 +22,6 @@ import org.springframework.util.Assert;
* The map of exception names to URLs should be injected by setting the exceptionMappings property.
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public class ExceptionMappingAuthenticationFailureHandler extends SimpleUrlAuthenticationFailureHandler {
diff --git a/web/src/main/java/org/springframework/security/web/authentication/LoginUrlAuthenticationEntryPoint.java b/web/src/main/java/org/springframework/security/web/authentication/LoginUrlAuthenticationEntryPoint.java
index 29a037de8f..f8c4b03fe3 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/LoginUrlAuthenticationEntryPoint.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/LoginUrlAuthenticationEntryPoint.java
@@ -59,7 +59,6 @@ import org.springframework.util.StringUtils;
* @author colin sampaleanu
* @author Omri Spector
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public class LoginUrlAuthenticationEntryPoint implements AuthenticationEntryPoint, InitializingBean {
diff --git a/web/src/main/java/org/springframework/security/web/authentication/NullRememberMeServices.java b/web/src/main/java/org/springframework/security/web/authentication/NullRememberMeServices.java
index 5e9722c7c6..bf48e6e25c 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/NullRememberMeServices.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/NullRememberMeServices.java
@@ -26,7 +26,6 @@ import javax.servlet.http.HttpServletResponse;
* classes.
*
* @author Ben Alex
- * @version $Id$
*/
public class NullRememberMeServices implements RememberMeServices {
//~ Methods ========================================================================================================
diff --git a/web/src/main/java/org/springframework/security/web/authentication/RememberMeServices.java b/web/src/main/java/org/springframework/security/web/authentication/RememberMeServices.java
index 5b1661fdd3..cee2631601 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/RememberMeServices.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/RememberMeServices.java
@@ -39,7 +39,6 @@ import org.springframework.security.core.Authentication;
* capability, as this will be implementation specific and requires no hooks into Spring Security.
*
* @author Ben Alex
- * @version $Id$
*/
public interface RememberMeServices {
//~ Methods ========================================================================================================
diff --git a/web/src/main/java/org/springframework/security/web/authentication/SavedRequestAwareAuthenticationSuccessHandler.java b/web/src/main/java/org/springframework/security/web/authentication/SavedRequestAwareAuthenticationSuccessHandler.java
index 604d51a2f2..f578ead0b1 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/SavedRequestAwareAuthenticationSuccessHandler.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/SavedRequestAwareAuthenticationSuccessHandler.java
@@ -47,7 +47,6 @@ import org.springframework.util.StringUtils;
*
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public class SavedRequestAwareAuthenticationSuccessHandler extends SimpleUrlAuthenticationSuccessHandler {
diff --git a/web/src/main/java/org/springframework/security/web/authentication/SimpleUrlAuthenticationFailureHandler.java b/web/src/main/java/org/springframework/security/web/authentication/SimpleUrlAuthenticationFailureHandler.java
index 022f2937e6..573137add2 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/SimpleUrlAuthenticationFailureHandler.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/SimpleUrlAuthenticationFailureHandler.java
@@ -24,7 +24,6 @@ import org.springframework.util.Assert;
* the destination instead of a redirect.
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public class SimpleUrlAuthenticationFailureHandler implements AuthenticationFailureHandler {
diff --git a/web/src/main/java/org/springframework/security/web/authentication/SimpleUrlAuthenticationSuccessHandler.java b/web/src/main/java/org/springframework/security/web/authentication/SimpleUrlAuthenticationSuccessHandler.java
index 3cafe6af77..05e91eaa01 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/SimpleUrlAuthenticationSuccessHandler.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/SimpleUrlAuthenticationSuccessHandler.java
@@ -15,7 +15,6 @@ import org.springframework.security.core.Authentication;
* The logic used is that of the {@link AbstractAuthenticationTargetUrlRequestHandler parent class}.
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public class SimpleUrlAuthenticationSuccessHandler extends AbstractAuthenticationTargetUrlRequestHandler implements AuthenticationSuccessHandler {
diff --git a/web/src/main/java/org/springframework/security/web/authentication/UsernamePasswordAuthenticationFilter.java b/web/src/main/java/org/springframework/security/web/authentication/UsernamePasswordAuthenticationFilter.java
index 7639a64739..474e563f5e 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/UsernamePasswordAuthenticationFilter.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/UsernamePasswordAuthenticationFilter.java
@@ -43,7 +43,6 @@ import org.springframework.util.Assert;
* @author Ben Alex
* @author Colin Sampaleanu
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public class UsernamePasswordAuthenticationFilter extends AbstractAuthenticationProcessingFilter {
diff --git a/web/src/main/java/org/springframework/security/web/authentication/WebAuthenticationDetails.java b/web/src/main/java/org/springframework/security/web/authentication/WebAuthenticationDetails.java
index 126eaefabb..7572e65d7c 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/WebAuthenticationDetails.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/WebAuthenticationDetails.java
@@ -27,7 +27,6 @@ import javax.servlet.http.HttpSession;
* A holder of selected HTTP details related to a web authentication request.
*
* @author Ben Alex
- * @version $Id$
*/
public class WebAuthenticationDetails implements SessionIdentifierAware, Serializable {
//~ Instance fields ================================================================================================
diff --git a/web/src/main/java/org/springframework/security/web/authentication/WebAuthenticationDetailsSource.java b/web/src/main/java/org/springframework/security/web/authentication/WebAuthenticationDetailsSource.java
index 8d9b363fc3..a538a51d1d 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/WebAuthenticationDetailsSource.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/WebAuthenticationDetailsSource.java
@@ -1,71 +1,70 @@
-/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.security.web.authentication;
-
-import org.springframework.security.authentication.AuthenticationDetailsSource;
-import org.springframework.util.Assert;
-import org.springframework.util.ReflectionUtils;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.InvocationTargetException;
-
-import javax.servlet.http.HttpServletRequest;
-
-
-/**
- * Implementation of {@link AuthenticationDetailsSource} which builds the details object from
- * an HttpServletRequest object.
- *
- * By default will create an instance of WebAuthenticationDetails. Any object that accepts a
- * HttpServletRequest as its sole constructor can be used instead of this default.
- *
- * @author Ben Alex
- * @version $Id$
- */
-public class WebAuthenticationDetailsSource implements AuthenticationDetailsSource {
- //~ Instance fields ================================================================================================
-
- private Class> clazz = WebAuthenticationDetails.class;
-
- //~ Methods ========================================================================================================
-
- /**
- * @param context the HttpServletRequest object.
- */
- public Object buildDetails(Object context) {
- Assert.isInstanceOf(HttpServletRequest.class, context);
- try {
- Constructor> constructor = clazz.getConstructor(HttpServletRequest.class);
-
- return constructor.newInstance(context);
- } catch (NoSuchMethodException ex) {
- ReflectionUtils.handleReflectionException(ex);
- } catch (InvocationTargetException ex) {
- ReflectionUtils.handleReflectionException(ex);
- } catch (InstantiationException ex) {
- ReflectionUtils.handleReflectionException(ex);
- } catch (IllegalAccessException ex) {
- ReflectionUtils.handleReflectionException(ex);
- }
-
- return null;
- }
-
- public void setClazz(Class> clazz) {
- Assert.notNull(clazz, "Class required");
- this.clazz = clazz;
- }
-}
+/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.security.web.authentication;
+
+import org.springframework.security.authentication.AuthenticationDetailsSource;
+import org.springframework.util.Assert;
+import org.springframework.util.ReflectionUtils;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+
+import javax.servlet.http.HttpServletRequest;
+
+
+/**
+ * Implementation of {@link AuthenticationDetailsSource} which builds the details object from
+ * an HttpServletRequest object.
+ *
+ * By default will create an instance of WebAuthenticationDetails. Any object that accepts a
+ * HttpServletRequest as its sole constructor can be used instead of this default.
+ *
+ * @author Ben Alex
+ */
+public class WebAuthenticationDetailsSource implements AuthenticationDetailsSource {
+ //~ Instance fields ================================================================================================
+
+ private Class> clazz = WebAuthenticationDetails.class;
+
+ //~ Methods ========================================================================================================
+
+ /**
+ * @param context the HttpServletRequest object.
+ */
+ public Object buildDetails(Object context) {
+ Assert.isInstanceOf(HttpServletRequest.class, context);
+ try {
+ Constructor> constructor = clazz.getConstructor(HttpServletRequest.class);
+
+ return constructor.newInstance(context);
+ } catch (NoSuchMethodException ex) {
+ ReflectionUtils.handleReflectionException(ex);
+ } catch (InvocationTargetException ex) {
+ ReflectionUtils.handleReflectionException(ex);
+ } catch (InstantiationException ex) {
+ ReflectionUtils.handleReflectionException(ex);
+ } catch (IllegalAccessException ex) {
+ ReflectionUtils.handleReflectionException(ex);
+ }
+
+ return null;
+ }
+
+ public void setClazz(Class> clazz) {
+ Assert.notNull(clazz, "Class required");
+ this.clazz = clazz;
+ }
+}
diff --git a/web/src/main/java/org/springframework/security/web/authentication/logout/LogoutFilter.java b/web/src/main/java/org/springframework/security/web/authentication/logout/LogoutFilter.java
index 7de32e3b17..1ca909369b 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/logout/LogoutFilter.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/logout/LogoutFilter.java
@@ -1,149 +1,148 @@
-/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.security.web.authentication.logout;
-
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.List;
-
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.web.util.UrlUtils;
-import org.springframework.util.Assert;
-import org.springframework.util.StringUtils;
-import org.springframework.web.filter.GenericFilterBean;
-
-/**
- * Logs a principal out.
- *
- * Polls a series of {@link LogoutHandler}s. The handlers should be specified in the order they are required.
- * Generally you will want to call logout handlers TokenBasedRememberMeServices and
- * SecurityContextLogoutHandler (in that order).
- *
- * After logout, a redirect will be performed to the URL determined by either the configured
- * LogoutSuccessHandler or the logoutSuccessUrl, depending on which constructor was used.
- *
- * @author Ben Alex
- * @version $Id$
- */
-public class LogoutFilter extends GenericFilterBean {
-
- //~ Instance fields ================================================================================================
-
- private String filterProcessesUrl = "/j_spring_security_logout";
- private List
+ * Polls a series of {@link LogoutHandler}s. The handlers should be specified in the order they are required.
+ * Generally you will want to call logout handlers
+ * After logout, a redirect will be performed to the URL determined by either the configured
+ * LogoutSuccessHandler or the logoutSuccessUrl, depending on which constructor was used.
+ *
+ * @author Ben Alex
+ */
+public class LogoutFilter extends GenericFilterBean {
+
+ //~ Instance fields ================================================================================================
+
+ private String filterProcessesUrl = "/j_spring_security_logout";
+ private List
- * Called by {@link LogoutFilter}.
- *
- * @author Ben Alex
- * @version $Id$
- */
-public interface LogoutHandler {
- //~ Methods ========================================================================================================
-
- /**
- * Causes a logout to be completed. The method must complete successfully.
- *
- * @param request the HTTP request
- * @param response the HTTP response
- * @param authentication the current principal details
- */
- void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication);
-}
+/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.security.web.authentication.logout;
+
+import org.springframework.security.core.Authentication;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+
+/**
+ * Indicates a class that is able to participate in logout handling.
+ *
+ *
+ * Called by {@link LogoutFilter}.
+ *
+ * @author Ben Alex
+ */
+public interface LogoutHandler {
+ //~ Methods ========================================================================================================
+
+ /**
+ * Causes a logout to be completed. The method must complete successfully.
+ *
+ * @param request the HTTP request
+ * @param response the HTTP response
+ * @param authentication the current principal details
+ */
+ void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication);
+}
diff --git a/web/src/main/java/org/springframework/security/web/authentication/logout/LogoutSuccessHandler.java b/web/src/main/java/org/springframework/security/web/authentication/logout/LogoutSuccessHandler.java
index f154784b2e..1e4b1cbe0b 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/logout/LogoutSuccessHandler.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/logout/LogoutSuccessHandler.java
@@ -17,7 +17,6 @@ import org.springframework.security.core.Authentication;
* exceptions.
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public interface LogoutSuccessHandler {
diff --git a/web/src/main/java/org/springframework/security/web/authentication/logout/SecurityContextLogoutHandler.java b/web/src/main/java/org/springframework/security/web/authentication/logout/SecurityContextLogoutHandler.java
index c60fee46cb..512a65fe40 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/logout/SecurityContextLogoutHandler.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/logout/SecurityContextLogoutHandler.java
@@ -1,74 +1,73 @@
-/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.security.web.authentication.logout;
-
-
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.util.Assert;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-
-/**
- * Performs a logout by modifying the {@link org.springframework.security.core.context.SecurityContextHolder}.
- *
- * Will also invalidate the {@link HttpSession} if {@link #isInvalidateHttpSession()} is
+ * Will also invalidate the {@link HttpSession} if {@link #isInvalidateHttpSession()} is
- * The purpose is then only to extract the necessary information on the principal from the incoming request, rather
- * than to authenticate them. External authentication systems may provide this information via request data such as
- * headers or cookies which the pre-authentication system can extract. It is assumed that the external system is
- * responsible for the accuracy of the data and preventing the submission of forged values.
- *
- * Subclasses must implement the {@code getPreAuthenticatedPrincipal()} and {@code getPreAuthenticatedCredentials()}
- * methods. Subclasses of this filter are typically used in combination with a
- * {@code PreAuthenticatedAuthenticationProvider}, which is used to load additional data for the user.
- * This provider will reject null credentials, so the {@link #getPreAuthenticatedCredentials} method should not return
- * null for a valid principal.
- *
- * If the security context already contains an {@code Authentication} object (either from a invocation of the
- * filter or because of some other authentication mechanism), the filter will do nothing by default. You can force
- * it to check for a change in the principal by setting the {@link #setCheckForPrincipalChanges(boolean)
- * checkForPrincipalChanges} property.
- *
- * By default, the filter chain will proceed when an authentication attempt fails in order to allow other
- * authentication mechanisms to process the request. To reject the credentials immediately, set the
- * continueFilterChainOnUnsuccessfulAuthentication flag to false. The exception raised by the
- * AuthenticationManager will the be re-thrown. Note that this will not affect cases where the principal
- * returned by {@link #getPreAuthenticatedPrincipal} is null, when the chain will still proceed as normal.
- *
- * @author Luke Taylor
- * @author Ruud Senden
- * @since 2.0
- */
-public abstract class AbstractPreAuthenticatedProcessingFilter extends GenericFilterBean implements
- InitializingBean, ApplicationEventPublisherAware {
-
- private ApplicationEventPublisher eventPublisher = null;
- private AuthenticationDetailsSource authenticationDetailsSource = new WebAuthenticationDetailsSource();
- private AuthenticationManager authenticationManager = null;
- private boolean continueFilterChainOnUnsuccessfulAuthentication = true;
- private boolean checkForPrincipalChanges;
- private boolean invalidateSessionOnPrincipalChange = true;
-
- /**
- * Check whether all required properties have been set.
- */
- @Override
- public void afterPropertiesSet() {
- Assert.notNull(authenticationManager, "An AuthenticationManager must be set");
- }
-
- /**
- * Try to authenticate a pre-authenticated user with Spring Security if the user has not yet been authenticated.
- */
- public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
- throws IOException, ServletException {
-
- if (logger.isDebugEnabled()) {
- logger.debug("Checking secure context token: " + SecurityContextHolder.getContext().getAuthentication());
- }
-
- if (requiresAuthentication((HttpServletRequest) request)) {
- doAuthenticate((HttpServletRequest) request, (HttpServletResponse) response);
- }
-
- chain.doFilter(request, response);
- }
-
- /**
- * Do the actual authentication for a pre-authenticated user.
- */
- private void doAuthenticate(HttpServletRequest request, HttpServletResponse response) {
- Authentication authResult = null;
-
- Object principal = getPreAuthenticatedPrincipal(request);
- Object credentials = getPreAuthenticatedCredentials(request);
-
- if (principal == null) {
- if (logger.isDebugEnabled()) {
- logger.debug("No pre-authenticated principal found in request");
- }
-
- return;
- }
-
- if (logger.isDebugEnabled()) {
- logger.debug("preAuthenticatedPrincipal = " + principal + ", trying to authenticate");
- }
-
- try {
- PreAuthenticatedAuthenticationToken authRequest = new PreAuthenticatedAuthenticationToken(principal, credentials);
- authRequest.setDetails(authenticationDetailsSource.buildDetails(request));
- authResult = authenticationManager.authenticate(authRequest);
- successfulAuthentication(request, response, authResult);
- } catch (AuthenticationException failed) {
- unsuccessfulAuthentication(request, response, failed);
-
- if (!continueFilterChainOnUnsuccessfulAuthentication) {
- throw failed;
- }
- }
- }
-
- private boolean requiresAuthentication(HttpServletRequest request) {
- Authentication currentUser = SecurityContextHolder.getContext().getAuthentication();
-
- if (currentUser == null) {
- return true;
- }
-
- Object principal = getPreAuthenticatedPrincipal(request);
- if (checkForPrincipalChanges &&
- !currentUser.getName().equals(principal)) {
- logger.debug("Pre-authenticated principal has changed to " + principal + " and will be reauthenticated");
-
- if (invalidateSessionOnPrincipalChange) {
- HttpSession session = request.getSession(false);
-
- if (session != null) {
- logger.debug("Invalidating existing session");
- session.invalidate();
- }
- }
-
- return true;
- }
-
- return false;
- }
-
- /**
- * Puts the
+ * The purpose is then only to extract the necessary information on the principal from the incoming request, rather
+ * than to authenticate them. External authentication systems may provide this information via request data such as
+ * headers or cookies which the pre-authentication system can extract. It is assumed that the external system is
+ * responsible for the accuracy of the data and preventing the submission of forged values.
+ *
+ * Subclasses must implement the {@code getPreAuthenticatedPrincipal()} and {@code getPreAuthenticatedCredentials()}
+ * methods. Subclasses of this filter are typically used in combination with a
+ * {@code PreAuthenticatedAuthenticationProvider}, which is used to load additional data for the user.
+ * This provider will reject null credentials, so the {@link #getPreAuthenticatedCredentials} method should not return
+ * null for a valid principal.
+ *
+ * If the security context already contains an {@code Authentication} object (either from a invocation of the
+ * filter or because of some other authentication mechanism), the filter will do nothing by default. You can force
+ * it to check for a change in the principal by setting the {@link #setCheckForPrincipalChanges(boolean)
+ * checkForPrincipalChanges} property.
+ *
+ * By default, the filter chain will proceed when an authentication attempt fails in order to allow other
+ * authentication mechanisms to process the request. To reject the credentials immediately, set the
+ * continueFilterChainOnUnsuccessfulAuthentication flag to false. The exception raised by the
+ * AuthenticationManager will the be re-thrown. Note that this will not affect cases where the principal
+ * returned by {@link #getPreAuthenticatedPrincipal} is null, when the chain will still proceed as normal.
+ *
+ * @author Luke Taylor
+ * @author Ruud Senden
+ * @since 2.0
+ */
+public abstract class AbstractPreAuthenticatedProcessingFilter extends GenericFilterBean implements
+ InitializingBean, ApplicationEventPublisherAware {
+
+ private ApplicationEventPublisher eventPublisher = null;
+ private AuthenticationDetailsSource authenticationDetailsSource = new WebAuthenticationDetailsSource();
+ private AuthenticationManager authenticationManager = null;
+ private boolean continueFilterChainOnUnsuccessfulAuthentication = true;
+ private boolean checkForPrincipalChanges;
+ private boolean invalidateSessionOnPrincipalChange = true;
+
+ /**
+ * Check whether all required properties have been set.
+ */
+ @Override
+ public void afterPropertiesSet() {
+ Assert.notNull(authenticationManager, "An AuthenticationManager must be set");
+ }
+
+ /**
+ * Try to authenticate a pre-authenticated user with Spring Security if the user has not yet been authenticated.
+ */
+ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
+ throws IOException, ServletException {
+
+ if (logger.isDebugEnabled()) {
+ logger.debug("Checking secure context token: " + SecurityContextHolder.getContext().getAuthentication());
+ }
+
+ if (requiresAuthentication((HttpServletRequest) request)) {
+ doAuthenticate((HttpServletRequest) request, (HttpServletResponse) response);
+ }
+
+ chain.doFilter(request, response);
+ }
+
+ /**
+ * Do the actual authentication for a pre-authenticated user.
+ */
+ private void doAuthenticate(HttpServletRequest request, HttpServletResponse response) {
+ Authentication authResult = null;
+
+ Object principal = getPreAuthenticatedPrincipal(request);
+ Object credentials = getPreAuthenticatedCredentials(request);
+
+ if (principal == null) {
+ if (logger.isDebugEnabled()) {
+ logger.debug("No pre-authenticated principal found in request");
+ }
+
+ return;
+ }
+
+ if (logger.isDebugEnabled()) {
+ logger.debug("preAuthenticatedPrincipal = " + principal + ", trying to authenticate");
+ }
+
+ try {
+ PreAuthenticatedAuthenticationToken authRequest = new PreAuthenticatedAuthenticationToken(principal, credentials);
+ authRequest.setDetails(authenticationDetailsSource.buildDetails(request));
+ authResult = authenticationManager.authenticate(authRequest);
+ successfulAuthentication(request, response, authResult);
+ } catch (AuthenticationException failed) {
+ unsuccessfulAuthentication(request, response, failed);
+
+ if (!continueFilterChainOnUnsuccessfulAuthentication) {
+ throw failed;
+ }
+ }
+ }
+
+ private boolean requiresAuthentication(HttpServletRequest request) {
+ Authentication currentUser = SecurityContextHolder.getContext().getAuthentication();
+
+ if (currentUser == null) {
+ return true;
+ }
+
+ Object principal = getPreAuthenticatedPrincipal(request);
+ if (checkForPrincipalChanges &&
+ !currentUser.getName().equals(principal)) {
+ logger.debug("Pre-authenticated principal has changed to " + principal + " and will be reauthenticated");
+
+ if (invalidateSessionOnPrincipalChange) {
+ HttpSession session = request.getSession(false);
+
+ if (session != null) {
+ logger.debug("Invalidating existing session");
+ session.invalidate();
+ }
+ }
+
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Puts the
- * Processes a pre-authenticated authentication request. The request will
- * typically originate from a {@link org.springframework.security.web.authentication.preauth.AbstractPreAuthenticatedProcessingFilter}
- * subclass.
- *
- *
- * This authentication provider will not perform any checks on authentication
- * requests, as they should already be pre-authenticated. However, the
- * AuthenticationUserDetailsService implementation may still throw a UsernameNotFoundException, for example.
- *
- * @author Ruud Senden
- * @version $Id$
- * @since 2.0
- */
-public class PreAuthenticatedAuthenticationProvider implements AuthenticationProvider, InitializingBean, Ordered {
- private static final Log logger = LogFactory.getLog(PreAuthenticatedAuthenticationProvider.class);
-
- private AuthenticationUserDetailsService preAuthenticatedUserDetailsService = null;
- private UserDetailsChecker userDetailsChecker = new AccountStatusUserDetailsChecker();
- private boolean throwExceptionWhenTokenRejected = false;
-
- private int order = -1; // default: same as non-ordered
-
- /**
- * Check whether all required properties have been set.
- */
- public void afterPropertiesSet() {
- Assert.notNull(preAuthenticatedUserDetailsService, "An AuthenticationUserDetailsService must be set");
- }
-
- /**
- * Authenticate the given PreAuthenticatedAuthenticationToken.
- *
- * If the principal contained in the authentication object is null, the request will be ignored to allow other
- * providers to authenticate it.
- */
- public Authentication authenticate(Authentication authentication) throws AuthenticationException {
- if (!supports(authentication.getClass())) {
- return null;
- }
-
- if (logger.isDebugEnabled()) {
- logger.debug("PreAuthenticated authentication request: " + authentication);
- }
-
- if (authentication.getPrincipal() == null) {
- logger.debug("No pre-authenticated principal found in request.");
-
- if (throwExceptionWhenTokenRejected) {
- throw new BadCredentialsException("No pre-authenticated principal found in request.");
- }
- return null;
- }
-
- if (authentication.getCredentials() == null) {
- logger.debug("No pre-authenticated credentials found in request.");
-
- if (throwExceptionWhenTokenRejected) {
- throw new BadCredentialsException("No pre-authenticated credentials found in request.");
- }
- return null;
- }
-
- UserDetails ud = preAuthenticatedUserDetailsService.loadUserDetails(authentication);
-
- userDetailsChecker.check(ud);
-
- PreAuthenticatedAuthenticationToken result =
- new PreAuthenticatedAuthenticationToken(ud, authentication.getCredentials(), ud.getAuthorities());
- result.setDetails(authentication.getDetails());
-
- return result;
- }
-
- /**
- * Indicate that this provider only supports PreAuthenticatedAuthenticationToken (sub)classes.
- */
- public boolean supports(Class extends Object> authentication) {
- return PreAuthenticatedAuthenticationToken.class.isAssignableFrom(authentication);
- }
-
- /**
- * Set the AuthenticatedUserDetailsServices to be used.
- *
- * @param aPreAuthenticatedUserDetailsService
- */
- public void setPreAuthenticatedUserDetailsService(AuthenticationUserDetailsService aPreAuthenticatedUserDetailsService) {
- this.preAuthenticatedUserDetailsService = aPreAuthenticatedUserDetailsService;
- }
-
- public int getOrder() {
- return order;
- }
-
- public void setOrder(int i) {
- order = i;
- }
-
- /**
- * If true, causes the provider to throw a BadCredentialsException if the presented authentication
- * request is invalid (contains a null principal or credentials). Otherwise it will just return
- * null. Defaults to false.
- */
- public void setThrowExceptionWhenTokenRejected(boolean throwExceptionWhenTokenRejected) {
- this.throwExceptionWhenTokenRejected = throwExceptionWhenTokenRejected;
- }
-
- /**
- * Sets the strategy which will be used to validate the loaded UserDetails object
- * for the user. Defaults to an {@link AccountStatusUserDetailsChecker}.
- * @param userDetailsChecker
- */
- public void setUserDetailsChecker(UserDetailsChecker userDetailsChecker) {
- Assert.notNull(userDetailsChecker, "userDetailsChacker cannot be null");
- this.userDetailsChecker = userDetailsChecker;
- }
-}
+package org.springframework.security.web.authentication.preauth;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.core.Ordered;
+import org.springframework.security.authentication.AccountStatusUserDetailsChecker;
+import org.springframework.security.authentication.AuthenticationProvider;
+import org.springframework.security.authentication.BadCredentialsException;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.core.userdetails.AuthenticationUserDetailsService;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UserDetailsChecker;
+import org.springframework.util.Assert;
+
+/**
+ *
+ * Processes a pre-authenticated authentication request. The request will
+ * typically originate from a {@link org.springframework.security.web.authentication.preauth.AbstractPreAuthenticatedProcessingFilter}
+ * subclass.
+ *
+ *
+ * This authentication provider will not perform any checks on authentication
+ * requests, as they should already be pre-authenticated. However, the
+ * AuthenticationUserDetailsService implementation may still throw a UsernameNotFoundException, for example.
+ *
+ * @author Ruud Senden
+ * @since 2.0
+ */
+public class PreAuthenticatedAuthenticationProvider implements AuthenticationProvider, InitializingBean, Ordered {
+ private static final Log logger = LogFactory.getLog(PreAuthenticatedAuthenticationProvider.class);
+
+ private AuthenticationUserDetailsService preAuthenticatedUserDetailsService = null;
+ private UserDetailsChecker userDetailsChecker = new AccountStatusUserDetailsChecker();
+ private boolean throwExceptionWhenTokenRejected = false;
+
+ private int order = -1; // default: same as non-ordered
+
+ /**
+ * Check whether all required properties have been set.
+ */
+ public void afterPropertiesSet() {
+ Assert.notNull(preAuthenticatedUserDetailsService, "An AuthenticationUserDetailsService must be set");
+ }
+
+ /**
+ * Authenticate the given PreAuthenticatedAuthenticationToken.
+ *
+ * If the principal contained in the authentication object is null, the request will be ignored to allow other
+ * providers to authenticate it.
+ */
+ public Authentication authenticate(Authentication authentication) throws AuthenticationException {
+ if (!supports(authentication.getClass())) {
+ return null;
+ }
+
+ if (logger.isDebugEnabled()) {
+ logger.debug("PreAuthenticated authentication request: " + authentication);
+ }
+
+ if (authentication.getPrincipal() == null) {
+ logger.debug("No pre-authenticated principal found in request.");
+
+ if (throwExceptionWhenTokenRejected) {
+ throw new BadCredentialsException("No pre-authenticated principal found in request.");
+ }
+ return null;
+ }
+
+ if (authentication.getCredentials() == null) {
+ logger.debug("No pre-authenticated credentials found in request.");
+
+ if (throwExceptionWhenTokenRejected) {
+ throw new BadCredentialsException("No pre-authenticated credentials found in request.");
+ }
+ return null;
+ }
+
+ UserDetails ud = preAuthenticatedUserDetailsService.loadUserDetails(authentication);
+
+ userDetailsChecker.check(ud);
+
+ PreAuthenticatedAuthenticationToken result =
+ new PreAuthenticatedAuthenticationToken(ud, authentication.getCredentials(), ud.getAuthorities());
+ result.setDetails(authentication.getDetails());
+
+ return result;
+ }
+
+ /**
+ * Indicate that this provider only supports PreAuthenticatedAuthenticationToken (sub)classes.
+ */
+ public boolean supports(Class extends Object> authentication) {
+ return PreAuthenticatedAuthenticationToken.class.isAssignableFrom(authentication);
+ }
+
+ /**
+ * Set the AuthenticatedUserDetailsServices to be used.
+ *
+ * @param aPreAuthenticatedUserDetailsService
+ */
+ public void setPreAuthenticatedUserDetailsService(AuthenticationUserDetailsService aPreAuthenticatedUserDetailsService) {
+ this.preAuthenticatedUserDetailsService = aPreAuthenticatedUserDetailsService;
+ }
+
+ public int getOrder() {
+ return order;
+ }
+
+ public void setOrder(int i) {
+ order = i;
+ }
+
+ /**
+ * If true, causes the provider to throw a BadCredentialsException if the presented authentication
+ * request is invalid (contains a null principal or credentials). Otherwise it will just return
+ * null. Defaults to false.
+ */
+ public void setThrowExceptionWhenTokenRejected(boolean throwExceptionWhenTokenRejected) {
+ this.throwExceptionWhenTokenRejected = throwExceptionWhenTokenRejected;
+ }
+
+ /**
+ * Sets the strategy which will be used to validate the loaded UserDetails object
+ * for the user. Defaults to an {@link AccountStatusUserDetailsChecker}.
+ * @param userDetailsChecker
+ */
+ public void setUserDetailsChecker(UserDetailsChecker userDetailsChecker) {
+ Assert.notNull(userDetailsChecker, "userDetailsChacker cannot be null");
+ this.userDetailsChecker = userDetailsChecker;
+ }
+}
diff --git a/web/src/main/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationToken.java b/web/src/main/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationToken.java
index f9dfe6ad59..5248bd9fb2 100755
--- a/web/src/main/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationToken.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationToken.java
@@ -1,73 +1,73 @@
-package org.springframework.security.web.authentication.preauth;
-
-import java.util.Collection;
-
-import org.springframework.security.authentication.AbstractAuthenticationToken;
-import org.springframework.security.core.GrantedAuthority;
-
-
-/**
- * {@link org.springframework.security.core.Authentication} implementation for pre-authenticated
- * authentication.
- *
- * @author Ruud Senden
- * @since 2.0
- */
-public class PreAuthenticatedAuthenticationToken extends AbstractAuthenticationToken {
- private final Object principal;
- private final Object credentials;
-
- /**
- * Constructor used for an authentication request. The {@link
- * org.springframework.security.core.Authentication#isAuthenticated()} will return
- *
- * This AuthenticationUserDetailsService implementation creates a UserDetails
- * object based solely on the information contained in the given
- * PreAuthenticatedAuthenticationToken. The user name is set to the name as
- * returned by PreAuthenticatedAuthenticationToken.getName(), the password is
- * set to a fixed dummy value (it will not be used by the
- * PreAuthenticatedAuthenticationProvider anyway), and the Granted Authorities
- * are retrieved from the details object as returned by
- * PreAuthenticatedAuthenticationToken.getDetails().
- *
- *
- * The details object as returned by PreAuthenticatedAuthenticationToken.getDetails() must implement the
- * {@link GrantedAuthoritiesContainer} interface for this implementation to work.
- *
- * @author Ruud Senden
- * @since 2.0
- */
-public class PreAuthenticatedGrantedAuthoritiesUserDetailsService implements AuthenticationUserDetailsService {
- /**
- * Get a UserDetails object based on the user name contained in the given
- * token, and the GrantedAuthorities as returned by the
- * GrantedAuthoritiesContainer implementation as returned by
- * the token.getDetails() method.
- */
- public final UserDetails loadUserDetails(Authentication token) throws AuthenticationException {
- Assert.notNull(token.getDetails());
- Assert.isInstanceOf(GrantedAuthoritiesContainer.class, token.getDetails());
- List
+ * This AuthenticationUserDetailsService implementation creates a UserDetails
+ * object based solely on the information contained in the given
+ * PreAuthenticatedAuthenticationToken. The user name is set to the name as
+ * returned by PreAuthenticatedAuthenticationToken.getName(), the password is
+ * set to a fixed dummy value (it will not be used by the
+ * PreAuthenticatedAuthenticationProvider anyway), and the Granted Authorities
+ * are retrieved from the details object as returned by
+ * PreAuthenticatedAuthenticationToken.getDetails().
+ *
+ *
+ * The details object as returned by PreAuthenticatedAuthenticationToken.getDetails() must implement the
+ * {@link GrantedAuthoritiesContainer} interface for this implementation to work.
+ *
+ * @author Ruud Senden
+ * @since 2.0
+ */
+public class PreAuthenticatedGrantedAuthoritiesUserDetailsService implements AuthenticationUserDetailsService {
+ /**
+ * Get a UserDetails object based on the user name contained in the given
+ * token, and the GrantedAuthorities as returned by the
+ * GrantedAuthoritiesContainer implementation as returned by
+ * the token.getDetails() method.
+ */
+ public final UserDetails loadUserDetails(Authentication token) throws AuthenticationException {
+ Assert.notNull(token.getDetails());
+ Assert.isInstanceOf(GrantedAuthoritiesContainer.class, token.getDetails());
+ List Configured against the {@link SwitchUserFilter}.
*
* @author Ben Alex
- * @version $Id$
*
*/
public interface SwitchUserAuthorityChanger {
diff --git a/web/src/main/java/org/springframework/security/web/authentication/switchuser/SwitchUserFilter.java b/web/src/main/java/org/springframework/security/web/authentication/switchuser/SwitchUserFilter.java
index 5f9dc1b895..f9ef762404 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/switchuser/SwitchUserFilter.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/switchuser/SwitchUserFilter.java
@@ -95,7 +95,6 @@ import org.springframework.web.filter.GenericFilterBean;
*
*
* @author Mark St.Godard
- * @version $Id$
*
* @see org.springframework.security.web.authentication.switchuser.SwitchUserGrantedAuthority
*/
diff --git a/web/src/main/java/org/springframework/security/web/authentication/switchuser/SwitchUserGrantedAuthority.java b/web/src/main/java/org/springframework/security/web/authentication/switchuser/SwitchUserGrantedAuthority.java
index 14fbe96ee4..a8d2a85089 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/switchuser/SwitchUserGrantedAuthority.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/switchuser/SwitchUserGrantedAuthority.java
@@ -24,7 +24,6 @@ import org.springframework.security.core.authority.GrantedAuthorityImpl;
* the This class is used by {@link
- * org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter} and {@link org.springframework.security.web.savedrequest.SavedRequestAwareWrapper} to
- * reproduce the request after successful authentication. An instance of this class is stored at the time of an
- * authentication exception by {@link org.springframework.security.web.access.ExceptionTranslationFilter}. IMPLEMENTATION NOTE: It is assumed that this object is accessed only from the context of a single
- * thread, so no synchronization around internal collection classes is performed. This class is based on code in Apache Tomcat.
- * All URL arguments are considered but not cookies, locales, headers or parameters.
- *
- *
- */
- public boolean doesRequestMatch(HttpServletRequest request, PortResolver portResolver) {
-
- if (!propertyEquals("pathInfo", this.pathInfo, request.getPathInfo())) {
- return false;
- }
-
- if (!propertyEquals("queryString", this.queryString, request.getQueryString())) {
- return false;
- }
-
- if (!propertyEquals("requestURI", this.requestURI, request.getRequestURI())) {
- return false;
- }
-
- if (!"GET".equals(request.getMethod()) && "GET".equals(method)) {
- // A save GET should not match an incoming non-GET method
- return false;
- }
-
- if (!propertyEquals("serverPort", new Integer(this.serverPort), new Integer(portResolver.getServerPort(request))))
- {
- return false;
- }
-
- if (!propertyEquals("requestURL", this.requestURL, request.getRequestURL().toString())) {
- return false;
- }
-
- if (!propertyEquals("scheme", this.scheme, request.getScheme())) {
- return false;
- }
-
- if (!propertyEquals("serverName", this.serverName, request.getServerName())) {
- return false;
- }
-
- if (!propertyEquals("contextPath", this.contextPath, request.getContextPath())) {
- return false;
- }
-
- if (!propertyEquals("servletPath", this.servletPath, request.getServletPath())) {
- return false;
- }
-
- return true;
- }
-
- public String getContextPath() {
- return contextPath;
- }
-
- public List This class is used by {@link
+ * org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter} and {@link org.springframework.security.web.savedrequest.SavedRequestAwareWrapper} to
+ * reproduce the request after successful authentication. An instance of this class is stored at the time of an
+ * authentication exception by {@link org.springframework.security.web.access.ExceptionTranslationFilter}. IMPLEMENTATION NOTE: It is assumed that this object is accessed only from the context of a single
+ * thread, so no synchronization around internal collection classes is performed. This class is based on code in Apache Tomcat.
+ * All URL arguments are considered but not cookies, locales, headers or parameters.
+ *
+ *
+ */
+ public boolean doesRequestMatch(HttpServletRequest request, PortResolver portResolver) {
+
+ if (!propertyEquals("pathInfo", this.pathInfo, request.getPathInfo())) {
+ return false;
+ }
+
+ if (!propertyEquals("queryString", this.queryString, request.getQueryString())) {
+ return false;
+ }
+
+ if (!propertyEquals("requestURI", this.requestURI, request.getRequestURI())) {
+ return false;
+ }
+
+ if (!"GET".equals(request.getMethod()) && "GET".equals(method)) {
+ // A save GET should not match an incoming non-GET method
+ return false;
+ }
+
+ if (!propertyEquals("serverPort", new Integer(this.serverPort), new Integer(portResolver.getServerPort(request))))
+ {
+ return false;
+ }
+
+ if (!propertyEquals("requestURL", this.requestURL, request.getRequestURL().toString())) {
+ return false;
+ }
+
+ if (!propertyEquals("scheme", this.scheme, request.getScheme())) {
+ return false;
+ }
+
+ if (!propertyEquals("serverName", this.serverName, request.getServerName())) {
+ return false;
+ }
+
+ if (!propertyEquals("contextPath", this.contextPath, request.getContextPath())) {
+ return false;
+ }
+
+ if (!propertyEquals("servletPath", this.servletPath, request.getServletPath())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ public String getContextPath() {
+ return contextPath;
+ }
+
+ public List Adapter that wraps an Constructors are provided to easily create such wrappers. This class is based on code in Apache Tomcat. Adapter that wraps an Constructors are provided to easily create such wrappers. This class is based on code in Apache Tomcat.
- * This class is based on code in Apache Tomcat.
- *
- * @author Remy Maucherat
- * @author Andrey Grebnev
- * @version $Id$
- */
-public class FastHttpDateFormat {
- //~ Static fields/initializers =====================================================================================
-
- /** HTTP date format. */
- protected static final SimpleDateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.US);
-
- /** The set of SimpleDateFormat formats to use in
+ * This class is based on code in Apache Tomcat.
+ *
+ * @author Remy Maucherat
+ * @author Andrey Grebnev
+ */
+public class FastHttpDateFormat {
+ //~ Static fields/initializers =====================================================================================
+
+ /** HTTP date format. */
+ protected static final SimpleDateFormat format = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.US);
+
+ /** The set of SimpleDateFormat formats to use in Placed into a separate class for visibility, so that changes to
- * URL formatting conventions will affect all users.
- * Note that the server port will not be shown if it is the default server port for HTTP or HTTPS
- * (80 and 443 respectively).
- *
- * @return the full URL, suitable for redirects (not decoded).
- */
- public static String buildFullRequestUrl(String scheme, String serverName, int serverPort, String requestURI,
- String queryString) {
-
- scheme = scheme.toLowerCase();
-
- StringBuilder url = new StringBuilder();
- url.append(scheme).append("://").append(serverName);
-
- // Only add port if not default
- if ("http".equals(scheme)) {
- if (serverPort != 80) {
- url.append(":").append(serverPort);
- }
- } else if ("https".equals(scheme)) {
- if (serverPort != 443) {
- url.append(":").append(serverPort);
- }
- }
-
- // Use the requestURI as it is encoded (RFC 3986) and hence suitable for redirects.
- url.append(requestURI);
-
- if (queryString != null) {
- url.append("?").append(queryString);
- }
-
- return url.toString();
- }
-
- /**
- * Obtains the web application-specific fragment of the request URL.
- *
- * Under normal spec conditions,
- * Placed into a separate class for visibility, so that changes to
+ * URL formatting conventions will affect all users.
+ * Note that the server port will not be shown if it is the default server port for HTTP or HTTPS
+ * (80 and 443 respectively).
+ *
+ * @return the full URL, suitable for redirects (not decoded).
+ */
+ public static String buildFullRequestUrl(String scheme, String serverName, int serverPort, String requestURI,
+ String queryString) {
+
+ scheme = scheme.toLowerCase();
+
+ StringBuilder url = new StringBuilder();
+ url.append(scheme).append("://").append(serverName);
+
+ // Only add port if not default
+ if ("http".equals(scheme)) {
+ if (serverPort != 80) {
+ url.append(":").append(serverPort);
+ }
+ } else if ("https".equals(scheme)) {
+ if (serverPort != 443) {
+ url.append(":").append(serverPort);
+ }
+ }
+
+ // Use the requestURI as it is encoded (RFC 3986) and hence suitable for redirects.
+ url.append(requestURI);
+
+ if (queryString != null) {
+ url.append("?").append(queryString);
+ }
+
+ return url.toString();
+ }
+
+ /**
+ * Obtains the web application-specific fragment of the request URL.
+ *
+ * Under normal spec conditions,
+ * true if logout should occur, false otherwise
- */
- protected boolean requiresLogout(HttpServletRequest request, HttpServletResponse response) {
- String uri = request.getRequestURI();
- int pathParamIndex = uri.indexOf(';');
-
- if (pathParamIndex > 0) {
- // strip everything from the first semi-colon
- uri = uri.substring(0, pathParamIndex);
- }
-
- int queryParamIndex = uri.indexOf('?');
-
- if (queryParamIndex > 0) {
- // strip everything from the first question mark
- uri = uri.substring(0, queryParamIndex);
- }
-
- if ("".equals(request.getContextPath())) {
- return uri.endsWith(filterProcessesUrl);
- }
-
- return uri.endsWith(request.getContextPath() + filterProcessesUrl);
- }
-
- public void setFilterProcessesUrl(String filterProcessesUrl) {
- Assert.isTrue(UrlUtils.isValidRedirectUrl(filterProcessesUrl), filterProcessesUrl + " isn't a valid value for" +
- " 'filterProcessesUrl'");
- this.filterProcessesUrl = filterProcessesUrl;
- }
-
- protected String getFilterProcessesUrl() {
- return filterProcessesUrl;
- }
-}
+/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.security.web.authentication.logout;
+
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.List;
+
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.web.util.UrlUtils;
+import org.springframework.util.Assert;
+import org.springframework.util.StringUtils;
+import org.springframework.web.filter.GenericFilterBean;
+
+/**
+ * Logs a principal out.
+ * TokenBasedRememberMeServices and
+ * SecurityContextLogoutHandler (in that order).
+ * true if logout should occur, false otherwise
+ */
+ protected boolean requiresLogout(HttpServletRequest request, HttpServletResponse response) {
+ String uri = request.getRequestURI();
+ int pathParamIndex = uri.indexOf(';');
+
+ if (pathParamIndex > 0) {
+ // strip everything from the first semi-colon
+ uri = uri.substring(0, pathParamIndex);
+ }
+
+ int queryParamIndex = uri.indexOf('?');
+
+ if (queryParamIndex > 0) {
+ // strip everything from the first question mark
+ uri = uri.substring(0, queryParamIndex);
+ }
+
+ if ("".equals(request.getContextPath())) {
+ return uri.endsWith(filterProcessesUrl);
+ }
+
+ return uri.endsWith(request.getContextPath() + filterProcessesUrl);
+ }
+
+ public void setFilterProcessesUrl(String filterProcessesUrl) {
+ Assert.isTrue(UrlUtils.isValidRedirectUrl(filterProcessesUrl), filterProcessesUrl + " isn't a valid value for" +
+ " 'filterProcessesUrl'");
+ this.filterProcessesUrl = filterProcessesUrl;
+ }
+
+ protected String getFilterProcessesUrl() {
+ return filterProcessesUrl;
+ }
+}
diff --git a/web/src/main/java/org/springframework/security/web/authentication/logout/LogoutHandler.java b/web/src/main/java/org/springframework/security/web/authentication/logout/LogoutHandler.java
index c7195b14f0..ae84d5e0dc 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/logout/LogoutHandler.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/logout/LogoutHandler.java
@@ -1,44 +1,43 @@
-/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.security.web.authentication.logout;
-
-import org.springframework.security.core.Authentication;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-
-/**
- * Indicates a class that is able to participate in logout handling.
- *
- * true and the
- * session is not null.
- *
- * @author Ben Alex
- * @version $Id$
- */
-public class SecurityContextLogoutHandler implements LogoutHandler {
- private boolean invalidateHttpSession = true;
-
- //~ Methods ========================================================================================================
-
- /**
- * Requires the request to be passed in.
- *
- * @param request from which to obtain a HTTP session (cannot be null)
- * @param response not used (can be null)
- * @param authentication not used (can be null)
- */
- public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) {
- Assert.notNull(request, "HttpServletRequest required");
- if (invalidateHttpSession) {
- HttpSession session = request.getSession(false);
- if (session != null) {
- session.invalidate();
- }
- }
-
- SecurityContextHolder.clearContext();
- }
-
- public boolean isInvalidateHttpSession() {
- return invalidateHttpSession;
- }
-
- /**
- * Causes the {@link HttpSession} to be invalidated when this {@link LogoutHandler} is invoked. Defaults to true.
- *
- * @param invalidateHttpSession true if you wish the session to be invalidated (default) or false if it should
- * not be.
- */
- public void setInvalidateHttpSession(boolean invalidateHttpSession) {
- this.invalidateHttpSession = invalidateHttpSession;
- }
-
-}
+/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.security.web.authentication.logout;
+
+
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.util.Assert;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+/**
+ * Performs a logout by modifying the {@link org.springframework.security.core.context.SecurityContextHolder}.
+ * true and the
+ * session is not null.
+ *
+ * @author Ben Alex
+ */
+public class SecurityContextLogoutHandler implements LogoutHandler {
+ private boolean invalidateHttpSession = true;
+
+ //~ Methods ========================================================================================================
+
+ /**
+ * Requires the request to be passed in.
+ *
+ * @param request from which to obtain a HTTP session (cannot be null)
+ * @param response not used (can be null)
+ * @param authentication not used (can be null)
+ */
+ public void logout(HttpServletRequest request, HttpServletResponse response, Authentication authentication) {
+ Assert.notNull(request, "HttpServletRequest required");
+ if (invalidateHttpSession) {
+ HttpSession session = request.getSession(false);
+ if (session != null) {
+ session.invalidate();
+ }
+ }
+
+ SecurityContextHolder.clearContext();
+ }
+
+ public boolean isInvalidateHttpSession() {
+ return invalidateHttpSession;
+ }
+
+ /**
+ * Causes the {@link HttpSession} to be invalidated when this {@link LogoutHandler} is invoked. Defaults to true.
+ *
+ * @param invalidateHttpSession true if you wish the session to be invalidated (default) or false if it should
+ * not be.
+ */
+ public void setInvalidateHttpSession(boolean invalidateHttpSession) {
+ this.invalidateHttpSession = invalidateHttpSession;
+ }
+
+}
diff --git a/web/src/main/java/org/springframework/security/web/authentication/logout/SimpleUrlLogoutSuccessHandler.java b/web/src/main/java/org/springframework/security/web/authentication/logout/SimpleUrlLogoutSuccessHandler.java
index c5fffd87d5..440410f5b2 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/logout/SimpleUrlLogoutSuccessHandler.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/logout/SimpleUrlLogoutSuccessHandler.java
@@ -14,7 +14,6 @@ import org.springframework.security.web.authentication.AbstractAuthenticationTar
* base class logic.
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public class SimpleUrlLogoutSuccessHandler extends AbstractAuthenticationTargetUrlRequestHandler
diff --git a/web/src/main/java/org/springframework/security/web/authentication/preauth/AbstractPreAuthenticatedProcessingFilter.java b/web/src/main/java/org/springframework/security/web/authentication/preauth/AbstractPreAuthenticatedProcessingFilter.java
index 41eff37d9c..96117b6dd9 100755
--- a/web/src/main/java/org/springframework/security/web/authentication/preauth/AbstractPreAuthenticatedProcessingFilter.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/preauth/AbstractPreAuthenticatedProcessingFilter.java
@@ -1,242 +1,242 @@
-package org.springframework.security.web.authentication.preauth;
-
-import java.io.IOException;
-
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-
-import org.springframework.beans.factory.InitializingBean;
-import org.springframework.context.ApplicationEventPublisher;
-import org.springframework.context.ApplicationEventPublisherAware;
-import org.springframework.security.authentication.AuthenticationDetailsSource;
-import org.springframework.security.authentication.AuthenticationManager;
-import org.springframework.security.authentication.event.InteractiveAuthenticationSuccessEvent;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.AuthenticationException;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter;
-import org.springframework.security.web.authentication.WebAuthenticationDetailsSource;
-import org.springframework.util.Assert;
-import org.springframework.web.filter.GenericFilterBean;
-
-/**
- * Base class for processing filters that handle pre-authenticated authentication requests, where it is assumed
- * that the principal has already been authenticated by an external system.
- * Authentication instance returned by the
- * authentication manager into the secure context.
- */
- protected void successfulAuthentication(HttpServletRequest request, HttpServletResponse response, Authentication authResult) {
- if (logger.isDebugEnabled()) {
- logger.debug("Authentication success: " + authResult);
- }
- SecurityContextHolder.getContext().setAuthentication(authResult);
- // Fire event
- if (this.eventPublisher != null) {
- eventPublisher.publishEvent(new InteractiveAuthenticationSuccessEvent(authResult, this.getClass()));
- }
- }
-
- /**
- * Ensures the authentication object in the secure context is set to null
- * when authentication fails.
- */
- protected void unsuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response, AuthenticationException failed) {
- SecurityContextHolder.clearContext();
-
- if (logger.isDebugEnabled()) {
- logger.debug("Cleared security context due to exception", failed);
- }
- request.getSession().setAttribute(AbstractAuthenticationProcessingFilter.SPRING_SECURITY_LAST_EXCEPTION_KEY, failed);
- }
-
- /**
- * @param anApplicationEventPublisher
- * The ApplicationEventPublisher to use
- */
- public void setApplicationEventPublisher(ApplicationEventPublisher anApplicationEventPublisher) {
- this.eventPublisher = anApplicationEventPublisher;
- }
-
- /**
- * @param authenticationDetailsSource
- * The AuthenticationDetailsSource to use
- */
- public void setAuthenticationDetailsSource(AuthenticationDetailsSource authenticationDetailsSource) {
- Assert.notNull(authenticationDetailsSource, "AuthenticationDetailsSource required");
- this.authenticationDetailsSource = authenticationDetailsSource;
- }
-
- /**
- * @param authenticationManager
- * The AuthenticationManager to use
- */
- public void setAuthenticationManager(AuthenticationManager authenticationManager) {
- this.authenticationManager = authenticationManager;
- }
-
- public void setContinueFilterChainOnUnsuccessfulAuthentication(boolean shouldContinue) {
- continueFilterChainOnUnsuccessfulAuthentication = shouldContinue;
- }
-
- /**
- * If set, the pre-authenticated principal will be checked on each request and compared
- * against the name of the current Authentication object. If a change is detected,
- * the user will be reauthenticated.
- *
- * @param checkForPrincipalChanges
- */
- public void setCheckForPrincipalChanges(boolean checkForPrincipalChanges) {
- this.checkForPrincipalChanges = checkForPrincipalChanges;
- }
-
- /**
- * If checkForPrincipalChanges is set, and a change of principal is detected, determines whether
- * any existing session should be invalidated before proceeding to authenticate the new principal.
- *
- * @param invalidateSessionOnPrincipalChange false to retain the existing session. Defaults to true.
- */
- public void setInvalidateSessionOnPrincipalChange(boolean invalidateSessionOnPrincipalChange) {
- this.invalidateSessionOnPrincipalChange = invalidateSessionOnPrincipalChange;
- }
-
- /**
- * Override to extract the principal information from the current request
- */
- protected abstract Object getPreAuthenticatedPrincipal(HttpServletRequest request);
-
- /**
- * Override to extract the credentials (if applicable) from the current request. Should not return null for a valid
- * principal, though some implementations may return a dummy value.
- */
- protected abstract Object getPreAuthenticatedCredentials(HttpServletRequest request);
-}
+package org.springframework.security.web.authentication.preauth;
+
+import java.io.IOException;
+
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.context.ApplicationEventPublisher;
+import org.springframework.context.ApplicationEventPublisherAware;
+import org.springframework.security.authentication.AuthenticationDetailsSource;
+import org.springframework.security.authentication.AuthenticationManager;
+import org.springframework.security.authentication.event.InteractiveAuthenticationSuccessEvent;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.AuthenticationException;
+import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter;
+import org.springframework.security.web.authentication.WebAuthenticationDetailsSource;
+import org.springframework.util.Assert;
+import org.springframework.web.filter.GenericFilterBean;
+
+/**
+ * Base class for processing filters that handle pre-authenticated authentication requests, where it is assumed
+ * that the principal has already been authenticated by an external system.
+ * Authentication instance returned by the
+ * authentication manager into the secure context.
+ */
+ protected void successfulAuthentication(HttpServletRequest request, HttpServletResponse response, Authentication authResult) {
+ if (logger.isDebugEnabled()) {
+ logger.debug("Authentication success: " + authResult);
+ }
+ SecurityContextHolder.getContext().setAuthentication(authResult);
+ // Fire event
+ if (this.eventPublisher != null) {
+ eventPublisher.publishEvent(new InteractiveAuthenticationSuccessEvent(authResult, this.getClass()));
+ }
+ }
+
+ /**
+ * Ensures the authentication object in the secure context is set to null
+ * when authentication fails.
+ */
+ protected void unsuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response, AuthenticationException failed) {
+ SecurityContextHolder.clearContext();
+
+ if (logger.isDebugEnabled()) {
+ logger.debug("Cleared security context due to exception", failed);
+ }
+ request.getSession().setAttribute(AbstractAuthenticationProcessingFilter.SPRING_SECURITY_LAST_EXCEPTION_KEY, failed);
+ }
+
+ /**
+ * @param anApplicationEventPublisher
+ * The ApplicationEventPublisher to use
+ */
+ public void setApplicationEventPublisher(ApplicationEventPublisher anApplicationEventPublisher) {
+ this.eventPublisher = anApplicationEventPublisher;
+ }
+
+ /**
+ * @param authenticationDetailsSource
+ * The AuthenticationDetailsSource to use
+ */
+ public void setAuthenticationDetailsSource(AuthenticationDetailsSource authenticationDetailsSource) {
+ Assert.notNull(authenticationDetailsSource, "AuthenticationDetailsSource required");
+ this.authenticationDetailsSource = authenticationDetailsSource;
+ }
+
+ /**
+ * @param authenticationManager
+ * The AuthenticationManager to use
+ */
+ public void setAuthenticationManager(AuthenticationManager authenticationManager) {
+ this.authenticationManager = authenticationManager;
+ }
+
+ public void setContinueFilterChainOnUnsuccessfulAuthentication(boolean shouldContinue) {
+ continueFilterChainOnUnsuccessfulAuthentication = shouldContinue;
+ }
+
+ /**
+ * If set, the pre-authenticated principal will be checked on each request and compared
+ * against the name of the current Authentication object. If a change is detected,
+ * the user will be reauthenticated.
+ *
+ * @param checkForPrincipalChanges
+ */
+ public void setCheckForPrincipalChanges(boolean checkForPrincipalChanges) {
+ this.checkForPrincipalChanges = checkForPrincipalChanges;
+ }
+
+ /**
+ * If checkForPrincipalChanges is set, and a change of principal is detected, determines whether
+ * any existing session should be invalidated before proceeding to authenticate the new principal.
+ *
+ * @param invalidateSessionOnPrincipalChange false to retain the existing session. Defaults to true.
+ */
+ public void setInvalidateSessionOnPrincipalChange(boolean invalidateSessionOnPrincipalChange) {
+ this.invalidateSessionOnPrincipalChange = invalidateSessionOnPrincipalChange;
+ }
+
+ /**
+ * Override to extract the principal information from the current request
+ */
+ protected abstract Object getPreAuthenticatedPrincipal(HttpServletRequest request);
+
+ /**
+ * Override to extract the credentials (if applicable) from the current request. Should not return null for a valid
+ * principal, though some implementations may return a dummy value.
+ */
+ protected abstract Object getPreAuthenticatedCredentials(HttpServletRequest request);
+}
diff --git a/web/src/main/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationProvider.java b/web/src/main/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationProvider.java
index 2c3fd56836..46a1096595 100644
--- a/web/src/main/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationProvider.java
+++ b/web/src/main/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationProvider.java
@@ -1,134 +1,133 @@
-package org.springframework.security.web.authentication.preauth;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.springframework.beans.factory.InitializingBean;
-import org.springframework.core.Ordered;
-import org.springframework.security.authentication.AccountStatusUserDetailsChecker;
-import org.springframework.security.authentication.AuthenticationProvider;
-import org.springframework.security.authentication.BadCredentialsException;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.AuthenticationException;
-import org.springframework.security.core.userdetails.AuthenticationUserDetailsService;
-import org.springframework.security.core.userdetails.UserDetails;
-import org.springframework.security.core.userdetails.UserDetailsChecker;
-import org.springframework.util.Assert;
-
-/**
- * false.
- *
- * @TODO Should we have only a single credentials parameter here? For
- * example for X509 the certificate is used as credentials, while
- * currently a J2EE username is specified as a principal but could as
- * well be set as credentials.
- *
- * @param aPrincipal
- * The pre-authenticated principal
- * @param aCredentials
- * The pre-authenticated credentials
- */
- public PreAuthenticatedAuthenticationToken(Object aPrincipal, Object aCredentials) {
- super(null);
- this.principal = aPrincipal;
- this.credentials = aCredentials;
- }
-
-
- /**
- * Constructor used for an authentication response. The {@link
- * org.springframework.security.core.Authentication#isAuthenticated()} will return
- * true.
- *
- * @param aPrincipal
- * The authenticated principal
- * @param anAuthorities
- * The granted authorities
- */
- public PreAuthenticatedAuthenticationToken(Object aPrincipal, Object aCredentials, Collectionfalse.
+ *
+ * @TODO Should we have only a single credentials parameter here? For
+ * example for X509 the certificate is used as credentials, while
+ * currently a J2EE username is specified as a principal but could as
+ * well be set as credentials.
+ *
+ * @param aPrincipal
+ * The pre-authenticated principal
+ * @param aCredentials
+ * The pre-authenticated credentials
+ */
+ public PreAuthenticatedAuthenticationToken(Object aPrincipal, Object aCredentials) {
+ super(null);
+ this.principal = aPrincipal;
+ this.credentials = aCredentials;
+ }
+
+
+ /**
+ * Constructor used for an authentication response. The {@link
+ * org.springframework.security.core.Authentication#isAuthenticated()} will return
+ * true.
+ *
+ * @param aPrincipal
+ * The authenticated principal
+ * @param anAuthorities
+ * The granted authorities
+ */
+ public PreAuthenticatedAuthenticationToken(Object aPrincipal, Object aCredentials, CollectionAuthenticationManager-specific application event.Authentication object of the original user to be used later when 'exiting' from a user switch.false, as this is resource intensive and not recommended).
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public class SecurityContextPersistenceFilter extends GenericFilterBean {
diff --git a/web/src/main/java/org/springframework/security/web/context/SecurityContextRepository.java b/web/src/main/java/org/springframework/security/web/context/SecurityContextRepository.java
index 8952c44686..29c9b2805b 100644
--- a/web/src/main/java/org/springframework/security/web/context/SecurityContextRepository.java
+++ b/web/src/main/java/org/springframework/security/web/context/SecurityContextRepository.java
@@ -16,7 +16,6 @@ import org.springframework.security.core.context.SecurityContext;
* be used to store the context.
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*
* @see SecurityContextPersistenceFilter
diff --git a/web/src/main/java/org/springframework/security/web/savedrequest/DefaultSavedRequest.java b/web/src/main/java/org/springframework/security/web/savedrequest/DefaultSavedRequest.java
index e7c0b58054..10c39bbb38 100644
--- a/web/src/main/java/org/springframework/security/web/savedrequest/DefaultSavedRequest.java
+++ b/web/src/main/java/org/springframework/security/web/savedrequest/DefaultSavedRequest.java
@@ -1,341 +1,340 @@
-/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.security.web.savedrequest;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.TreeMap;
-
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.springframework.security.web.PortResolver;
-import org.springframework.security.web.util.UrlUtils;
-import org.springframework.util.Assert;
-
-
-/**
- * Represents central information from a HttpServletRequest.DefaultSavedRequest.
- * HttpServletRequest.DefaultSavedRequest.
+ * Enumeration around a Java 2 collection Iterator.Iterator over which the Enumeration represented by this class actually operates.
- */
- private Iteratortrue if and only if this enumeration object contains at least one more element to provide,
- * false otherwise
- */
- public boolean hasMoreElements() {
- return (iterator.hasNext());
- }
-
- /**
- * Returns the next element of this enumeration if this enumeration has at least one more element to
- * provide.
- *
- * @return the next element of this enumeration
- *
- * @exception NoSuchElementException if no more elements exist
- */
- public T nextElement() throws NoSuchElementException {
- return (iterator.next());
- }
-}
+/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.security.web.savedrequest;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Enumeration;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.NoSuchElementException;
+
+
+/**
+ * Enumeration around a Java 2 collection Iterator.Iterator over which the Enumeration represented by this class actually operates.
+ */
+ private Iteratortrue if and only if this enumeration object contains at least one more element to provide,
+ * false otherwise
+ */
+ public boolean hasMoreElements() {
+ return (iterator.hasNext());
+ }
+
+ /**
+ * Returns the next element of this enumeration if this enumeration has at least one more element to
+ * provide.
+ *
+ * @return the next element of this enumeration
+ *
+ * @exception NoSuchElementException if no more elements exist
+ */
+ public T nextElement() throws NoSuchElementException {
+ return (iterator.next());
+ }
+}
diff --git a/web/src/main/java/org/springframework/security/web/savedrequest/FastHttpDateFormat.java b/web/src/main/java/org/springframework/security/web/savedrequest/FastHttpDateFormat.java
index 4938ac31d9..136d2a82a0 100644
--- a/web/src/main/java/org/springframework/security/web/savedrequest/FastHttpDateFormat.java
+++ b/web/src/main/java/org/springframework/security/web/savedrequest/FastHttpDateFormat.java
@@ -1,221 +1,220 @@
-/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.security.web.savedrequest;
-
-import java.text.DateFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.TimeZone;
-
-
-/**
- * Utility class to generate HTTP dates.
- * getDateHeader(). */
- protected static final SimpleDateFormat[] formats = {
- new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.US),
- new SimpleDateFormat("EEEEEE, dd-MMM-yy HH:mm:ss zzz", Locale.US),
- new SimpleDateFormat("EEE MMMM d HH:mm:ss yyyy", Locale.US)
- };
-
- /** GMT time zone - all HTTP dates are on GMT */
- protected static final TimeZone gmtZone = TimeZone.getTimeZone("GMT");
-
- static {
- format.setTimeZone(gmtZone);
-
- formats[0].setTimeZone(gmtZone);
- formats[1].setTimeZone(gmtZone);
- formats[2].setTimeZone(gmtZone);
- }
-
- /** Instant on which the currentDate object was generated. */
- protected static long currentDateGenerated = 0L;
-
- /** Current formatted date. */
- protected static String currentDate = null;
-
- /** Formatter cache. */
- protected static final HashMapnull, it's used instead.
- *
- * @param value Date value to format
- * @param threadLocalformat The format to use (or null -- then HTTP format will be used)
- *
- * @return Formatted date
- */
- public static final String formatDate(long value, DateFormat threadLocalformat) {
- String cachedDate = null;
- Long longValue = new Long(value);
-
- try {
- cachedDate = formatCache.get(longValue);
- } catch (Exception e) {}
-
- if (cachedDate != null) {
- return cachedDate;
- }
-
- String newDate = null;
- Date dateValue = new Date(value);
-
- if (threadLocalformat != null) {
- newDate = threadLocalformat.format(dateValue);
-
- synchronized (formatCache) {
- updateCache(formatCache, longValue, newDate);
- }
- } else {
- synchronized (formatCache) {
- newDate = format.format(dateValue);
- updateCache(formatCache, longValue, newDate);
- }
- }
-
- return newDate;
- }
-
- /**
- * Gets the current date in HTTP format.
- *
- * @return Current date in HTTP format
- */
- public static final String getCurrentDate() {
- long now = System.currentTimeMillis();
-
- if ((now - currentDateGenerated) > 1000) {
- synchronized (format) {
- if ((now - currentDateGenerated) > 1000) {
- currentDateGenerated = now;
- currentDate = format.format(new Date(now));
- }
- }
- }
-
- return currentDate;
- }
-
- /**
- * Parses date with given formatters.
- *
- * @param value The string to parse
- * @param formats Array of formats to use
- *
- * @return Parsed date (or null if no formatter mached)
- */
- private static Long internalParseDate(String value, DateFormat[] formats) {
- Date date = null;
-
- for (int i = 0; (date == null) && (i < formats.length); i++) {
- try {
- date = formats[i].parse(value);
- } catch (ParseException e) {
- ;
- }
- }
-
- if (date == null) {
- return null;
- }
-
- return new Long(date.getTime());
- }
-
- /**
- * Tries to parse the given date as an HTTP date. If local format list is not null, it's used
- * instead.
- *
- * @param value The string to parse
- * @param threadLocalformats Array of formats to use for parsing. If null, HTTP formats are used.
- *
- * @return Parsed date (or -1 if error occurred)
- */
- public static final long parseDate(String value, DateFormat[] threadLocalformats) {
- Long cachedDate = null;
-
- try {
- cachedDate = (Long) parseCache.get(value);
- } catch (Exception e) {}
-
- if (cachedDate != null) {
- return cachedDate.longValue();
- }
-
- Long date = null;
-
- if (threadLocalformats != null) {
- date = internalParseDate(value, threadLocalformats);
-
- synchronized (parseCache) {
- updateCache(parseCache, value, date);
- }
- } else {
- synchronized (parseCache) {
- date = internalParseDate(value, formats);
- updateCache(parseCache, value, date);
- }
- }
-
- if (date == null) {
- return (-1L);
- } else {
- return date.longValue();
- }
- }
-
- /**
- * Updates cache.
- *
- * @param cache Cache to be updated
- * @param key Key to be updated
- * @param value New value
- */
- @SuppressWarnings("unchecked")
- private static void updateCache(HashMap cache, Object key, Object value) {
- if (value == null) {
- return;
- }
-
- if (cache.size() > 1000) {
- cache.clear();
- }
-
- cache.put(key, value);
- }
-}
+/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.security.web.savedrequest;
+
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Locale;
+import java.util.TimeZone;
+
+
+/**
+ * Utility class to generate HTTP dates.
+ * getDateHeader(). */
+ protected static final SimpleDateFormat[] formats = {
+ new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.US),
+ new SimpleDateFormat("EEEEEE, dd-MMM-yy HH:mm:ss zzz", Locale.US),
+ new SimpleDateFormat("EEE MMMM d HH:mm:ss yyyy", Locale.US)
+ };
+
+ /** GMT time zone - all HTTP dates are on GMT */
+ protected static final TimeZone gmtZone = TimeZone.getTimeZone("GMT");
+
+ static {
+ format.setTimeZone(gmtZone);
+
+ formats[0].setTimeZone(gmtZone);
+ formats[1].setTimeZone(gmtZone);
+ formats[2].setTimeZone(gmtZone);
+ }
+
+ /** Instant on which the currentDate object was generated. */
+ protected static long currentDateGenerated = 0L;
+
+ /** Current formatted date. */
+ protected static String currentDate = null;
+
+ /** Formatter cache. */
+ protected static final HashMapnull, it's used instead.
+ *
+ * @param value Date value to format
+ * @param threadLocalformat The format to use (or null -- then HTTP format will be used)
+ *
+ * @return Formatted date
+ */
+ public static final String formatDate(long value, DateFormat threadLocalformat) {
+ String cachedDate = null;
+ Long longValue = new Long(value);
+
+ try {
+ cachedDate = formatCache.get(longValue);
+ } catch (Exception e) {}
+
+ if (cachedDate != null) {
+ return cachedDate;
+ }
+
+ String newDate = null;
+ Date dateValue = new Date(value);
+
+ if (threadLocalformat != null) {
+ newDate = threadLocalformat.format(dateValue);
+
+ synchronized (formatCache) {
+ updateCache(formatCache, longValue, newDate);
+ }
+ } else {
+ synchronized (formatCache) {
+ newDate = format.format(dateValue);
+ updateCache(formatCache, longValue, newDate);
+ }
+ }
+
+ return newDate;
+ }
+
+ /**
+ * Gets the current date in HTTP format.
+ *
+ * @return Current date in HTTP format
+ */
+ public static final String getCurrentDate() {
+ long now = System.currentTimeMillis();
+
+ if ((now - currentDateGenerated) > 1000) {
+ synchronized (format) {
+ if ((now - currentDateGenerated) > 1000) {
+ currentDateGenerated = now;
+ currentDate = format.format(new Date(now));
+ }
+ }
+ }
+
+ return currentDate;
+ }
+
+ /**
+ * Parses date with given formatters.
+ *
+ * @param value The string to parse
+ * @param formats Array of formats to use
+ *
+ * @return Parsed date (or null if no formatter mached)
+ */
+ private static Long internalParseDate(String value, DateFormat[] formats) {
+ Date date = null;
+
+ for (int i = 0; (date == null) && (i < formats.length); i++) {
+ try {
+ date = formats[i].parse(value);
+ } catch (ParseException e) {
+ ;
+ }
+ }
+
+ if (date == null) {
+ return null;
+ }
+
+ return new Long(date.getTime());
+ }
+
+ /**
+ * Tries to parse the given date as an HTTP date. If local format list is not null, it's used
+ * instead.
+ *
+ * @param value The string to parse
+ * @param threadLocalformats Array of formats to use for parsing. If null, HTTP formats are used.
+ *
+ * @return Parsed date (or -1 if error occurred)
+ */
+ public static final long parseDate(String value, DateFormat[] threadLocalformats) {
+ Long cachedDate = null;
+
+ try {
+ cachedDate = (Long) parseCache.get(value);
+ } catch (Exception e) {}
+
+ if (cachedDate != null) {
+ return cachedDate.longValue();
+ }
+
+ Long date = null;
+
+ if (threadLocalformats != null) {
+ date = internalParseDate(value, threadLocalformats);
+
+ synchronized (parseCache) {
+ updateCache(parseCache, value, date);
+ }
+ } else {
+ synchronized (parseCache) {
+ date = internalParseDate(value, formats);
+ updateCache(parseCache, value, date);
+ }
+ }
+
+ if (date == null) {
+ return (-1L);
+ } else {
+ return date.longValue();
+ }
+ }
+
+ /**
+ * Updates cache.
+ *
+ * @param cache Cache to be updated
+ * @param key Key to be updated
+ * @param value New value
+ */
+ @SuppressWarnings("unchecked")
+ private static void updateCache(HashMap cache, Object key, Object value) {
+ if (value == null) {
+ return;
+ }
+
+ if (cache.size() > 1000) {
+ cache.clear();
+ }
+
+ cache.put(key, value);
+ }
+}
diff --git a/web/src/main/java/org/springframework/security/web/savedrequest/HttpSessionRequestCache.java b/web/src/main/java/org/springframework/security/web/savedrequest/HttpSessionRequestCache.java
index 6a76489aa2..d7582aaaad 100644
--- a/web/src/main/java/org/springframework/security/web/savedrequest/HttpSessionRequestCache.java
+++ b/web/src/main/java/org/springframework/security/web/savedrequest/HttpSessionRequestCache.java
@@ -15,7 +15,6 @@ import org.springframework.security.web.PortResolverImpl;
* The {@link DefaultSavedRequest} class is used as the implementation.
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public class HttpSessionRequestCache implements RequestCache {
diff --git a/web/src/main/java/org/springframework/security/web/savedrequest/NullRequestCache.java b/web/src/main/java/org/springframework/security/web/savedrequest/NullRequestCache.java
index a1560e53eb..98ecd04795 100644
--- a/web/src/main/java/org/springframework/security/web/savedrequest/NullRequestCache.java
+++ b/web/src/main/java/org/springframework/security/web/savedrequest/NullRequestCache.java
@@ -8,7 +8,6 @@ import javax.servlet.http.HttpServletResponse;
* Typically used when creation of a session is not desired.
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public class NullRequestCache implements RequestCache {
diff --git a/web/src/main/java/org/springframework/security/web/savedrequest/RequestCache.java b/web/src/main/java/org/springframework/security/web/savedrequest/RequestCache.java
index eee5f696c9..ec7f033819 100644
--- a/web/src/main/java/org/springframework/security/web/savedrequest/RequestCache.java
+++ b/web/src/main/java/org/springframework/security/web/savedrequest/RequestCache.java
@@ -8,7 +8,6 @@ import javax.servlet.http.HttpServletResponse;
* an authentication mechanism.
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public interface RequestCache {
diff --git a/web/src/main/java/org/springframework/security/web/savedrequest/RequestCacheAwareFilter.java b/web/src/main/java/org/springframework/security/web/savedrequest/RequestCacheAwareFilter.java
index 6ca1d2cb9a..909208d3c4 100644
--- a/web/src/main/java/org/springframework/security/web/savedrequest/RequestCacheAwareFilter.java
+++ b/web/src/main/java/org/springframework/security/web/savedrequest/RequestCacheAwareFilter.java
@@ -20,7 +20,6 @@ import org.springframework.web.filter.GenericFilterBean;
* If null is returned by the cache, the original request is used and the filter has no effect.
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public class RequestCacheAwareFilter extends GenericFilterBean {
diff --git a/web/src/main/java/org/springframework/security/web/savedrequest/SavedCookie.java b/web/src/main/java/org/springframework/security/web/savedrequest/SavedCookie.java
index 514af563ec..6730c6798a 100644
--- a/web/src/main/java/org/springframework/security/web/savedrequest/SavedCookie.java
+++ b/web/src/main/java/org/springframework/security/web/savedrequest/SavedCookie.java
@@ -1,86 +1,86 @@
-package org.springframework.security.web.savedrequest;
-
-import javax.servlet.http.Cookie;
-import java.io.Serializable;
-
-/**
- * Stores off the values of a cookie in a serializable holder
- *
- * @author Ray Krueger
- */
-public class SavedCookie implements Serializable {
- private java.lang.String name;
- private java.lang.String value;
- private java.lang.String comment;
- private java.lang.String domain;
- private int maxAge;
- private java.lang.String path;
- private boolean secure;
- private int version;
-
- public SavedCookie(String name, String value, String comment, String domain, int maxAge, String path, boolean secure, int version) {
- this.name = name;
- this.value = value;
- this.comment = comment;
- this.domain = domain;
- this.maxAge = maxAge;
- this.path = path;
- this.secure = secure;
- this.version = version;
- }
-
- public SavedCookie(Cookie cookie) {
- this(cookie.getName(), cookie.getValue(), cookie.getComment(),
- cookie.getDomain(), cookie.getMaxAge(), cookie.getPath(), cookie.getSecure(), cookie.getVersion());
- }
-
- public String getName() {
- return name;
- }
-
- public String getValue() {
- return value;
- }
-
- public String getComment() {
- return comment;
- }
-
- public String getDomain() {
- return domain;
- }
-
- public int getMaxAge() {
- return maxAge;
- }
-
- public String getPath() {
- return path;
- }
-
- public boolean isSecure() {
- return secure;
- }
-
- public int getVersion() {
- return version;
- }
-
- public Cookie getCookie() {
- Cookie c = new Cookie(getName(), getValue());
-
- if (getComment() != null)
- c.setComment(getComment());
-
- if (getDomain() != null)
- c.setDomain(getDomain());
-
- if (getPath() != null)
- c.setPath(getPath());
-
- c.setVersion(getVersion());
- c.setMaxAge(getMaxAge());
- c.setSecure(isSecure());
- return c;
- }
-}
+package org.springframework.security.web.savedrequest;
+
+import javax.servlet.http.Cookie;
+import java.io.Serializable;
+
+/**
+ * Stores off the values of a cookie in a serializable holder
+ *
+ * @author Ray Krueger
+ */
+public class SavedCookie implements Serializable {
+ private java.lang.String name;
+ private java.lang.String value;
+ private java.lang.String comment;
+ private java.lang.String domain;
+ private int maxAge;
+ private java.lang.String path;
+ private boolean secure;
+ private int version;
+
+ public SavedCookie(String name, String value, String comment, String domain, int maxAge, String path, boolean secure, int version) {
+ this.name = name;
+ this.value = value;
+ this.comment = comment;
+ this.domain = domain;
+ this.maxAge = maxAge;
+ this.path = path;
+ this.secure = secure;
+ this.version = version;
+ }
+
+ public SavedCookie(Cookie cookie) {
+ this(cookie.getName(), cookie.getValue(), cookie.getComment(),
+ cookie.getDomain(), cookie.getMaxAge(), cookie.getPath(), cookie.getSecure(), cookie.getVersion());
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public String getComment() {
+ return comment;
+ }
+
+ public String getDomain() {
+ return domain;
+ }
+
+ public int getMaxAge() {
+ return maxAge;
+ }
+
+ public String getPath() {
+ return path;
+ }
+
+ public boolean isSecure() {
+ return secure;
+ }
+
+ public int getVersion() {
+ return version;
+ }
+
+ public Cookie getCookie() {
+ Cookie c = new Cookie(getName(), getValue());
+
+ if (getComment() != null)
+ c.setComment(getComment());
+
+ if (getDomain() != null)
+ c.setDomain(getDomain());
+
+ if (getPath() != null)
+ c.setPath(getPath());
+
+ c.setVersion(getVersion());
+ c.setMaxAge(getMaxAge());
+ c.setSecure(isSecure());
+ return c;
+ }
+}
diff --git a/web/src/main/java/org/springframework/security/web/savedrequest/SavedRequest.java b/web/src/main/java/org/springframework/security/web/savedrequest/SavedRequest.java
index 9d1307db59..491642cfa4 100644
--- a/web/src/main/java/org/springframework/security/web/savedrequest/SavedRequest.java
+++ b/web/src/main/java/org/springframework/security/web/savedrequest/SavedRequest.java
@@ -13,7 +13,6 @@ import javax.servlet.http.Cookie;
* reproducing the original request data.
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public interface SavedRequest extends java.io.Serializable {
diff --git a/web/src/main/java/org/springframework/security/web/savedrequest/SavedRequestAwareWrapper.java b/web/src/main/java/org/springframework/security/web/savedrequest/SavedRequestAwareWrapper.java
index 3e5c452118..180f766dc6 100644
--- a/web/src/main/java/org/springframework/security/web/savedrequest/SavedRequestAwareWrapper.java
+++ b/web/src/main/java/org/springframework/security/web/savedrequest/SavedRequestAwareWrapper.java
@@ -48,7 +48,6 @@ import org.apache.commons.logging.LogFactory;
* @author Andrey Grebnev
* @author Ben Alex
* @author Luke Taylor
- * @version $Id$
*/
class SavedRequestAwareWrapper extends HttpServletRequestWrapper {
//~ Static fields/initializers =====================================================================================
diff --git a/web/src/main/java/org/springframework/security/web/savedrequest/package.html b/web/src/main/java/org/springframework/security/web/savedrequest/package.html
index 4eb5c52d65..3a00f47fc5 100644
--- a/web/src/main/java/org/springframework/security/web/savedrequest/package.html
+++ b/web/src/main/java/org/springframework/security/web/savedrequest/package.html
@@ -1,8 +1,8 @@
-
-
-Classes related top the caching of an HttpServletRequest which requires authentication. While the user is
-logging in, the request is cached (using the RequestCache implementation) by the ExceptionTranslationFilter.
-Once the user has been authenticated, the original request is restored following a redirect to a matching URL, and the
-RequestCache is queried to obtain the original (matching) request.
-
-
+
+
+Classes related top the caching of an HttpServletRequest which requires authentication. While the user is
+logging in, the request is cached (using the RequestCache implementation) by the ExceptionTranslationFilter.
+Once the user has been authenticated, the original request is restored following a redirect to a matching URL, and the
+RequestCache is queried to obtain the original (matching) request.
+
+
diff --git a/web/src/main/java/org/springframework/security/web/servletapi/SecurityContextHolderAwareRequestFilter.java b/web/src/main/java/org/springframework/security/web/servletapi/SecurityContextHolderAwareRequestFilter.java
index 298bebb97a..0b9937ae26 100644
--- a/web/src/main/java/org/springframework/security/web/servletapi/SecurityContextHolderAwareRequestFilter.java
+++ b/web/src/main/java/org/springframework/security/web/servletapi/SecurityContextHolderAwareRequestFilter.java
@@ -36,7 +36,6 @@ import org.springframework.web.filter.GenericFilterBean;
* @author Orlando Garcia Carmona
* @author Ben Alex
* @author Luke Taylor
- * @version $Id$
*/
public class SecurityContextHolderAwareRequestFilter extends GenericFilterBean {
//~ Instance fields ================================================================================================
diff --git a/web/src/main/java/org/springframework/security/web/servletapi/SecurityContextHolderAwareRequestWrapper.java b/web/src/main/java/org/springframework/security/web/servletapi/SecurityContextHolderAwareRequestWrapper.java
index c9fbc1137e..baf4276fc1 100644
--- a/web/src/main/java/org/springframework/security/web/servletapi/SecurityContextHolderAwareRequestWrapper.java
+++ b/web/src/main/java/org/springframework/security/web/servletapi/SecurityContextHolderAwareRequestWrapper.java
@@ -41,7 +41,6 @@ import org.springframework.security.core.userdetails.UserDetails;
* @author Orlando Garcia Carmona
* @author Ben Alex
* @author Luke Taylor
- * @version $Id$
*/
public class SecurityContextHolderAwareRequestWrapper extends HttpServletRequestWrapper {
//~ Instance fields ================================================================================================
diff --git a/web/src/main/java/org/springframework/security/web/session/HttpSessionEventPublisher.java b/web/src/main/java/org/springframework/security/web/session/HttpSessionEventPublisher.java
index 853ed46c02..643043c342 100644
--- a/web/src/main/java/org/springframework/security/web/session/HttpSessionEventPublisher.java
+++ b/web/src/main/java/org/springframework/security/web/session/HttpSessionEventPublisher.java
@@ -40,7 +40,6 @@ import javax.servlet.http.HttpSessionListener;
* javax.servlet.http.HttpSessionListener.sessionDestroyed() to {@link HttpSessionDestroyedEvent}.
*
* @author Ray Krueger
- * @version $Id$
*/
public class HttpSessionEventPublisher implements HttpSessionListener {
//~ Static fields/initializers =====================================================================================
diff --git a/web/src/main/java/org/springframework/security/web/util/AntUrlPathMatcher.java b/web/src/main/java/org/springframework/security/web/util/AntUrlPathMatcher.java
index 0cdb9ebf8d..f0fbadf0b1 100644
--- a/web/src/main/java/org/springframework/security/web/util/AntUrlPathMatcher.java
+++ b/web/src/main/java/org/springframework/security/web/util/AntUrlPathMatcher.java
@@ -7,7 +7,6 @@ import org.springframework.util.AntPathMatcher;
* Ant path strategy for URL matching.
*
* @author Luke Taylor
- * @version $Id$
*/
public class AntUrlPathMatcher implements UrlMatcher {
private boolean requiresLowerCaseUrl = true;
@@ -47,5 +46,5 @@ public class AntUrlPathMatcher implements UrlMatcher {
public String toString() {
return getClass().getName() + "[requiresLowerCase='" + requiresLowerCaseUrl + "']";
- }
+ }
}
diff --git a/web/src/main/java/org/springframework/security/web/util/RedirectUrlBuilder.java b/web/src/main/java/org/springframework/security/web/util/RedirectUrlBuilder.java
index cc723fb0e5..8ce448a4e0 100644
--- a/web/src/main/java/org/springframework/security/web/util/RedirectUrlBuilder.java
+++ b/web/src/main/java/org/springframework/security/web/util/RedirectUrlBuilder.java
@@ -8,7 +8,6 @@ import org.springframework.util.Assert;
* Could probably make more use of the classes in java.net for this.
*
* @author Luke Taylor
- * @version $Id$
* @since 2.0
*/
public class RedirectUrlBuilder {
@@ -79,7 +78,7 @@ public class RedirectUrlBuilder {
if (query != null) {
sb.append("?").append(query);
}
-
+
return sb.toString();
}
}
diff --git a/web/src/main/java/org/springframework/security/web/util/RegexUrlPathMatcher.java b/web/src/main/java/org/springframework/security/web/util/RegexUrlPathMatcher.java
index 6fcb020be0..5445d074c5 100644
--- a/web/src/main/java/org/springframework/security/web/util/RegexUrlPathMatcher.java
+++ b/web/src/main/java/org/springframework/security/web/util/RegexUrlPathMatcher.java
@@ -4,7 +4,6 @@ import java.util.regex.Pattern;
/**
* @author Luke Taylor
- * @version $Id$
*/
public class RegexUrlPathMatcher implements UrlMatcher {
private boolean requiresLowerCaseUrl = false;
diff --git a/web/src/main/java/org/springframework/security/web/util/TextEscapeUtils.java b/web/src/main/java/org/springframework/security/web/util/TextEscapeUtils.java
index 289d2c734f..bbbe1dbc41 100644
--- a/web/src/main/java/org/springframework/security/web/util/TextEscapeUtils.java
+++ b/web/src/main/java/org/springframework/security/web/util/TextEscapeUtils.java
@@ -4,7 +4,6 @@ package org.springframework.security.web.util;
* Utility for escaping characters in HTML strings.
*
* @author Luke Taylor
- * @version $Id$
*/
public abstract class TextEscapeUtils {
diff --git a/web/src/main/java/org/springframework/security/web/util/ThrowableAnalyzer.java b/web/src/main/java/org/springframework/security/web/util/ThrowableAnalyzer.java
index 0781dc55f1..f201d29741 100755
--- a/web/src/main/java/org/springframework/security/web/util/ThrowableAnalyzer.java
+++ b/web/src/main/java/org/springframework/security/web/util/ThrowableAnalyzer.java
@@ -17,7 +17,6 @@ import org.springframework.util.Assert;
*
* @author Andreas Senft
* @since 2.0
- * @version $Id$
*/
public class ThrowableAnalyzer {
diff --git a/web/src/main/java/org/springframework/security/web/util/ThrowableCauseExtractor.java b/web/src/main/java/org/springframework/security/web/util/ThrowableCauseExtractor.java
index 8e68ed8d65..7526d84139 100755
--- a/web/src/main/java/org/springframework/security/web/util/ThrowableCauseExtractor.java
+++ b/web/src/main/java/org/springframework/security/web/util/ThrowableCauseExtractor.java
@@ -3,22 +3,21 @@ package org.springframework.security.web.util;
/**
* Interface for handlers extracting the cause out of a specific {@link Throwable} type.
- *
+ *
* @author Andreas Senft
* @since 2.0
- * @version $Id$
- *
+ *
* @see ThrowableAnalyzer
*/
public interface ThrowableCauseExtractor {
/**
* Extracts the cause from the provided Throwable.
- *
+ *
* @param throwable the Throwable
* @return the extracted cause (maybe null)
- *
- * @throws IllegalArgumentException if throwable is null
+ *
+ * @throws IllegalArgumentException if throwable is null
* or otherwise considered invalid for the implementation
*/
Throwable extractCause(Throwable throwable);
diff --git a/web/src/main/java/org/springframework/security/web/util/UrlMatcher.java b/web/src/main/java/org/springframework/security/web/util/UrlMatcher.java
index be93039667..5367267190 100644
--- a/web/src/main/java/org/springframework/security/web/util/UrlMatcher.java
+++ b/web/src/main/java/org/springframework/security/web/util/UrlMatcher.java
@@ -4,7 +4,6 @@ package org.springframework.security.web.util;
* Strategy for deciding whether configured path matches a submitted candidate URL.
*
* @author Luke Taylor
- * @version $Id$
* @since 2.0
*/
public interface UrlMatcher {
diff --git a/web/src/main/java/org/springframework/security/web/util/UrlUtils.java b/web/src/main/java/org/springframework/security/web/util/UrlUtils.java
index ff2a4f27f5..25695e6fb5 100644
--- a/web/src/main/java/org/springframework/security/web/util/UrlUtils.java
+++ b/web/src/main/java/org/springframework/security/web/util/UrlUtils.java
@@ -1,124 +1,124 @@
-/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.springframework.security.web.util;
-
-import javax.servlet.http.HttpServletRequest;
-
-
-/**
- * Provides static methods for composing URLs.
- * requestURI = contextPath + servletPath + pathInfo
- *
- *
- * But the requestURI is not decoded, whereas the servletPath and pathInfo are (SEC-1255).
- * This method is typically used to return a URL for matching against secured paths, hence the decoded form is
- * used in preference to the requestURI for building the returned value. But this method may also be called using
- * dummy request objects which just have the requestURI and contextPatth set, for example, so it will fall back to
- * using those.
- *
- * @return the decoded URL, excluding any server name, context path or servlet path
- *
- */
- public static String buildRequestUrl(HttpServletRequest r) {
- return buildRequestUrl(r.getServletPath(), r.getRequestURI(), r.getContextPath(), r.getPathInfo(),
- r.getQueryString());
- }
-
- /**
- * Obtains the web application-specific fragment of the URL.
- */
- private static String buildRequestUrl(String servletPath, String requestURI, String contextPath, String pathInfo,
- String queryString) {
-
- StringBuilder url = new StringBuilder();
-
- if (servletPath != null) {
- url.append(servletPath);
- if (pathInfo != null) {
- url.append(pathInfo);
- }
- } else {
- url.append(requestURI.substring(contextPath.length()));
- }
-
- if (queryString != null) {
- url.append("?").append(queryString);
- }
-
- return url.toString();
- }
-
- /**
- * Returns true if the supplied URL starts with a "/" or "http".
- */
- public static boolean isValidRedirectUrl(String url) {
- return url != null && url.startsWith("/") || url.toLowerCase().startsWith("http");
- }
-}
+/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.springframework.security.web.util;
+
+import javax.servlet.http.HttpServletRequest;
+
+
+/**
+ * Provides static methods for composing URLs.
+ * requestURI = contextPath + servletPath + pathInfo
+ *
+ *
+ * But the requestURI is not decoded, whereas the servletPath and pathInfo are (SEC-1255).
+ * This method is typically used to return a URL for matching against secured paths, hence the decoded form is
+ * used in preference to the requestURI for building the returned value. But this method may also be called using
+ * dummy request objects which just have the requestURI and contextPatth set, for example, so it will fall back to
+ * using those.
+ *
+ * @return the decoded URL, excluding any server name, context path or servlet path
+ *
+ */
+ public static String buildRequestUrl(HttpServletRequest r) {
+ return buildRequestUrl(r.getServletPath(), r.getRequestURI(), r.getContextPath(), r.getPathInfo(),
+ r.getQueryString());
+ }
+
+ /**
+ * Obtains the web application-specific fragment of the URL.
+ */
+ private static String buildRequestUrl(String servletPath, String requestURI, String contextPath, String pathInfo,
+ String queryString) {
+
+ StringBuilder url = new StringBuilder();
+
+ if (servletPath != null) {
+ url.append(servletPath);
+ if (pathInfo != null) {
+ url.append(pathInfo);
+ }
+ } else {
+ url.append(requestURI.substring(contextPath.length()));
+ }
+
+ if (queryString != null) {
+ url.append("?").append(queryString);
+ }
+
+ return url.toString();
+ }
+
+ /**
+ * Returns true if the supplied URL starts with a "/" or "http".
+ */
+ public static boolean isValidRedirectUrl(String url) {
+ return url != null && url.startsWith("/") || url.toLowerCase().startsWith("http");
+ }
+}
diff --git a/web/src/test/java/org/springframework/security/MockFilterConfig.java b/web/src/test/java/org/springframework/security/MockFilterConfig.java
index fb24e3c71c..0b79951107 100644
--- a/web/src/test/java/org/springframework/security/MockFilterConfig.java
+++ b/web/src/test/java/org/springframework/security/MockFilterConfig.java
@@ -26,7 +26,6 @@ import javax.servlet.ServletContext;
/**
*
* @author Ben Alex
- * @version $Id$
*/
@SuppressWarnings("unchecked")
public class MockFilterConfig implements FilterConfig {
diff --git a/web/src/test/java/org/springframework/security/MockPortResolver.java b/web/src/test/java/org/springframework/security/MockPortResolver.java
index b64017e93a..c90b2b1ef8 100644
--- a/web/src/test/java/org/springframework/security/MockPortResolver.java
+++ b/web/src/test/java/org/springframework/security/MockPortResolver.java
@@ -24,7 +24,6 @@ import javax.servlet.ServletRequest;
* Always returns the constructor-specified HTTP and HTTPS ports.
*
* @author Ben Alex
- * @version $Id$
*/
public class MockPortResolver implements PortResolver {
//~ Instance fields ================================================================================================
diff --git a/web/src/test/java/org/springframework/security/web/PortMapperImplTests.java b/web/src/test/java/org/springframework/security/web/PortMapperImplTests.java
index 6f66744266..3b75c4aa4f 100644
--- a/web/src/test/java/org/springframework/security/web/PortMapperImplTests.java
+++ b/web/src/test/java/org/springframework/security/web/PortMapperImplTests.java
@@ -27,7 +27,6 @@ import org.springframework.security.web.PortMapperImpl;
* Tests {@link PortMapperImpl}.
*
* @author Ben Alex
- * @version $Id$
*/
public class PortMapperImplTests extends TestCase {
//~ Methods ========================================================================================================
diff --git a/web/src/test/java/org/springframework/security/web/PortResolverImplTests.java b/web/src/test/java/org/springframework/security/web/PortResolverImplTests.java
index b91fe33cf5..008a958657 100644
--- a/web/src/test/java/org/springframework/security/web/PortResolverImplTests.java
+++ b/web/src/test/java/org/springframework/security/web/PortResolverImplTests.java
@@ -26,7 +26,6 @@ import org.springframework.security.web.PortResolverImpl;
* Tests {@link PortResolverImpl}.
*
* @author Ben Alex
- * @version $Id$
*/
public class PortResolverImplTests extends TestCase {
//~ Constructors ===================================================================================================
diff --git a/web/src/test/java/org/springframework/security/web/access/DefaultWebInvocationPrivilegeEvaluatorTests.java b/web/src/test/java/org/springframework/security/web/access/DefaultWebInvocationPrivilegeEvaluatorTests.java
index 1d91007fc1..283154604e 100644
--- a/web/src/test/java/org/springframework/security/web/access/DefaultWebInvocationPrivilegeEvaluatorTests.java
+++ b/web/src/test/java/org/springframework/security/web/access/DefaultWebInvocationPrivilegeEvaluatorTests.java
@@ -41,7 +41,6 @@ import org.springframework.security.web.util.UrlUtils;
* Tests {@link org.springframework.security.web.access.DefaultWebInvocationPrivilegeEvaluator}.
*
* @author Ben Alex
- * @version $Id$
*/
public class DefaultWebInvocationPrivilegeEvaluatorTests {
private AccessDecisionManager adm;
diff --git a/web/src/test/java/org/springframework/security/web/access/ExceptionTranslationFilterTests.java b/web/src/test/java/org/springframework/security/web/access/ExceptionTranslationFilterTests.java
index 8828eb90a4..f7b75b8af6 100644
--- a/web/src/test/java/org/springframework/security/web/access/ExceptionTranslationFilterTests.java
+++ b/web/src/test/java/org/springframework/security/web/access/ExceptionTranslationFilterTests.java
@@ -49,7 +49,6 @@ import org.springframework.security.web.util.ThrowableAnalyzer;
* Tests {@link ExceptionTranslationFilter}.
*
* @author Ben Alex
- * @version $Id$
*/
public class ExceptionTranslationFilterTests {
diff --git a/web/src/test/java/org/springframework/security/web/access/channel/ChannelDecisionManagerImplTests.java b/web/src/test/java/org/springframework/security/web/access/channel/ChannelDecisionManagerImplTests.java
index 8eadd338c3..20ee3ff87b 100644
--- a/web/src/test/java/org/springframework/security/web/access/channel/ChannelDecisionManagerImplTests.java
+++ b/web/src/test/java/org/springframework/security/web/access/channel/ChannelDecisionManagerImplTests.java
@@ -41,7 +41,6 @@ import org.springframework.security.web.access.channel.ChannelProcessor;
* Tests {@link ChannelDecisionManagerImpl}.
*
* @author Ben Alex
- * @version $Id$
*/
@SuppressWarnings("unchecked")
public class ChannelDecisionManagerImplTests extends TestCase {
diff --git a/web/src/test/java/org/springframework/security/web/access/channel/ChannelProcessingFilterTests.java b/web/src/test/java/org/springframework/security/web/access/channel/ChannelProcessingFilterTests.java
index 8a122bdcfb..5fd81f20ef 100644
--- a/web/src/test/java/org/springframework/security/web/access/channel/ChannelProcessingFilterTests.java
+++ b/web/src/test/java/org/springframework/security/web/access/channel/ChannelProcessingFilterTests.java
@@ -37,7 +37,6 @@ import org.springframework.security.web.access.intercept.FilterInvocationSecurit
* Tests {@link ChannelProcessingFilter}.
*
* @author Ben Alex
- * @version $Id$
*/
public class ChannelProcessingFilterTests {
//~ Methods ========================================================================================================
diff --git a/web/src/test/java/org/springframework/security/web/access/channel/InsecureChannelProcessorTests.java b/web/src/test/java/org/springframework/security/web/access/channel/InsecureChannelProcessorTests.java
index 0245026f37..773626103f 100644
--- a/web/src/test/java/org/springframework/security/web/access/channel/InsecureChannelProcessorTests.java
+++ b/web/src/test/java/org/springframework/security/web/access/channel/InsecureChannelProcessorTests.java
@@ -32,7 +32,6 @@ import org.springframework.security.web.access.channel.InsecureChannelProcessor;
* Tests {@link InsecureChannelProcessor}.
*
* @author Ben Alex
- * @version $Id$
*/
public class InsecureChannelProcessorTests extends TestCase {
diff --git a/web/src/test/java/org/springframework/security/web/access/channel/RetryWithHttpEntryPointTests.java b/web/src/test/java/org/springframework/security/web/access/channel/RetryWithHttpEntryPointTests.java
index 5c6df52a59..c7eb3b713f 100644
--- a/web/src/test/java/org/springframework/security/web/access/channel/RetryWithHttpEntryPointTests.java
+++ b/web/src/test/java/org/springframework/security/web/access/channel/RetryWithHttpEntryPointTests.java
@@ -33,7 +33,6 @@ import java.util.Map;
* Tests {@link RetryWithHttpEntryPoint}.
*
* @author Ben Alex
- * @version $Id$
*/
public class RetryWithHttpEntryPointTests extends TestCase {
//~ Methods ========================================================================================================
diff --git a/web/src/test/java/org/springframework/security/web/access/channel/RetryWithHttpsEntryPointTests.java b/web/src/test/java/org/springframework/security/web/access/channel/RetryWithHttpsEntryPointTests.java
index 0618d67721..b3024bb530 100644
--- a/web/src/test/java/org/springframework/security/web/access/channel/RetryWithHttpsEntryPointTests.java
+++ b/web/src/test/java/org/springframework/security/web/access/channel/RetryWithHttpsEntryPointTests.java
@@ -33,7 +33,6 @@ import java.util.Map;
* Tests {@link RetryWithHttpsEntryPoint}.
*
* @author Ben Alex
- * @version $Id$
*/
public class RetryWithHttpsEntryPointTests extends TestCase {
//~ Methods ========================================================================================================
diff --git a/web/src/test/java/org/springframework/security/web/access/channel/SecureChannelProcessorTests.java b/web/src/test/java/org/springframework/security/web/access/channel/SecureChannelProcessorTests.java
index 49791cb665..8f20c8869a 100644
--- a/web/src/test/java/org/springframework/security/web/access/channel/SecureChannelProcessorTests.java
+++ b/web/src/test/java/org/springframework/security/web/access/channel/SecureChannelProcessorTests.java
@@ -32,7 +32,6 @@ import org.springframework.security.web.access.channel.SecureChannelProcessor;
* Tests {@link SecureChannelProcessor}.
*
* @author Ben Alex
- * @version $Id$
*/
public class SecureChannelProcessorTests extends TestCase {
//~ Methods ========================================================================================================
diff --git a/web/src/test/java/org/springframework/security/web/access/expression/WebSecurityExpressionRootTests.java b/web/src/test/java/org/springframework/security/web/access/expression/WebSecurityExpressionRootTests.java
index 2e23167c83..bad31dea01 100644
--- a/web/src/test/java/org/springframework/security/web/access/expression/WebSecurityExpressionRootTests.java
+++ b/web/src/test/java/org/springframework/security/web/access/expression/WebSecurityExpressionRootTests.java
@@ -16,7 +16,6 @@ import org.springframework.security.web.access.expression.WebSecurityExpressionR
* Tests for {@link WebSecurityExpressionRoot}.
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public class WebSecurityExpressionRootTests {
diff --git a/web/src/test/java/org/springframework/security/web/access/intercept/DefaultFilterInvocationSecurityMetadataSourceTests.java b/web/src/test/java/org/springframework/security/web/access/intercept/DefaultFilterInvocationSecurityMetadataSourceTests.java
index 329f8854b4..9fce8600df 100644
--- a/web/src/test/java/org/springframework/security/web/access/intercept/DefaultFilterInvocationSecurityMetadataSourceTests.java
+++ b/web/src/test/java/org/springframework/security/web/access/intercept/DefaultFilterInvocationSecurityMetadataSourceTests.java
@@ -38,7 +38,6 @@ import org.springframework.security.web.util.AntUrlPathMatcher;
* FilterInvocationDefinitionSourceEditorTests}.
*
* @author Ben Alex
- * @version $Id$
*/
@SuppressWarnings("unchecked")
public class DefaultFilterInvocationSecurityMetadataSourceTests {
diff --git a/web/src/test/java/org/springframework/security/web/access/intercept/FilterInvocationTests.java b/web/src/test/java/org/springframework/security/web/access/intercept/FilterInvocationTests.java
index 1d64a66fd2..8fd098ce7d 100644
--- a/web/src/test/java/org/springframework/security/web/access/intercept/FilterInvocationTests.java
+++ b/web/src/test/java/org/springframework/security/web/access/intercept/FilterInvocationTests.java
@@ -30,7 +30,6 @@ import org.springframework.security.web.FilterInvocation;
*
* @author Ben Alex
* @author colin sampaleanu
- * @version $Id$
*/
public class FilterInvocationTests {
diff --git a/web/src/test/java/org/springframework/security/web/access/intercept/FilterSecurityInterceptorTests.java b/web/src/test/java/org/springframework/security/web/access/intercept/FilterSecurityInterceptorTests.java
index 2e7261c877..c3187a0439 100644
--- a/web/src/test/java/org/springframework/security/web/access/intercept/FilterSecurityInterceptorTests.java
+++ b/web/src/test/java/org/springframework/security/web/access/intercept/FilterSecurityInterceptorTests.java
@@ -46,7 +46,6 @@ import org.springframework.security.web.access.intercept.FilterSecurityIntercept
* Tests {@link FilterSecurityInterceptor}.
*
* @author Ben Alex
- * @version $Id$
*/
public class FilterSecurityInterceptorTests {
private Mockery jmock = new JUnit4Mockery();
diff --git a/web/src/test/java/org/springframework/security/web/access/intercept/RequestKeyTests.java b/web/src/test/java/org/springframework/security/web/access/intercept/RequestKeyTests.java
index ddf3aeec9a..9c5a482225 100644
--- a/web/src/test/java/org/springframework/security/web/access/intercept/RequestKeyTests.java
+++ b/web/src/test/java/org/springframework/security/web/access/intercept/RequestKeyTests.java
@@ -6,18 +6,17 @@ import org.junit.Test;
import org.springframework.security.web.access.intercept.RequestKey;
/**
- *
+ *
* @author Luke Taylor
- * @version $Id$
*
*/
public class RequestKeyTests {
-
+
@Test
public void equalsWorksWithNullHttpMethod() {
RequestKey key1 = new RequestKey("/someurl");
RequestKey key2 = new RequestKey("/someurl");
-
+
assertEquals(key1, key2);
key1 = new RequestKey("/someurl","GET");
assertFalse(key1.equals(key2));
@@ -28,7 +27,7 @@ public class RequestKeyTests {
public void keysWithSameUrlAndHttpMethodAreEqual() {
RequestKey key1 = new RequestKey("/someurl", "GET");
RequestKey key2 = new RequestKey("/someurl", "GET");
-
+
assertEquals(key1, key2);
}
@@ -36,7 +35,7 @@ public class RequestKeyTests {
public void keysWithSameUrlAndDifferentHttpMethodAreNotEqual() {
RequestKey key1 = new RequestKey("/someurl", "GET");
RequestKey key2 = new RequestKey("/someurl", "POST");
-
+
assertFalse(key1.equals(key2));
assertFalse(key2.equals(key1));
}
@@ -45,7 +44,7 @@ public class RequestKeyTests {
public void keysWithDifferentUrlsAreNotEquals() {
RequestKey key1 = new RequestKey("/someurl", "GET");
RequestKey key2 = new RequestKey("/anotherurl", "GET");
-
+
assertFalse(key1.equals(key2));
assertFalse(key2.equals(key1));
}
diff --git a/web/src/test/java/org/springframework/security/web/authentication/AbstractAuthenticationProcessingFilterTests.java b/web/src/test/java/org/springframework/security/web/authentication/AbstractAuthenticationProcessingFilterTests.java
index 7b7a30240b..7199afc7f7 100644
--- a/web/src/test/java/org/springframework/security/web/authentication/AbstractAuthenticationProcessingFilterTests.java
+++ b/web/src/test/java/org/springframework/security/web/authentication/AbstractAuthenticationProcessingFilterTests.java
@@ -57,7 +57,6 @@ import org.springframework.security.web.savedrequest.DefaultSavedRequest;
* Tests {@link AbstractAuthenticationProcessingFilter}.
*
* @author Ben Alex
- * @version $Id$
*/
public class AbstractAuthenticationProcessingFilterTests extends TestCase {
SavedRequestAwareAuthenticationSuccessHandler successHandler;
diff --git a/web/src/test/java/org/springframework/security/web/authentication/AnonymousAuthenticationFilterTests.java b/web/src/test/java/org/springframework/security/web/authentication/AnonymousAuthenticationFilterTests.java
index bdaffa0bf4..0ca3f9302e 100644
--- a/web/src/test/java/org/springframework/security/web/authentication/AnonymousAuthenticationFilterTests.java
+++ b/web/src/test/java/org/springframework/security/web/authentication/AnonymousAuthenticationFilterTests.java
@@ -45,7 +45,6 @@ import org.springframework.security.core.userdetails.memory.UserAttribute;
* Tests {@link AnonymousAuthenticationFilter}.
*
* @author Ben Alex
- * @version $Id$
*/
public class AnonymousAuthenticationFilterTests {
diff --git a/web/src/test/java/org/springframework/security/web/authentication/DefaultLoginPageGeneratingFilterTests.java b/web/src/test/java/org/springframework/security/web/authentication/DefaultLoginPageGeneratingFilterTests.java
index 33f125ee39..f3ae234a32 100644
--- a/web/src/test/java/org/springframework/security/web/authentication/DefaultLoginPageGeneratingFilterTests.java
+++ b/web/src/test/java/org/springframework/security/web/authentication/DefaultLoginPageGeneratingFilterTests.java
@@ -21,7 +21,6 @@ import org.springframework.security.web.authentication.ui.DefaultLoginPageGenera
/**
*
* @author Luke Taylor
- * @version $Id$
* @since 3.0
*/
public class DefaultLoginPageGeneratingFilterTests {
diff --git a/web/src/test/java/org/springframework/security/web/authentication/LoginUrlAuthenticationEntryPointTests.java b/web/src/test/java/org/springframework/security/web/authentication/LoginUrlAuthenticationEntryPointTests.java
index 6e3da2eb02..1ca323587a 100644
--- a/web/src/test/java/org/springframework/security/web/authentication/LoginUrlAuthenticationEntryPointTests.java
+++ b/web/src/test/java/org/springframework/security/web/authentication/LoginUrlAuthenticationEntryPointTests.java
@@ -34,7 +34,6 @@ import java.util.Map;
*
* @author Ben Alex
* @author colin sampaleanu
- * @version $Id$
*/
public class LoginUrlAuthenticationEntryPointTests extends TestCase {
//~ Methods ========================================================================================================
diff --git a/web/src/test/java/org/springframework/security/web/authentication/UsernamePasswordAuthenticationFilterTests.java b/web/src/test/java/org/springframework/security/web/authentication/UsernamePasswordAuthenticationFilterTests.java
index b05497819e..207ca01223 100644
--- a/web/src/test/java/org/springframework/security/web/authentication/UsernamePasswordAuthenticationFilterTests.java
+++ b/web/src/test/java/org/springframework/security/web/authentication/UsernamePasswordAuthenticationFilterTests.java
@@ -38,7 +38,6 @@ import org.springframework.security.core.AuthenticationException;
* Tests {@link UsernamePasswordAuthenticationFilter}.
*
* @author Ben Alex
- * @version $Id$
*/
public class UsernamePasswordAuthenticationFilterTests extends TestCase {
//~ Methods ========================================================================================================
diff --git a/web/src/test/java/org/springframework/security/web/authentication/logout/LogoutHandlerTests.java b/web/src/test/java/org/springframework/security/web/authentication/logout/LogoutHandlerTests.java
index ac359b59d8..10f9abd92f 100644
--- a/web/src/test/java/org/springframework/security/web/authentication/logout/LogoutHandlerTests.java
+++ b/web/src/test/java/org/springframework/security/web/authentication/logout/LogoutHandlerTests.java
@@ -9,7 +9,6 @@ import org.springframework.security.web.authentication.logout.SecurityContextLog
/**
* @author Luke Taylor
- * @version $Id$
*/
public class LogoutHandlerTests extends TestCase {
LogoutFilter filter;
diff --git a/web/src/test/java/org/springframework/security/web/authentication/preauth/Http403ForbiddenEntryPointTests.java b/web/src/test/java/org/springframework/security/web/authentication/preauth/Http403ForbiddenEntryPointTests.java
index f5e07403cf..17edd579e5 100755
--- a/web/src/test/java/org/springframework/security/web/authentication/preauth/Http403ForbiddenEntryPointTests.java
+++ b/web/src/test/java/org/springframework/security/web/authentication/preauth/Http403ForbiddenEntryPointTests.java
@@ -1,31 +1,31 @@
-package org.springframework.security.web.authentication.preauth;
-
-import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException;
-import org.springframework.security.web.authentication.Http403ForbiddenEntryPoint;
-
-import java.io.IOException;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletResponse;
-
-import junit.framework.TestCase;
-
-import org.springframework.mock.web.MockHttpServletRequest;
-import org.springframework.mock.web.MockHttpServletResponse;
-
-public class Http403ForbiddenEntryPointTests extends TestCase {
-
- public void testCommence() {
- MockHttpServletRequest req = new MockHttpServletRequest();
- MockHttpServletResponse resp = new MockHttpServletResponse();
- Http403ForbiddenEntryPoint fep = new Http403ForbiddenEntryPoint();
- try {
- fep.commence(req,resp,new AuthenticationCredentialsNotFoundException("test"));
- assertEquals("Incorrect status",resp.getStatus(),HttpServletResponse.SC_FORBIDDEN);
- } catch (IOException e) {
- fail("Unexpected exception thrown: "+e);
- } catch (ServletException e) {
- fail("Unexpected exception thrown: "+e);
- }
- }
-}
+package org.springframework.security.web.authentication.preauth;
+
+import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException;
+import org.springframework.security.web.authentication.Http403ForbiddenEntryPoint;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletResponse;
+
+import junit.framework.TestCase;
+
+import org.springframework.mock.web.MockHttpServletRequest;
+import org.springframework.mock.web.MockHttpServletResponse;
+
+public class Http403ForbiddenEntryPointTests extends TestCase {
+
+ public void testCommence() {
+ MockHttpServletRequest req = new MockHttpServletRequest();
+ MockHttpServletResponse resp = new MockHttpServletResponse();
+ Http403ForbiddenEntryPoint fep = new Http403ForbiddenEntryPoint();
+ try {
+ fep.commence(req,resp,new AuthenticationCredentialsNotFoundException("test"));
+ assertEquals("Incorrect status",resp.getStatus(),HttpServletResponse.SC_FORBIDDEN);
+ } catch (IOException e) {
+ fail("Unexpected exception thrown: "+e);
+ } catch (ServletException e) {
+ fail("Unexpected exception thrown: "+e);
+ }
+ }
+}
diff --git a/web/src/test/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationProviderTests.java b/web/src/test/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationProviderTests.java
index 7938ca0e35..6843acf778 100755
--- a/web/src/test/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationProviderTests.java
+++ b/web/src/test/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationProviderTests.java
@@ -1,119 +1,119 @@
-package org.springframework.security.web.authentication.preauth;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-import org.junit.Test;
-import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.authority.AuthorityUtils;
-import org.springframework.security.core.userdetails.AuthenticationUserDetailsService;
-import org.springframework.security.core.userdetails.User;
-import org.springframework.security.core.userdetails.UserDetails;
-import org.springframework.security.core.userdetails.UsernameNotFoundException;
-import org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationProvider;
-import org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationToken;
-
-/**
- *
- * @author TSARDD
- * @since 18-okt-2007
- */
-public class PreAuthenticatedAuthenticationProviderTests {
-
- @Test(expected = IllegalArgumentException.class)
- public final void afterPropertiesSet() {
- PreAuthenticatedAuthenticationProvider provider = new PreAuthenticatedAuthenticationProvider();
-
- provider.afterPropertiesSet();
- }
-
- @Test
- public final void authenticateInvalidToken() throws Exception {
- UserDetails ud = new User("dummyUser", "dummyPwd", true, true, true, true, AuthorityUtils.NO_AUTHORITIES );
- PreAuthenticatedAuthenticationProvider provider = getProvider(ud);
- Authentication request = new UsernamePasswordAuthenticationToken("dummyUser", "dummyPwd");
- Authentication result = provider.authenticate(request);
- assertNull(result);
- }
-
- @Test
- public final void nullPrincipalReturnsNullAuthentication() throws Exception {
- PreAuthenticatedAuthenticationProvider provider = new PreAuthenticatedAuthenticationProvider();
- Authentication request = new PreAuthenticatedAuthenticationToken(null, "dummyPwd");
- Authentication result = provider.authenticate(request);
- assertNull(result);
- }
-
- @Test
- public final void authenticateKnownUser() throws Exception {
- UserDetails ud = new User("dummyUser", "dummyPwd", true, true, true, true, AuthorityUtils.NO_AUTHORITIES );
- PreAuthenticatedAuthenticationProvider provider = getProvider(ud);
- Authentication request = new PreAuthenticatedAuthenticationToken("dummyUser", "dummyPwd");
- Authentication result = provider.authenticate(request);
- assertNotNull(result);
- assertEquals(result.getPrincipal(), ud);
- // @TODO: Add more asserts?
- }
-
- @Test
- public final void authenticateIgnoreCredentials() throws Exception {
- UserDetails ud = new User("dummyUser1", "dummyPwd1", true, true, true, true, AuthorityUtils.NO_AUTHORITIES );
- PreAuthenticatedAuthenticationProvider provider = getProvider(ud);
- Authentication request = new PreAuthenticatedAuthenticationToken("dummyUser1", "dummyPwd2");
- Authentication result = provider.authenticate(request);
- assertNotNull(result);
- assertEquals(result.getPrincipal(), ud);
- // @TODO: Add more asserts?
- }
-
- @Test(expected=UsernameNotFoundException.class)
- public final void authenticateUnknownUserThrowsException() throws Exception {
- UserDetails ud = new User("dummyUser1", "dummyPwd", true, true, true, true, AuthorityUtils.NO_AUTHORITIES );
- PreAuthenticatedAuthenticationProvider provider = getProvider(ud);
- Authentication request = new PreAuthenticatedAuthenticationToken("dummyUser2", "dummyPwd");
- provider.authenticate(request);
- }
-
- @Test
- public final void supportsArbitraryObject() throws Exception {
- PreAuthenticatedAuthenticationProvider provider = getProvider(null);
- assertFalse(provider.supports(Authentication.class));
- }
-
- @Test
- public final void supportsPreAuthenticatedAuthenticationToken() throws Exception {
- PreAuthenticatedAuthenticationProvider provider = getProvider(null);
- assertTrue(provider.supports(PreAuthenticatedAuthenticationToken.class));
- }
-
- @Test
- public void getSetOrder() throws Exception {
- PreAuthenticatedAuthenticationProvider provider = getProvider(null);
- provider.setOrder(333);
- assertEquals(provider.getOrder(), 333);
- }
-
- private PreAuthenticatedAuthenticationProvider getProvider(UserDetails aUserDetails) throws Exception {
- PreAuthenticatedAuthenticationProvider result = new PreAuthenticatedAuthenticationProvider();
- result.setPreAuthenticatedUserDetailsService(getPreAuthenticatedUserDetailsService(aUserDetails));
- result.afterPropertiesSet();
- return result;
- }
-
- private AuthenticationUserDetailsService getPreAuthenticatedUserDetailsService(final UserDetails aUserDetails) {
- return new AuthenticationUserDetailsService() {
- public UserDetails loadUserDetails(Authentication token) throws UsernameNotFoundException {
- if (aUserDetails != null && aUserDetails.getUsername().equals(token.getName())) {
- return aUserDetails;
- }
-
- throw new UsernameNotFoundException("notfound");
- }
- };
- }
-
-}
+package org.springframework.security.web.authentication.preauth;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.Authentication;
+import org.springframework.security.core.authority.AuthorityUtils;
+import org.springframework.security.core.userdetails.AuthenticationUserDetailsService;
+import org.springframework.security.core.userdetails.User;
+import org.springframework.security.core.userdetails.UserDetails;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationProvider;
+import org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationToken;
+
+/**
+ *
+ * @author TSARDD
+ * @since 18-okt-2007
+ */
+public class PreAuthenticatedAuthenticationProviderTests {
+
+ @Test(expected = IllegalArgumentException.class)
+ public final void afterPropertiesSet() {
+ PreAuthenticatedAuthenticationProvider provider = new PreAuthenticatedAuthenticationProvider();
+
+ provider.afterPropertiesSet();
+ }
+
+ @Test
+ public final void authenticateInvalidToken() throws Exception {
+ UserDetails ud = new User("dummyUser", "dummyPwd", true, true, true, true, AuthorityUtils.NO_AUTHORITIES );
+ PreAuthenticatedAuthenticationProvider provider = getProvider(ud);
+ Authentication request = new UsernamePasswordAuthenticationToken("dummyUser", "dummyPwd");
+ Authentication result = provider.authenticate(request);
+ assertNull(result);
+ }
+
+ @Test
+ public final void nullPrincipalReturnsNullAuthentication() throws Exception {
+ PreAuthenticatedAuthenticationProvider provider = new PreAuthenticatedAuthenticationProvider();
+ Authentication request = new PreAuthenticatedAuthenticationToken(null, "dummyPwd");
+ Authentication result = provider.authenticate(request);
+ assertNull(result);
+ }
+
+ @Test
+ public final void authenticateKnownUser() throws Exception {
+ UserDetails ud = new User("dummyUser", "dummyPwd", true, true, true, true, AuthorityUtils.NO_AUTHORITIES );
+ PreAuthenticatedAuthenticationProvider provider = getProvider(ud);
+ Authentication request = new PreAuthenticatedAuthenticationToken("dummyUser", "dummyPwd");
+ Authentication result = provider.authenticate(request);
+ assertNotNull(result);
+ assertEquals(result.getPrincipal(), ud);
+ // @TODO: Add more asserts?
+ }
+
+ @Test
+ public final void authenticateIgnoreCredentials() throws Exception {
+ UserDetails ud = new User("dummyUser1", "dummyPwd1", true, true, true, true, AuthorityUtils.NO_AUTHORITIES );
+ PreAuthenticatedAuthenticationProvider provider = getProvider(ud);
+ Authentication request = new PreAuthenticatedAuthenticationToken("dummyUser1", "dummyPwd2");
+ Authentication result = provider.authenticate(request);
+ assertNotNull(result);
+ assertEquals(result.getPrincipal(), ud);
+ // @TODO: Add more asserts?
+ }
+
+ @Test(expected=UsernameNotFoundException.class)
+ public final void authenticateUnknownUserThrowsException() throws Exception {
+ UserDetails ud = new User("dummyUser1", "dummyPwd", true, true, true, true, AuthorityUtils.NO_AUTHORITIES );
+ PreAuthenticatedAuthenticationProvider provider = getProvider(ud);
+ Authentication request = new PreAuthenticatedAuthenticationToken("dummyUser2", "dummyPwd");
+ provider.authenticate(request);
+ }
+
+ @Test
+ public final void supportsArbitraryObject() throws Exception {
+ PreAuthenticatedAuthenticationProvider provider = getProvider(null);
+ assertFalse(provider.supports(Authentication.class));
+ }
+
+ @Test
+ public final void supportsPreAuthenticatedAuthenticationToken() throws Exception {
+ PreAuthenticatedAuthenticationProvider provider = getProvider(null);
+ assertTrue(provider.supports(PreAuthenticatedAuthenticationToken.class));
+ }
+
+ @Test
+ public void getSetOrder() throws Exception {
+ PreAuthenticatedAuthenticationProvider provider = getProvider(null);
+ provider.setOrder(333);
+ assertEquals(provider.getOrder(), 333);
+ }
+
+ private PreAuthenticatedAuthenticationProvider getProvider(UserDetails aUserDetails) throws Exception {
+ PreAuthenticatedAuthenticationProvider result = new PreAuthenticatedAuthenticationProvider();
+ result.setPreAuthenticatedUserDetailsService(getPreAuthenticatedUserDetailsService(aUserDetails));
+ result.afterPropertiesSet();
+ return result;
+ }
+
+ private AuthenticationUserDetailsService getPreAuthenticatedUserDetailsService(final UserDetails aUserDetails) {
+ return new AuthenticationUserDetailsService() {
+ public UserDetails loadUserDetails(Authentication token) throws UsernameNotFoundException {
+ if (aUserDetails != null && aUserDetails.getUsername().equals(token.getName())) {
+ return aUserDetails;
+ }
+
+ throw new UsernameNotFoundException("notfound");
+ }
+ };
+ }
+
+}
diff --git a/web/src/test/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationTokenTests.java b/web/src/test/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationTokenTests.java
index 1deebc46e3..6592e727e7 100755
--- a/web/src/test/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationTokenTests.java
+++ b/web/src/test/java/org/springframework/security/web/authentication/preauth/PreAuthenticatedAuthenticationTokenTests.java
@@ -1,57 +1,57 @@
-package org.springframework.security.web.authentication.preauth;
-
-import java.util.Collection;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.springframework.security.core.GrantedAuthority;
-import org.springframework.security.core.authority.AuthorityUtils;
-import org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationToken;
-
-/**
- *
- * @author TSARDD
- * @since 18-okt-2007
- */
-public class PreAuthenticatedAuthenticationTokenTests extends TestCase {
-
- public void testPreAuthenticatedAuthenticationTokenRequestWithDetails() {
- Object principal = "dummyUser";
- Object credentials = "dummyCredentials";
- Object details = "dummyDetails";
- PreAuthenticatedAuthenticationToken token = new PreAuthenticatedAuthenticationToken(principal, credentials);
- token.setDetails(details);
- assertEquals(principal, token.getPrincipal());
- assertEquals(credentials, token.getCredentials());
- assertEquals(details, token.getDetails());
- assertTrue(token.getAuthorities().isEmpty());
- }
-
- public void testPreAuthenticatedAuthenticationTokenRequestWithoutDetails() {
- Object principal = "dummyUser";
- Object credentials = "dummyCredentials";
- PreAuthenticatedAuthenticationToken token = new PreAuthenticatedAuthenticationToken(principal, credentials);
- assertEquals(principal, token.getPrincipal());
- assertEquals(credentials, token.getCredentials());
- assertNull(token.getDetails());
- assertTrue(token.getAuthorities().isEmpty());
- }
-
- public void testPreAuthenticatedAuthenticationTokenResponse() {
- Object principal = "dummyUser";
- Object credentials = "dummyCredentials";
- List