Browse Source

SEC-671: Changed AuthenticationDetailsSource to take an object as argument instead of an HttpServletRequest and renamed AuthenticationDetailsSourceImpl to WebAuthenticationDetailsSource. Also removed some preauth dependencies on commons lang

Luke Taylor 17 years ago
parent
commit
42a80931c1
16 changed files with 55 additions and 44 deletions
  1. 2 2
      core/src/main/java/org/springframework/security/authoritymapping/XmlMappableAttributesRetriever.java
  2. 2 2
      core/src/main/java/org/springframework/security/providers/anonymous/AnonymousProcessingFilter.java
  3. 1 1
      core/src/main/java/org/springframework/security/providers/preauth/PreAuthenticatedAuthenticationProvider.java
  4. 1 1
      core/src/main/java/org/springframework/security/ui/AbstractProcessingFilter.java
  5. 2 3
      core/src/main/java/org/springframework/security/ui/AuthenticationDetailsSource.java
  6. 12 6
      core/src/main/java/org/springframework/security/ui/WebAuthenticationDetailsSource.java
  7. 2 2
      core/src/main/java/org/springframework/security/ui/basicauth/BasicProcessingFilter.java
  8. 2 2
      core/src/main/java/org/springframework/security/ui/digestauth/DigestProcessingFilter.java
  9. 2 2
      core/src/main/java/org/springframework/security/ui/preauth/AbstractPreAuthenticatedProcessingFilter.java
  10. 3 2
      core/src/main/java/org/springframework/security/ui/preauth/PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetails.java
  11. 16 10
      core/src/main/java/org/springframework/security/ui/preauth/j2ee/J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource.java
  12. 2 2
      core/src/main/java/org/springframework/security/ui/rememberme/AbstractRememberMeServices.java
  13. 2 2
      core/src/main/java/org/springframework/security/ui/switchuser/SwitchUserProcessingFilter.java
  14. 2 2
      core/src/main/java/org/springframework/security/ui/x509/X509ProcessingFilter.java
  15. 2 3
      core/src/test/java/org/springframework/security/ui/preauth/PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetailsTests.java
  16. 2 2
      ntlm/src/main/java/org/springframework/security/ui/ntlm/NtlmProcessingFilter.java

+ 2 - 2
core/src/main/java/org/springframework/security/authoritymapping/XmlMappableAttributesRetriever.java

@@ -4,6 +4,7 @@ import java.io.FilterInputStream;
 import java.io.IOException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStream;
 import java.io.StringReader;
 import java.io.StringReader;
+import java.util.Arrays;
 import java.util.List;
 import java.util.List;
 
 
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilder;
@@ -11,7 +12,6 @@ import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.FactoryConfigurationError;
 import javax.xml.parsers.FactoryConfigurationError;
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.parsers.ParserConfigurationException;
 
 
-import org.apache.commons.lang.ArrayUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.commons.logging.LogFactory;
 import org.jaxen.JaxenException;
 import org.jaxen.JaxenException;
@@ -75,7 +75,7 @@ public abstract class XmlMappableAttributesRetriever implements MappableAttribut
             Document doc = getDocument(aStream);
             Document doc = getDocument(aStream);
             String[] roles = getMappableAttributes(doc);
             String[] roles = getMappableAttributes(doc);
             if (logger.isDebugEnabled()) {
             if (logger.isDebugEnabled()) {
-                logger.debug("Mappable attributes from XML document: " + ArrayUtils.toString(roles));
+                logger.debug("Mappable attributes from XML document: " + Arrays.asList(roles));
             }
             }
             return roles;
             return roles;
         } finally {
         } finally {

+ 2 - 2
core/src/main/java/org/springframework/security/providers/anonymous/AnonymousProcessingFilter.java

@@ -20,7 +20,7 @@ import org.springframework.security.Authentication;
 import org.springframework.security.context.SecurityContextHolder;
 import org.springframework.security.context.SecurityContextHolder;
 
 
 import org.springframework.security.ui.AuthenticationDetailsSource;
 import org.springframework.security.ui.AuthenticationDetailsSource;
-import org.springframework.security.ui.AuthenticationDetailsSourceImpl;
+import org.springframework.security.ui.WebAuthenticationDetailsSource;
 import org.springframework.security.ui.FilterChainOrder;
 import org.springframework.security.ui.FilterChainOrder;
 import org.springframework.security.ui.SpringSecurityFilter;
 import org.springframework.security.ui.SpringSecurityFilter;
 
 
@@ -56,7 +56,7 @@ public class AnonymousProcessingFilter  extends SpringSecurityFilter  implements
 
 
     //~ Instance fields ================================================================================================
     //~ Instance fields ================================================================================================
 
 
-    private AuthenticationDetailsSource authenticationDetailsSource = new AuthenticationDetailsSourceImpl();
+    private AuthenticationDetailsSource authenticationDetailsSource = new WebAuthenticationDetailsSource();
     private String key;
     private String key;
     private UserAttribute userAttribute;
     private UserAttribute userAttribute;
     private boolean removeAfterRequest = true;
     private boolean removeAfterRequest = true;

+ 1 - 1
core/src/main/java/org/springframework/security/providers/preauth/PreAuthenticatedAuthenticationProvider.java

@@ -83,7 +83,7 @@ public class PreAuthenticatedAuthenticationProvider implements AuthenticationPro
     }
     }
 
 
     /**
     /**
-     * Set the PreAuthenticatedUserDetailsServices to be used.
+     * Set the AuthenticatedUserDetailsServices to be used.
      *
      *
      * @param aPreAuthenticatedUserDetailsService
      * @param aPreAuthenticatedUserDetailsService
      */
      */

+ 1 - 1
core/src/main/java/org/springframework/security/ui/AbstractProcessingFilter.java

@@ -143,7 +143,7 @@ public abstract class AbstractProcessingFilter extends SpringSecurityFilter impl
 
 
     protected ApplicationEventPublisher eventPublisher;
     protected ApplicationEventPublisher eventPublisher;
 
 
-    protected AuthenticationDetailsSource authenticationDetailsSource = new AuthenticationDetailsSourceImpl();
+    protected AuthenticationDetailsSource authenticationDetailsSource = new WebAuthenticationDetailsSource();
 
 
     private AuthenticationManager authenticationManager;
     private AuthenticationManager authenticationManager;
 
 

+ 2 - 3
core/src/main/java/org/springframework/security/ui/AuthenticationDetailsSource.java

@@ -15,7 +15,6 @@
 
 
 package org.springframework.security.ui;
 package org.springframework.security.ui;
 
 
-import javax.servlet.http.HttpServletRequest;
 
 
 
 
 /**
 /**
@@ -31,9 +30,9 @@ public interface AuthenticationDetailsSource {
     /**
     /**
      * Called by a class when it wishes a new authentication details instance to be created.
      * Called by a class when it wishes a new authentication details instance to be created.
      *
      *
-     * @param request the request object, which may be used by the authentication details object
+     * @param context the request object, which may be used by the authentication details object
      *
      *
      * @return a fully-configured authentication details instance
      * @return a fully-configured authentication details instance
      */
      */
-    Object buildDetails(HttpServletRequest request);
+    Object buildDetails(Object context);
 }
 }

+ 12 - 6
core/src/main/java/org/springframework/security/ui/AuthenticationDetailsSourceImpl.java → core/src/main/java/org/springframework/security/ui/WebAuthenticationDetailsSource.java

@@ -25,25 +25,31 @@ import javax.servlet.http.HttpServletRequest;
 
 
 
 
 /**
 /**
- * Base implementation of {@link AuthenticationDetailsSource}.<P>By default will create an instance of
- * <code>WebAuthenticationDetails</code>. Any object that accepts a <code>HttpServletRequest</code> as its sole
- * constructor can be used instead of this default.</p>
+ * Implementation of {@link AuthenticationDetailsSource} which builds the details object from
+ * an <tt>HttpServletRequest</tt> object.
+ * <p>
+ * By default will create an instance of <code>WebAuthenticationDetails</code>. Any object that accepts a 
+ * <code>HttpServletRequest</code> as its sole constructor can be used instead of this default.
  *
  *
  * @author Ben Alex
  * @author Ben Alex
  * @version $Id$
  * @version $Id$
  */
  */
-public class AuthenticationDetailsSourceImpl implements AuthenticationDetailsSource {
+public class WebAuthenticationDetailsSource implements AuthenticationDetailsSource {
     //~ Instance fields ================================================================================================
     //~ Instance fields ================================================================================================
 
 
     private Class clazz = WebAuthenticationDetails.class;
     private Class clazz = WebAuthenticationDetails.class;
 
 
     //~ Methods ========================================================================================================
     //~ Methods ========================================================================================================
 
 
-    public Object buildDetails(HttpServletRequest request) {
+    /**
+     * @param context the <tt>HttpServletRequest</tt> object.
+     */
+    public Object buildDetails(Object context) {
+        Assert.isInstanceOf(HttpServletRequest.class, context);
         try {
         try {
             Constructor constructor = clazz.getConstructor(new Class[] {HttpServletRequest.class});
             Constructor constructor = clazz.getConstructor(new Class[] {HttpServletRequest.class});
 
 
-            return constructor.newInstance(new Object[] {request});
+            return constructor.newInstance(new Object[] {context});
         } catch (NoSuchMethodException ex) {
         } catch (NoSuchMethodException ex) {
             ReflectionUtils.handleReflectionException(ex);
             ReflectionUtils.handleReflectionException(ex);
         } catch (InvocationTargetException ex) {
         } catch (InvocationTargetException ex) {

+ 2 - 2
core/src/main/java/org/springframework/security/ui/basicauth/BasicProcessingFilter.java

@@ -33,7 +33,7 @@ import org.springframework.security.context.SecurityContextHolder;
 import org.springframework.security.providers.UsernamePasswordAuthenticationToken;
 import org.springframework.security.providers.UsernamePasswordAuthenticationToken;
 import org.springframework.security.providers.anonymous.AnonymousAuthenticationToken;
 import org.springframework.security.providers.anonymous.AnonymousAuthenticationToken;
 import org.springframework.security.ui.AuthenticationDetailsSource;
 import org.springframework.security.ui.AuthenticationDetailsSource;
-import org.springframework.security.ui.AuthenticationDetailsSourceImpl;
+import org.springframework.security.ui.WebAuthenticationDetailsSource;
 import org.springframework.security.ui.AuthenticationEntryPoint;
 import org.springframework.security.ui.AuthenticationEntryPoint;
 import org.springframework.security.ui.FilterChainOrder;
 import org.springframework.security.ui.FilterChainOrder;
 import org.springframework.security.ui.SpringSecurityFilter;
 import org.springframework.security.ui.SpringSecurityFilter;
@@ -93,7 +93,7 @@ public class BasicProcessingFilter extends SpringSecurityFilter implements Initi
 
 
     //~ Instance fields ================================================================================================
     //~ Instance fields ================================================================================================
 
 
-    private AuthenticationDetailsSource authenticationDetailsSource = new AuthenticationDetailsSourceImpl();
+    private AuthenticationDetailsSource authenticationDetailsSource = new WebAuthenticationDetailsSource();
     private AuthenticationEntryPoint authenticationEntryPoint;
     private AuthenticationEntryPoint authenticationEntryPoint;
     private AuthenticationManager authenticationManager;
     private AuthenticationManager authenticationManager;
     private RememberMeServices rememberMeServices;
     private RememberMeServices rememberMeServices;

+ 2 - 2
core/src/main/java/org/springframework/security/ui/digestauth/DigestProcessingFilter.java

@@ -27,7 +27,7 @@ import org.springframework.security.providers.dao.UserCache;
 import org.springframework.security.providers.dao.cache.NullUserCache;
 import org.springframework.security.providers.dao.cache.NullUserCache;
 
 
 import org.springframework.security.ui.AuthenticationDetailsSource;
 import org.springframework.security.ui.AuthenticationDetailsSource;
-import org.springframework.security.ui.AuthenticationDetailsSourceImpl;
+import org.springframework.security.ui.WebAuthenticationDetailsSource;
 
 
 import org.springframework.security.userdetails.UserDetails;
 import org.springframework.security.userdetails.UserDetails;
 import org.springframework.security.userdetails.UserDetailsService;
 import org.springframework.security.userdetails.UserDetailsService;
@@ -91,7 +91,7 @@ public class DigestProcessingFilter implements Filter, InitializingBean, Message
 
 
     //~ Instance fields ================================================================================================
     //~ Instance fields ================================================================================================
 
 
-    private AuthenticationDetailsSource authenticationDetailsSource = new AuthenticationDetailsSourceImpl();
+    private AuthenticationDetailsSource authenticationDetailsSource = new WebAuthenticationDetailsSource();
     private DigestProcessingFilterEntryPoint authenticationEntryPoint;
     private DigestProcessingFilterEntryPoint authenticationEntryPoint;
     protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
     protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
     private UserCache userCache = new NullUserCache();
     private UserCache userCache = new NullUserCache();

+ 2 - 2
core/src/main/java/org/springframework/security/ui/preauth/AbstractPreAuthenticatedProcessingFilter.java

@@ -13,7 +13,7 @@ import org.springframework.security.Authentication;
 import org.springframework.security.AuthenticationException;
 import org.springframework.security.AuthenticationException;
 import org.springframework.security.event.authentication.InteractiveAuthenticationSuccessEvent;
 import org.springframework.security.event.authentication.InteractiveAuthenticationSuccessEvent;
 import org.springframework.security.ui.AuthenticationDetailsSource;
 import org.springframework.security.ui.AuthenticationDetailsSource;
-import org.springframework.security.ui.AuthenticationDetailsSourceImpl;
+import org.springframework.security.ui.WebAuthenticationDetailsSource;
 import org.springframework.security.ui.AbstractProcessingFilter;
 import org.springframework.security.ui.AbstractProcessingFilter;
 import org.springframework.security.ui.SpringSecurityFilter;
 import org.springframework.security.ui.SpringSecurityFilter;
 import org.springframework.security.context.SecurityContextHolder;
 import org.springframework.security.context.SecurityContextHolder;
@@ -40,7 +40,7 @@ public abstract class AbstractPreAuthenticatedProcessingFilter extends SpringSec
 
 
     private ApplicationEventPublisher eventPublisher = null;
     private ApplicationEventPublisher eventPublisher = null;
 
 
-    private AuthenticationDetailsSource authenticationDetailsSource = new AuthenticationDetailsSourceImpl();
+    private AuthenticationDetailsSource authenticationDetailsSource = new WebAuthenticationDetailsSource();
 
 
     private AuthenticationManager authenticationManager = null;
     private AuthenticationManager authenticationManager = null;
 
 

+ 3 - 2
core/src/main/java/org/springframework/security/ui/preauth/PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetails.java

@@ -1,5 +1,7 @@
 package org.springframework.security.ui.preauth;
 package org.springframework.security.ui.preauth;
 
 
+import java.util.Arrays;
+
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 
 
 import org.springframework.security.providers.preauth.PreAuthenticatedGrantedAuthoritiesRetriever;
 import org.springframework.security.providers.preauth.PreAuthenticatedGrantedAuthoritiesRetriever;
@@ -7,7 +9,6 @@ import org.springframework.security.providers.preauth.PreAuthenticatedGrantedAut
 import org.springframework.security.ui.WebAuthenticationDetails;
 import org.springframework.security.ui.WebAuthenticationDetails;
 import org.springframework.security.GrantedAuthority;
 import org.springframework.security.GrantedAuthority;
 
 
-import org.apache.commons.lang.StringUtils;
 import org.springframework.util.Assert;
 import org.springframework.util.Assert;
 
 
 /**
 /**
@@ -33,7 +34,7 @@ public class PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetails extends
 	public String toString() {
 	public String toString() {
 		StringBuffer sb = new StringBuffer();
 		StringBuffer sb = new StringBuffer();
 		sb.append(super.toString() + "; ");
 		sb.append(super.toString() + "; ");
-		sb.append("preAuthenticatedGrantedAuthorities: " + StringUtils.join(preAuthenticatedGrantedAuthorities, ", "));
+		sb.append("preAuthenticatedGrantedAuthorities: " + Arrays.asList(preAuthenticatedGrantedAuthorities));
 		return sb.toString();
 		return sb.toString();
 	}
 	}
 
 

+ 16 - 10
core/src/main/java/org/springframework/security/ui/preauth/j2ee/J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource.java

@@ -1,23 +1,29 @@
 package org.springframework.security.ui.preauth.j2ee;
 package org.springframework.security.ui.preauth.j2ee;
 
 
 import org.springframework.security.ui.preauth.PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetails;
 import org.springframework.security.ui.preauth.PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetails;
-import org.springframework.security.ui.AuthenticationDetailsSourceImpl;
+import org.springframework.security.ui.WebAuthenticationDetailsSource;
 import org.springframework.security.providers.preauth.PreAuthenticatedGrantedAuthoritiesSetter;
 import org.springframework.security.providers.preauth.PreAuthenticatedGrantedAuthoritiesSetter;
 import org.springframework.security.GrantedAuthority;
 import org.springframework.security.GrantedAuthority;
 import org.springframework.security.authoritymapping.Attributes2GrantedAuthoritiesMapper;
 import org.springframework.security.authoritymapping.Attributes2GrantedAuthoritiesMapper;
 import org.springframework.security.authoritymapping.MappableAttributesRetriever;
 import org.springframework.security.authoritymapping.MappableAttributesRetriever;
 
 
 import java.util.ArrayList;
 import java.util.ArrayList;
+import java.util.Arrays;
 
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequest;
 
 
-import org.apache.commons.lang.StringUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.commons.logging.LogFactory;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.util.Assert;
 import org.springframework.util.Assert;
 
 
-public class J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource extends AuthenticationDetailsSourceImpl implements InitializingBean {
+/**
+ * Extended AuthenticationDetailsSource which allows
+ *
+ * @author Ruud Senden
+ * @since 2.0
+ */
+public class J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource extends WebAuthenticationDetailsSource implements InitializingBean {
     private static final Log logger = LogFactory.getLog(J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource.class);
     private static final Log logger = LogFactory.getLog(J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource.class);
 
 
     private String[] j2eeMappableRoles;
     private String[] j2eeMappableRoles;
@@ -41,18 +47,18 @@ public class J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource extends Aut
     }
     }
 
 
     /**
     /**
-     * Build the authentication details object. If the speficied authentication
+     * Build the authentication details object. If the specified authentication
      * details class implements the PreAuthenticatedGrantedAuthoritiesSetter, a
      * details class implements the PreAuthenticatedGrantedAuthoritiesSetter, a
      * list of pre-authenticated Granted Authorities will be set based on the
      * list of pre-authenticated Granted Authorities will be set based on the
      * J2EE roles for the current user.
      * J2EE roles for the current user.
      *
      *
-     * @see org.springframework.security.ui.AuthenticationDetailsSource#buildDetails(javax.servlet.http.HttpServletRequest)
+     * @see org.springframework.security.ui.AuthenticationDetailsSource#buildDetails(Object)
      */
      */
-    public Object buildDetails(HttpServletRequest request) {
-        Object result = super.buildDetails(request);
+    public Object buildDetails(Object context) {
+        Object result = super.buildDetails(context);
         if (result instanceof PreAuthenticatedGrantedAuthoritiesSetter) {
         if (result instanceof PreAuthenticatedGrantedAuthoritiesSetter) {
             ((PreAuthenticatedGrantedAuthoritiesSetter) result)
             ((PreAuthenticatedGrantedAuthoritiesSetter) result)
-                    .setPreAuthenticatedGrantedAuthorities(getJ2eeBasedGrantedAuthorities(request));
+                    .setPreAuthenticatedGrantedAuthorities(getJ2eeBasedGrantedAuthorities((HttpServletRequest)context));
         }
         }
         return result;
         return result;
     }
     }
@@ -76,8 +82,8 @@ public class J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource extends Aut
         j2eeUserRoles = (String[]) j2eeUserRolesList.toArray(j2eeUserRoles);
         j2eeUserRoles = (String[]) j2eeUserRolesList.toArray(j2eeUserRoles);
         GrantedAuthority[] userGas = j2eeUserRoles2GrantedAuthoritiesMapper.getGrantedAuthorities(j2eeUserRoles);
         GrantedAuthority[] userGas = j2eeUserRoles2GrantedAuthoritiesMapper.getGrantedAuthorities(j2eeUserRoles);
         if (logger.isDebugEnabled()) {
         if (logger.isDebugEnabled()) {
-            logger.debug("J2EE user roles [" + StringUtils.join(j2eeUserRoles) + "] mapped to Granted Authorities: ["
-                    + StringUtils.join(userGas) + "]");
+            logger.debug("J2EE user roles [" + j2eeUserRolesList + "] mapped to Granted Authorities: ["
+                    + Arrays.asList(userGas) + "]");
         }
         }
         return userGas;
         return userGas;
     }
     }

+ 2 - 2
core/src/main/java/org/springframework/security/ui/rememberme/AbstractRememberMeServices.java

@@ -10,7 +10,7 @@ import org.springframework.security.SpringSecurityMessageSource;
 import org.springframework.security.AccountStatusException;
 import org.springframework.security.AccountStatusException;
 import org.springframework.security.providers.rememberme.RememberMeAuthenticationToken;
 import org.springframework.security.providers.rememberme.RememberMeAuthenticationToken;
 import org.springframework.security.ui.AuthenticationDetailsSource;
 import org.springframework.security.ui.AuthenticationDetailsSource;
-import org.springframework.security.ui.AuthenticationDetailsSourceImpl;
+import org.springframework.security.ui.WebAuthenticationDetailsSource;
 import org.springframework.security.ui.logout.LogoutHandler;
 import org.springframework.security.ui.logout.LogoutHandler;
 import org.springframework.security.userdetails.UserDetails;
 import org.springframework.security.userdetails.UserDetails;
 import org.springframework.security.userdetails.UserDetailsService;
 import org.springframework.security.userdetails.UserDetailsService;
@@ -47,7 +47,7 @@ public abstract class AbstractRememberMeServices implements RememberMeServices,
 
 
     private UserDetailsService userDetailsService;
     private UserDetailsService userDetailsService;
     private UserDetailsChecker userDetailsChecker = new AccountStatusUserDetailsChecker();
     private UserDetailsChecker userDetailsChecker = new AccountStatusUserDetailsChecker();
-    private AuthenticationDetailsSource authenticationDetailsSource = new AuthenticationDetailsSourceImpl();
+    private AuthenticationDetailsSource authenticationDetailsSource = new WebAuthenticationDetailsSource();
 
 
     private String cookieName = SPRING_SECURITY_REMEMBER_ME_COOKIE_KEY;
     private String cookieName = SPRING_SECURITY_REMEMBER_ME_COOKIE_KEY;
 	private String parameter = DEFAULT_PARAMETER;
 	private String parameter = DEFAULT_PARAMETER;

+ 2 - 2
core/src/main/java/org/springframework/security/ui/switchuser/SwitchUserProcessingFilter.java

@@ -29,7 +29,7 @@ import org.springframework.security.context.SecurityContextHolder;
 import org.springframework.security.event.authentication.AuthenticationSwitchUserEvent;
 import org.springframework.security.event.authentication.AuthenticationSwitchUserEvent;
 import org.springframework.security.providers.UsernamePasswordAuthenticationToken;
 import org.springframework.security.providers.UsernamePasswordAuthenticationToken;
 import org.springframework.security.ui.AuthenticationDetailsSource;
 import org.springframework.security.ui.AuthenticationDetailsSource;
-import org.springframework.security.ui.AuthenticationDetailsSourceImpl;
+import org.springframework.security.ui.WebAuthenticationDetailsSource;
 import org.springframework.security.ui.SpringSecurityFilter;
 import org.springframework.security.ui.SpringSecurityFilter;
 import org.springframework.security.ui.FilterChainOrder;
 import org.springframework.security.ui.FilterChainOrder;
 import org.springframework.security.ui.AbstractProcessingFilter;
 import org.springframework.security.ui.AbstractProcessingFilter;
@@ -113,7 +113,7 @@ public class SwitchUserProcessingFilter extends SpringSecurityFilter implements
     //~ Instance fields ================================================================================================
     //~ Instance fields ================================================================================================
 
 
     private ApplicationEventPublisher eventPublisher;
     private ApplicationEventPublisher eventPublisher;
-    private AuthenticationDetailsSource authenticationDetailsSource = new AuthenticationDetailsSourceImpl();
+    private AuthenticationDetailsSource authenticationDetailsSource = new WebAuthenticationDetailsSource();
     protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
     protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
     private String exitUserUrl = "/j_spring_security_exit_user";
     private String exitUserUrl = "/j_spring_security_exit_user";
     private String switchUserUrl = "/j_spring_security_switch_user";
     private String switchUserUrl = "/j_spring_security_switch_user";

+ 2 - 2
core/src/main/java/org/springframework/security/ui/x509/X509ProcessingFilter.java

@@ -27,7 +27,7 @@ import org.springframework.security.providers.x509.X509AuthenticationToken;
 
 
 import org.springframework.security.ui.AbstractProcessingFilter;
 import org.springframework.security.ui.AbstractProcessingFilter;
 import org.springframework.security.ui.AuthenticationDetailsSource;
 import org.springframework.security.ui.AuthenticationDetailsSource;
-import org.springframework.security.ui.AuthenticationDetailsSourceImpl;
+import org.springframework.security.ui.WebAuthenticationDetailsSource;
 
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.commons.logging.LogFactory;
@@ -77,7 +77,7 @@ public class X509ProcessingFilter implements Filter, InitializingBean, Applicati
     //~ Instance fields ================================================================================================
     //~ Instance fields ================================================================================================
 
 
     private ApplicationEventPublisher eventPublisher;
     private ApplicationEventPublisher eventPublisher;
-    private AuthenticationDetailsSource authenticationDetailsSource = new AuthenticationDetailsSourceImpl();
+    private AuthenticationDetailsSource authenticationDetailsSource = new WebAuthenticationDetailsSource();
     private AuthenticationManager authenticationManager;
     private AuthenticationManager authenticationManager;
 
 
     //~ Methods ========================================================================================================
     //~ Methods ========================================================================================================

+ 2 - 3
core/src/test/java/org/springframework/security/ui/preauth/PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetailsTests.java

@@ -12,7 +12,6 @@ import javax.servlet.http.HttpServletRequest;
 
 
 import junit.framework.TestCase;
 import junit.framework.TestCase;
 
 
-import org.apache.commons.lang.StringUtils;
 import org.springframework.mock.web.MockHttpServletRequest;
 import org.springframework.mock.web.MockHttpServletRequest;
 
 
 /**
 /**
@@ -28,8 +27,8 @@ public class PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetailsTests ext
 		GrantedAuthority[] gas = new GrantedAuthority[] { new GrantedAuthorityImpl("Role1"), new GrantedAuthorityImpl("Role2") };
 		GrantedAuthority[] gas = new GrantedAuthority[] { new GrantedAuthorityImpl("Role1"), new GrantedAuthorityImpl("Role2") };
 		details.setPreAuthenticatedGrantedAuthorities(gas);
 		details.setPreAuthenticatedGrantedAuthorities(gas);
 		String toString = details.toString();
 		String toString = details.toString();
-		assertTrue("toString doesn't contain Role1", StringUtils.contains(toString, "Role1"));
-		assertTrue("toString doesn't contain Role2", StringUtils.contains(toString, "Role2"));
+		assertTrue("toString should contain Role1", toString.contains("Role1"));
+		assertTrue("toString should contain Role2", toString.contains("Role2"));
 	}
 	}
 
 
 	public final void testGetSetPreAuthenticatedGrantedAuthorities() {
 	public final void testGetSetPreAuthenticatedGrantedAuthorities() {

+ 2 - 2
ntlm/src/main/java/org/springframework/security/ui/ntlm/NtlmProcessingFilter.java

@@ -27,7 +27,7 @@ import org.springframework.security.providers.anonymous.AnonymousAuthenticationT
 import org.springframework.security.ui.SpringSecurityFilter;
 import org.springframework.security.ui.SpringSecurityFilter;
 import org.springframework.security.ui.FilterChainOrder;
 import org.springframework.security.ui.FilterChainOrder;
 import org.springframework.security.ui.AuthenticationDetailsSource;
 import org.springframework.security.ui.AuthenticationDetailsSource;
-import org.springframework.security.ui.AuthenticationDetailsSourceImpl;
+import org.springframework.security.ui.WebAuthenticationDetailsSource;
 import org.springframework.security.ui.webapp.AuthenticationProcessingFilter;
 import org.springframework.security.ui.webapp.AuthenticationProcessingFilter;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.beans.factory.InitializingBean;
 import org.springframework.util.Assert;
 import org.springframework.util.Assert;
@@ -112,7 +112,7 @@ public class NtlmProcessingFilter extends SpringSecurityFilter implements Initia
 	private String	defaultDomain;
 	private String	defaultDomain;
 	private String	domainController;
 	private String	domainController;
 	private AuthenticationManager authenticationManager;
 	private AuthenticationManager authenticationManager;
-    private AuthenticationDetailsSource authenticationDetailsSource = new AuthenticationDetailsSourceImpl();
+    private AuthenticationDetailsSource authenticationDetailsSource = new WebAuthenticationDetailsSource();
 
 
     //~ Methods ========================================================================================================
     //~ Methods ========================================================================================================