SEC-1259: Improve consistency of authentication filter names.

This commit is contained in:
Luke Taylor 2009-10-07 14:43:55 +00:00
parent f213cc5d9e
commit 1286741c7c
38 changed files with 268 additions and 297 deletions

View File

@ -27,7 +27,7 @@ import org.springframework.security.authentication.AuthenticationProvider;
import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.cas.ServiceProperties; import org.springframework.security.cas.ServiceProperties;
import org.springframework.security.cas.web.CasProcessingFilter; import org.springframework.security.cas.web.CasAuthenticationFilter;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.AuthenticationException;
import org.springframework.security.core.SpringSecurityMessageSource; import org.springframework.security.core.SpringSecurityMessageSource;
@ -41,7 +41,7 @@ import org.springframework.util.Assert;
* <p> * <p>
* This <code>AuthenticationProvider</code> is capable of validating {@link UsernamePasswordAuthenticationToken} * This <code>AuthenticationProvider</code> is capable of validating {@link UsernamePasswordAuthenticationToken}
* requests which contain a <code>principal</code> name equal to either * requests which contain a <code>principal</code> name equal to either
* {@link CasProcessingFilter#CAS_STATEFUL_IDENTIFIER} or {@link CasProcessingFilter#CAS_STATELESS_IDENTIFIER}. * {@link CasAuthenticationFilter#CAS_STATEFUL_IDENTIFIER} or {@link CasAuthenticationFilter#CAS_STATELESS_IDENTIFIER}.
* It can also validate a previously created {@link CasAuthenticationToken}. * It can also validate a previously created {@link CasAuthenticationToken}.
* *
* @author Ben Alex * @author Ben Alex
@ -78,8 +78,8 @@ public class CasAuthenticationProvider implements AuthenticationProvider, Initia
} }
if (authentication instanceof UsernamePasswordAuthenticationToken if (authentication instanceof UsernamePasswordAuthenticationToken
&& (!CasProcessingFilter.CAS_STATEFUL_IDENTIFIER.equals(authentication.getPrincipal().toString()) && (!CasAuthenticationFilter.CAS_STATEFUL_IDENTIFIER.equals(authentication.getPrincipal().toString())
&& !CasProcessingFilter.CAS_STATELESS_IDENTIFIER.equals(authentication.getPrincipal().toString()))) { && !CasAuthenticationFilter.CAS_STATELESS_IDENTIFIER.equals(authentication.getPrincipal().toString()))) {
// UsernamePasswordAuthenticationToken not CAS related // UsernamePasswordAuthenticationToken not CAS related
return null; return null;
} }
@ -103,7 +103,7 @@ public class CasAuthenticationProvider implements AuthenticationProvider, Initia
boolean stateless = false; boolean stateless = false;
if (authentication instanceof UsernamePasswordAuthenticationToken if (authentication instanceof UsernamePasswordAuthenticationToken
&& CasProcessingFilter.CAS_STATELESS_IDENTIFIER.equals(authentication.getPrincipal())) { && CasAuthenticationFilter.CAS_STATELESS_IDENTIFIER.equals(authentication.getPrincipal())) {
stateless = true; stateless = true;
} }

View File

@ -36,14 +36,14 @@ import org.springframework.util.Assert;
* 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 <code>loginUrl</code> property. Once login is complete, the CAS login page will * This page is specified by the <code>loginUrl</code> property. Once login is complete, the CAS login page will
* redirect to the page indicated by the <code>service</code> property. The <code>service</code> is a HTTP URL * redirect to the page indicated by the <code>service</code> property. The <code>service</code> is a HTTP URL
* belonging to the current application. The <code>service</code> URL is monitored by the {@link CasProcessingFilter}, * belonging to the current application. The <code>service</code> URL is monitored by the {@link CasAuthenticationFilter},
* which will validate the CAS login was successful. * which will validate the CAS login was successful.
* *
* @author Ben Alex * @author Ben Alex
* @author Scott Battaglia * @author Scott Battaglia
* @version $Id$ * @version $Id$
*/ */
public class CasProcessingFilterEntryPoint implements AuthenticationEntryPoint, InitializingBean { public class CasAuthenticationEntryPoint implements AuthenticationEntryPoint, InitializingBean {
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
private ServiceProperties serviceProperties; private ServiceProperties serviceProperties;

View File

@ -48,7 +48,7 @@ import org.springframework.security.web.authentication.AbstractAuthenticationPro
* them accordingly by validation with the CAS server. * them accordingly by validation with the CAS server.
* <p> * <p>
* By configuring a shared {@link ProxyGrantingTicketStorage} between the {@link TicketValidator} and the * By configuring a shared {@link ProxyGrantingTicketStorage} between the {@link TicketValidator} and the
* CasProcessingFilter one can have the CasProcessingFilter handle the proxying requirements for CAS. In addition, the * CasAuthenticationFilter one can have the CasAuthenticationFilter handle the proxying requirements for CAS. In addition, the
* URI endpoint for the proxying would also need to be configured (i.e. the part after protocol, hostname, and port). * URI endpoint for the proxying would also need to be configured (i.e. the part after protocol, hostname, and port).
* <p> * <p>
* By default this filter processes the URL <tt>/j_spring_cas_security_check</tt>. * By default this filter processes the URL <tt>/j_spring_cas_security_check</tt>.
@ -56,7 +56,7 @@ import org.springframework.security.web.authentication.AbstractAuthenticationPro
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$
*/ */
public class CasProcessingFilter extends AbstractAuthenticationProcessingFilter { public class CasAuthenticationFilter extends AbstractAuthenticationProcessingFilter {
//~ Static fields/initializers ===================================================================================== //~ Static fields/initializers =====================================================================================
/** Used to identify a CAS request for a stateful user agent, such as a web browser. */ /** Used to identify a CAS request for a stateful user agent, such as a web browser. */
@ -83,7 +83,7 @@ public class CasProcessingFilter extends AbstractAuthenticationProcessingFilter
//~ Constructors =================================================================================================== //~ Constructors ===================================================================================================
public CasProcessingFilter() { public CasAuthenticationFilter() {
super("/j_spring_cas_security_check"); super("/j_spring_cas_security_check");
} }

View File

@ -30,7 +30,7 @@ import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.authentication.TestingAuthenticationToken; import org.springframework.security.authentication.TestingAuthenticationToken;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.cas.ServiceProperties; import org.springframework.security.cas.ServiceProperties;
import org.springframework.security.cas.web.CasProcessingFilter; import org.springframework.security.cas.web.CasAuthenticationFilter;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.AuthorityUtils; import org.springframework.security.core.authority.AuthorityUtils;
@ -83,7 +83,7 @@ public class CasAuthenticationProviderTests {
cap.afterPropertiesSet(); cap.afterPropertiesSet();
UsernamePasswordAuthenticationToken token = UsernamePasswordAuthenticationToken token =
new UsernamePasswordAuthenticationToken(CasProcessingFilter.CAS_STATEFUL_IDENTIFIER, "ST-123"); new UsernamePasswordAuthenticationToken(CasAuthenticationFilter.CAS_STATEFUL_IDENTIFIER, "ST-123");
token.setDetails("details"); token.setDetails("details");
Authentication result = cap.authenticate(token); Authentication result = cap.authenticate(token);
@ -124,7 +124,7 @@ public class CasAuthenticationProviderTests {
cap.afterPropertiesSet(); cap.afterPropertiesSet();
UsernamePasswordAuthenticationToken token = UsernamePasswordAuthenticationToken token =
new UsernamePasswordAuthenticationToken(CasProcessingFilter.CAS_STATELESS_IDENTIFIER, "ST-456"); new UsernamePasswordAuthenticationToken(CasAuthenticationFilter.CAS_STATELESS_IDENTIFIER, "ST-456");
token.setDetails("details"); token.setDetails("details");
Authentication result = cap.authenticate(token); Authentication result = cap.authenticate(token);
@ -163,7 +163,7 @@ public class CasAuthenticationProviderTests {
cap.afterPropertiesSet(); cap.afterPropertiesSet();
UsernamePasswordAuthenticationToken token = UsernamePasswordAuthenticationToken token =
new UsernamePasswordAuthenticationToken(CasProcessingFilter.CAS_STATEFUL_IDENTIFIER, ""); new UsernamePasswordAuthenticationToken(CasAuthenticationFilter.CAS_STATEFUL_IDENTIFIER, "");
cap.authenticate(token); cap.authenticate(token);
} }

View File

@ -20,22 +20,22 @@ import junit.framework.TestCase;
import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.security.cas.ServiceProperties; import org.springframework.security.cas.ServiceProperties;
import org.springframework.security.cas.web.CasProcessingFilterEntryPoint; import org.springframework.security.cas.web.CasAuthenticationEntryPoint;
import java.net.URLEncoder; import java.net.URLEncoder;
/** /**
* Tests {@link CasProcessingFilterEntryPoint}. * Tests {@link CasAuthenticationEntryPoint}.
* *
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$
*/ */
public class CasProcessingFilterEntryPointTests extends TestCase { public class CasAuthenticationEntryPointTests extends TestCase {
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================
public void testDetectsMissingLoginFormUrl() throws Exception { public void testDetectsMissingLoginFormUrl() throws Exception {
CasProcessingFilterEntryPoint ep = new CasProcessingFilterEntryPoint(); CasAuthenticationEntryPoint ep = new CasAuthenticationEntryPoint();
ep.setServiceProperties(new ServiceProperties()); ep.setServiceProperties(new ServiceProperties());
try { try {
@ -47,7 +47,7 @@ public class CasProcessingFilterEntryPointTests extends TestCase {
} }
public void testDetectsMissingServiceProperties() throws Exception { public void testDetectsMissingServiceProperties() throws Exception {
CasProcessingFilterEntryPoint ep = new CasProcessingFilterEntryPoint(); CasAuthenticationEntryPoint ep = new CasAuthenticationEntryPoint();
ep.setLoginUrl("https://cas/login"); ep.setLoginUrl("https://cas/login");
try { try {
@ -59,7 +59,7 @@ public class CasProcessingFilterEntryPointTests extends TestCase {
} }
public void testGettersSetters() { public void testGettersSetters() {
CasProcessingFilterEntryPoint ep = new CasProcessingFilterEntryPoint(); CasAuthenticationEntryPoint ep = new CasAuthenticationEntryPoint();
ep.setLoginUrl("https://cas/login"); ep.setLoginUrl("https://cas/login");
assertEquals("https://cas/login", ep.getLoginUrl()); assertEquals("https://cas/login", ep.getLoginUrl());
@ -72,7 +72,7 @@ public class CasProcessingFilterEntryPointTests extends TestCase {
sp.setSendRenew(false); sp.setSendRenew(false);
sp.setService("https://mycompany.com/bigWebApp/j_spring_cas_security_check"); sp.setService("https://mycompany.com/bigWebApp/j_spring_cas_security_check");
CasProcessingFilterEntryPoint ep = new CasProcessingFilterEntryPoint(); CasAuthenticationEntryPoint ep = new CasAuthenticationEntryPoint();
ep.setLoginUrl("https://cas/login"); ep.setLoginUrl("https://cas/login");
ep.setServiceProperties(sp); ep.setServiceProperties(sp);
@ -94,7 +94,7 @@ public class CasProcessingFilterEntryPointTests extends TestCase {
sp.setSendRenew(true); sp.setSendRenew(true);
sp.setService("https://mycompany.com/bigWebApp/j_spring_cas_security_check"); sp.setService("https://mycompany.com/bigWebApp/j_spring_cas_security_check");
CasProcessingFilterEntryPoint ep = new CasProcessingFilterEntryPoint(); CasAuthenticationEntryPoint ep = new CasAuthenticationEntryPoint();
ep.setLoginUrl("https://cas/login"); ep.setLoginUrl("https://cas/login");
ep.setServiceProperties(sp); ep.setServiceProperties(sp);

View File

@ -18,7 +18,7 @@ package org.springframework.security.cas.web;
import junit.framework.TestCase; import junit.framework.TestCase;
import org.springframework.security.MockAuthenticationManager; import org.springframework.security.MockAuthenticationManager;
import org.springframework.security.cas.web.CasProcessingFilter; import org.springframework.security.cas.web.CasAuthenticationFilter;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.AuthenticationException;
@ -27,16 +27,16 @@ import org.springframework.mock.web.MockHttpServletResponse;
/** /**
* Tests {@link CasProcessingFilter}. * Tests {@link CasAuthenticationFilter}.
* *
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$
*/ */
public class CasProcessingFilterTests extends TestCase { public class CasAuthenticationFilterTests extends TestCase {
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================
public void testGetters() { public void testGetters() {
CasProcessingFilter filter = new CasProcessingFilter(); CasAuthenticationFilter filter = new CasAuthenticationFilter();
assertEquals("/j_spring_cas_security_check", filter.getFilterProcessesUrl()); assertEquals("/j_spring_cas_security_check", filter.getFilterProcessesUrl());
} }
@ -46,7 +46,7 @@ public class CasProcessingFilterTests extends TestCase {
MockAuthenticationManager authMgr = new MockAuthenticationManager(true); MockAuthenticationManager authMgr = new MockAuthenticationManager(true);
CasProcessingFilter filter = new CasProcessingFilter(); CasAuthenticationFilter filter = new CasAuthenticationFilter();
filter.setAuthenticationManager(authMgr); filter.setAuthenticationManager(authMgr);
Authentication result = filter.attemptAuthentication(request, new MockHttpServletResponse()); Authentication result = filter.attemptAuthentication(request, new MockHttpServletResponse());
@ -59,7 +59,7 @@ public class CasProcessingFilterTests extends TestCase {
MockAuthenticationManager authMgr = new MockAuthenticationManager(false); MockAuthenticationManager authMgr = new MockAuthenticationManager(false);
CasProcessingFilter filter = new CasProcessingFilter(); CasAuthenticationFilter filter = new CasAuthenticationFilter();
filter.setAuthenticationManager(authMgr); filter.setAuthenticationManager(authMgr);
try { try {

View File

@ -27,14 +27,14 @@ import org.springframework.security.core.userdetails.UserDetailsByNameServiceWra
import org.springframework.security.web.PortResolverImpl; import org.springframework.security.web.PortResolverImpl;
import org.springframework.security.web.access.AccessDeniedHandlerImpl; import org.springframework.security.web.access.AccessDeniedHandlerImpl;
import org.springframework.security.web.access.ExceptionTranslationFilter; import org.springframework.security.web.access.ExceptionTranslationFilter;
import org.springframework.security.web.authentication.AnonymousProcessingFilter; import org.springframework.security.web.authentication.AnonymousAuthenticationFilter;
import org.springframework.security.web.authentication.Http403ForbiddenEntryPoint; import org.springframework.security.web.authentication.Http403ForbiddenEntryPoint;
import org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationProvider; import org.springframework.security.web.authentication.preauth.PreAuthenticatedAuthenticationProvider;
import org.springframework.security.web.authentication.preauth.x509.SubjectDnX509PrincipalExtractor; import org.springframework.security.web.authentication.preauth.x509.SubjectDnX509PrincipalExtractor;
import org.springframework.security.web.authentication.preauth.x509.X509PreAuthenticatedProcessingFilter; import org.springframework.security.web.authentication.preauth.x509.X509AuthenticationFilter;
import org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter; import org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter;
import org.springframework.security.web.authentication.www.BasicProcessingFilter; import org.springframework.security.web.authentication.www.BasicAuthenticationFilter;
import org.springframework.security.web.authentication.www.BasicProcessingFilterEntryPoint; import org.springframework.security.web.authentication.www.BasicAuthenticationEntryPoint;
import org.springframework.security.web.savedrequest.HttpSessionRequestCache; import org.springframework.security.web.savedrequest.HttpSessionRequestCache;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.util.xml.DomUtils; import org.springframework.util.xml.DomUtils;
@ -263,8 +263,8 @@ final class AuthenticationConfigBuilder {
RootBeanDefinition entryPoint = null; RootBeanDefinition entryPoint = null;
if (basicAuthElt != null || autoConfig) { if (basicAuthElt != null || autoConfig) {
BeanDefinitionBuilder filterBuilder = BeanDefinitionBuilder.rootBeanDefinition(BasicProcessingFilter.class); BeanDefinitionBuilder filterBuilder = BeanDefinitionBuilder.rootBeanDefinition(BasicAuthenticationFilter.class);
entryPoint = new RootBeanDefinition(BasicProcessingFilterEntryPoint.class); entryPoint = new RootBeanDefinition(BasicAuthenticationEntryPoint.class);
entryPoint.setSource(pc.extractSource(httpElt)); entryPoint.setSource(pc.extractSource(httpElt));
entryPoint.getPropertyValues().addPropertyValue("realmName", realm); entryPoint.getPropertyValues().addPropertyValue("realmName", realm);
@ -287,7 +287,7 @@ final class AuthenticationConfigBuilder {
RootBeanDefinition entryPoint = null; RootBeanDefinition entryPoint = null;
if (x509Elt != null) { if (x509Elt != null) {
BeanDefinitionBuilder filterBuilder = BeanDefinitionBuilder.rootBeanDefinition(X509PreAuthenticatedProcessingFilter.class); BeanDefinitionBuilder filterBuilder = BeanDefinitionBuilder.rootBeanDefinition(X509AuthenticationFilter.class);
filterBuilder.getRawBeanDefinition().setSource(pc.extractSource(x509Elt)); filterBuilder.getRawBeanDefinition().setSource(pc.extractSource(x509Elt));
filterBuilder.addPropertyValue("authenticationManager", authManager); filterBuilder.addPropertyValue("authenticationManager", authManager);
@ -395,7 +395,7 @@ final class AuthenticationConfigBuilder {
key = Long.toString(random.nextLong()); key = Long.toString(random.nextLong());
} }
anonymousFilter = new RootBeanDefinition(AnonymousProcessingFilter.class); anonymousFilter = new RootBeanDefinition(AnonymousAuthenticationFilter.class);
PropertyValue keyPV = new PropertyValue("key", key); PropertyValue keyPV = new PropertyValue("key", key);
anonymousFilter.setSource(source); anonymousFilter.setSource(source);

View File

@ -13,11 +13,11 @@ import org.springframework.security.web.FilterChainProxy;
import org.springframework.security.web.access.ExceptionTranslationFilter; import org.springframework.security.web.access.ExceptionTranslationFilter;
import org.springframework.security.web.access.intercept.DefaultFilterInvocationSecurityMetadataSource; import org.springframework.security.web.access.intercept.DefaultFilterInvocationSecurityMetadataSource;
import org.springframework.security.web.access.intercept.FilterSecurityInterceptor; import org.springframework.security.web.access.intercept.FilterSecurityInterceptor;
import org.springframework.security.web.authentication.AnonymousProcessingFilter; import org.springframework.security.web.authentication.AnonymousAuthenticationFilter;
import org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint; import org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
import org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter; import org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter;
import org.springframework.security.web.authentication.www.BasicProcessingFilter; import org.springframework.security.web.authentication.www.BasicAuthenticationFilter;
import org.springframework.security.web.context.SecurityContextPersistenceFilter; import org.springframework.security.web.context.SecurityContextPersistenceFilter;
import org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter; import org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter;
import org.springframework.security.web.session.SessionManagementFilter; import org.springframework.security.web.session.SessionManagementFilter;
@ -53,7 +53,7 @@ public class DefaultFilterChainValidator implements FilterChainProxy.FilterChain
checkForDuplicates(SecurityContextPersistenceFilter.class, filters); checkForDuplicates(SecurityContextPersistenceFilter.class, filters);
checkForDuplicates(UsernamePasswordAuthenticationFilter.class, filters); checkForDuplicates(UsernamePasswordAuthenticationFilter.class, filters);
checkForDuplicates(SessionManagementFilter.class, filters); checkForDuplicates(SessionManagementFilter.class, filters);
checkForDuplicates(BasicProcessingFilter.class, filters); checkForDuplicates(BasicAuthenticationFilter.class, filters);
checkForDuplicates(SecurityContextHolderAwareRequestFilter.class, filters); checkForDuplicates(SecurityContextHolderAwareRequestFilter.class, filters);
checkForDuplicates(ExceptionTranslationFilter.class, filters); checkForDuplicates(ExceptionTranslationFilter.class, filters);
checkForDuplicates(FilterSecurityInterceptor.class, filters); checkForDuplicates(FilterSecurityInterceptor.class, filters);
@ -110,7 +110,7 @@ public class DefaultFilterChainValidator implements FilterChainProxy.FilterChain
return; return;
} }
AnonymousProcessingFilter anonPF = (AnonymousProcessingFilter) getFilter(AnonymousProcessingFilter.class, filters); AnonymousAuthenticationFilter anonPF = (AnonymousAuthenticationFilter) getFilter(AnonymousAuthenticationFilter.class, filters);
if (anonPF == null) { if (anonPF == null) {
logger.warn("The login page is being protected by the filter chain, but you don't appear to have" + logger.warn("The login page is being protected by the filter chain, but you don't appear to have" +
" anonymous authentication enabled. This is almost certainly an error."); " anonymous authentication enabled. This is almost certainly an error.");

View File

@ -12,7 +12,7 @@ import org.springframework.beans.factory.xml.BeanDefinitionParser;
import org.springframework.beans.factory.xml.ParserContext; import org.springframework.beans.factory.xml.ParserContext;
import org.springframework.security.web.authentication.rememberme.JdbcTokenRepositoryImpl; import org.springframework.security.web.authentication.rememberme.JdbcTokenRepositoryImpl;
import org.springframework.security.web.authentication.rememberme.PersistentTokenBasedRememberMeServices; import org.springframework.security.web.authentication.rememberme.PersistentTokenBasedRememberMeServices;
import org.springframework.security.web.authentication.rememberme.RememberMeProcessingFilter; import org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter;
import org.springframework.security.web.authentication.rememberme.TokenBasedRememberMeServices; import org.springframework.security.web.authentication.rememberme.TokenBasedRememberMeServices;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.w3c.dom.Element; import org.w3c.dom.Element;
@ -126,7 +126,7 @@ class RememberMeBeanDefinitionParser implements BeanDefinitionParser {
} }
private BeanDefinition createFilter(ParserContext pc, Object source) { private BeanDefinition createFilter(ParserContext pc, Object source) {
BeanDefinitionBuilder filter = BeanDefinitionBuilder.rootBeanDefinition(RememberMeProcessingFilter.class); BeanDefinitionBuilder filter = BeanDefinitionBuilder.rootBeanDefinition(RememberMeAuthenticationFilter.class);
filter.getRawBeanDefinition().setSource(source); filter.getRawBeanDefinition().setSource(source);
filter.addPropertyReference("rememberMeServices", servicesName); filter.addPropertyReference("rememberMeServices", servicesName);

View File

@ -48,7 +48,7 @@ import org.springframework.security.web.access.expression.DefaultWebSecurityExpr
import org.springframework.security.web.access.expression.ExpressionBasedFilterInvocationSecurityMetadataSource; import org.springframework.security.web.access.expression.ExpressionBasedFilterInvocationSecurityMetadataSource;
import org.springframework.security.web.access.intercept.FilterInvocationSecurityMetadataSource; import org.springframework.security.web.access.intercept.FilterInvocationSecurityMetadataSource;
import org.springframework.security.web.access.intercept.FilterSecurityInterceptor; import org.springframework.security.web.access.intercept.FilterSecurityInterceptor;
import org.springframework.security.web.authentication.AnonymousProcessingFilter; import org.springframework.security.web.authentication.AnonymousAuthenticationFilter;
import org.springframework.security.web.authentication.AuthenticationFailureHandler; import org.springframework.security.web.authentication.AuthenticationFailureHandler;
import org.springframework.security.web.authentication.AuthenticationSuccessHandler; import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
import org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint; import org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint;
@ -59,13 +59,13 @@ import org.springframework.security.web.authentication.UsernamePasswordAuthentic
import org.springframework.security.web.authentication.logout.LogoutFilter; import org.springframework.security.web.authentication.logout.LogoutFilter;
import org.springframework.security.web.authentication.logout.LogoutHandler; import org.springframework.security.web.authentication.logout.LogoutHandler;
import org.springframework.security.web.authentication.preauth.x509.SubjectDnX509PrincipalExtractor; import org.springframework.security.web.authentication.preauth.x509.SubjectDnX509PrincipalExtractor;
import org.springframework.security.web.authentication.preauth.x509.X509PreAuthenticatedProcessingFilter; import org.springframework.security.web.authentication.preauth.x509.X509AuthenticationFilter;
import org.springframework.security.web.authentication.rememberme.InMemoryTokenRepositoryImpl; import org.springframework.security.web.authentication.rememberme.InMemoryTokenRepositoryImpl;
import org.springframework.security.web.authentication.rememberme.PersistentTokenBasedRememberMeServices; import org.springframework.security.web.authentication.rememberme.PersistentTokenBasedRememberMeServices;
import org.springframework.security.web.authentication.rememberme.RememberMeProcessingFilter; import org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter;
import org.springframework.security.web.authentication.rememberme.TokenBasedRememberMeServices; import org.springframework.security.web.authentication.rememberme.TokenBasedRememberMeServices;
import org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter; import org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter;
import org.springframework.security.web.authentication.www.BasicProcessingFilter; import org.springframework.security.web.authentication.www.BasicAuthenticationFilter;
import org.springframework.security.web.context.HttpSessionSecurityContextRepository; import org.springframework.security.web.context.HttpSessionSecurityContextRepository;
import org.springframework.security.web.context.SecurityContextPersistenceFilter; import org.springframework.security.web.context.SecurityContextPersistenceFilter;
import org.springframework.security.web.savedrequest.HttpSessionRequestCache; import org.springframework.security.web.savedrequest.HttpSessionRequestCache;
@ -133,10 +133,10 @@ public class HttpSecurityBeanDefinitionParserTests {
Object authProcFilter = filters.next(); Object authProcFilter = filters.next();
assertTrue(authProcFilter instanceof UsernamePasswordAuthenticationFilter); assertTrue(authProcFilter instanceof UsernamePasswordAuthenticationFilter);
assertTrue(filters.next() instanceof DefaultLoginPageGeneratingFilter); assertTrue(filters.next() instanceof DefaultLoginPageGeneratingFilter);
assertTrue(filters.next() instanceof BasicProcessingFilter); assertTrue(filters.next() instanceof BasicAuthenticationFilter);
assertTrue(filters.next() instanceof RequestCacheAwareFilter); assertTrue(filters.next() instanceof RequestCacheAwareFilter);
assertTrue(filters.next() instanceof SecurityContextHolderAwareRequestFilter); assertTrue(filters.next() instanceof SecurityContextHolderAwareRequestFilter);
assertTrue(filters.next() instanceof AnonymousProcessingFilter); assertTrue(filters.next() instanceof AnonymousAuthenticationFilter);
assertTrue(filters.next() instanceof SessionManagementFilter); assertTrue(filters.next() instanceof SessionManagementFilter);
assertTrue(filters.next() instanceof ExceptionTranslationFilter); assertTrue(filters.next() instanceof ExceptionTranslationFilter);
Object fsiObj = filters.next(); Object fsiObj = filters.next();
@ -228,7 +228,7 @@ public class HttpSecurityBeanDefinitionParserTests {
"<http>" + "<http>" +
" <form-login />" + " <form-login />" +
"</http>" + AUTH_PROVIDER_XML); "</http>" + AUTH_PROVIDER_XML);
assertThat(getFilters("/anything").get(5), instanceOf(AnonymousProcessingFilter.class)); assertThat(getFilters("/anything").get(5), instanceOf(AnonymousAuthenticationFilter.class));
} }
@Test @Test
@ -238,7 +238,7 @@ public class HttpSecurityBeanDefinitionParserTests {
" <form-login />" + " <form-login />" +
" <anonymous enabled='false'/>" + " <anonymous enabled='false'/>" +
"</http>" + AUTH_PROVIDER_XML); "</http>" + AUTH_PROVIDER_XML);
assertThat(getFilters("/anything").get(5), not(instanceOf(AnonymousProcessingFilter.class))); assertThat(getFilters("/anything").get(5), not(instanceOf(AnonymousAuthenticationFilter.class)));
} }
@ -637,7 +637,7 @@ public class HttpSecurityBeanDefinitionParserTests {
"</http>" + AUTH_PROVIDER_XML); "</http>" + AUTH_PROVIDER_XML);
List<Filter> filters = getFilters("/someurl"); List<Filter> filters = getFilters("/someurl");
assertTrue(filters.get(2) instanceof X509PreAuthenticatedProcessingFilter); assertTrue(filters.get(2) instanceof X509AuthenticationFilter);
} }
@Test @Test
@ -650,7 +650,7 @@ public class HttpSecurityBeanDefinitionParserTests {
"</http>" + AUTH_PROVIDER_XML); "</http>" + AUTH_PROVIDER_XML);
List<Filter> filters = getFilters("/someurl"); List<Filter> filters = getFilters("/someurl");
X509PreAuthenticatedProcessingFilter filter = (X509PreAuthenticatedProcessingFilter) filters.get(2); X509AuthenticationFilter filter = (X509AuthenticationFilter) filters.get(2);
SubjectDnX509PrincipalExtractor pe = (SubjectDnX509PrincipalExtractor) FieldUtils.getFieldValue(filter, "principalExtractor"); SubjectDnX509PrincipalExtractor pe = (SubjectDnX509PrincipalExtractor) FieldUtils.getFieldValue(filter, "principalExtractor");
Pattern p = (Pattern) FieldUtils.getFieldValue(pe, "subjectDnPattern"); Pattern p = (Pattern) FieldUtils.getFieldValue(pe, "subjectDnPattern");
assertEquals("uid=(.*),", p.pattern()); assertEquals("uid=(.*),", p.pattern());
@ -1054,7 +1054,7 @@ public class HttpSecurityBeanDefinitionParserTests {
} }
private RememberMeServices getRememberMeServices() throws Exception { private RememberMeServices getRememberMeServices() throws Exception {
return ((RememberMeProcessingFilter)getFilter(RememberMeProcessingFilter.class)).getRememberMeServices(); return ((RememberMeAuthenticationFilter)getFilter(RememberMeAuthenticationFilter.class)).getRememberMeServices();
} }

View File

@ -43,12 +43,12 @@
<property name="authenticationManager" ref="authenticationManager"/> <property name="authenticationManager" ref="authenticationManager"/>
</bean> </bean>
<bean id="basicPf" class="org.springframework.security.web.authentication.www.BasicProcessingFilter"> <bean id="basicPf" class="org.springframework.security.web.authentication.www.BasicAuthenticationFilter">
<property name="authenticationManager" ref="authenticationManager"/> <property name="authenticationManager" ref="authenticationManager"/>
<property name="ignoreFailure" value="true"/> <property name="ignoreFailure" value="true"/>
</bean> </bean>
<bean id="preAuthFilter" class="org.springframework.security.web.authentication.preauth.RequestHeaderPreAuthenticatedProcessingFilter"> <bean id="preAuthFilter" class="org.springframework.security.web.authentication.preauth.RequestHeaderAuthenticationFilter">
<property name="authenticationManager" ref="authenticationManager"/> <property name="authenticationManager" ref="authenticationManager"/>
</bean> </bean>

View File

@ -17,7 +17,7 @@ import org.springframework.security.openid.OpenIDAuthenticationFilter;
import org.springframework.security.openid.OpenIDConsumerException; import org.springframework.security.openid.OpenIDConsumerException;
import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler; import org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler;
public class OpenIDAuthenticationProcessingFilterTests { public class OpenIDAuthenticationFilterTests {
OpenIDAuthenticationFilter filter; OpenIDAuthenticationFilter filter;
private static final String REDIRECT_URL = "http://www.example.com/redirect"; private static final String REDIRECT_URL = "http://www.example.com/redirect";

View File

@ -16,7 +16,7 @@
<sec:authentication-provider ref="casAuthenticationProvider"/> <sec:authentication-provider ref="casAuthenticationProvider"/>
</sec:authentication-manager> </sec:authentication-manager>
<bean id="casProcessingFilter" class="org.springframework.security.cas.web.CasProcessingFilter"> <bean id="casProcessingFilter" class="org.springframework.security.cas.web.CasAuthenticationFilter">
<property name="authenticationManager" ref="authenticationManager"/> <property name="authenticationManager" ref="authenticationManager"/>
<property name="authenticationFailureHandler"> <property name="authenticationFailureHandler">
<bean class="org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler"> <bean class="org.springframework.security.web.authentication.SimpleUrlAuthenticationFailureHandler">
@ -32,7 +32,7 @@
<property name="proxyReceptorUrl" value="/secure/receptor" /> <property name="proxyReceptorUrl" value="/secure/receptor" />
</bean> </bean>
<bean id="casProcessingFilterEntryPoint" class="org.springframework.security.cas.web.CasProcessingFilterEntryPoint"> <bean id="casProcessingFilterEntryPoint" class="org.springframework.security.cas.web.CasAuthenticationEntryPoint">
<property name="loginUrl" value="https://localhost:9443/cas/login"/> <property name="loginUrl" value="https://localhost:9443/cas/login"/>
<property name="serviceProperties" ref="serviceProperties"/> <property name="serviceProperties" ref="serviceProperties"/>
</bean> </bean>

View File

@ -47,7 +47,7 @@
<!-- Filter used to switch the user context. Note: the switch and exit url must be secured <!-- Filter used to switch the user context. Note: the switch and exit url must be secured
based on the role granted the ability to 'switch' to another user --> based on the role granted the ability to 'switch' to another user -->
<!-- In this example 'rod' has ROLE_SUPERVISOR that can switch to regular ROLE_USER(s) --> <!-- In this example 'rod' has ROLE_SUPERVISOR that can switch to regular ROLE_USER(s) -->
<b:bean id="switchUserProcessingFilter" class="org.springframework.security.web.authentication.switchuser.SwitchUserProcessingFilter" autowire="byType"> <b:bean id="switchUserProcessingFilter" class="org.springframework.security.web.authentication.switchuser.SwitchUserFilter" autowire="byType">
<b:property name="targetUrl" value="/secure/index.htm"/> <b:property name="targetUrl" value="/secure/index.htm"/>
</b:bean> </b:bean>

View File

@ -42,7 +42,7 @@ import org.springframework.web.filter.GenericFilterBean;
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$
*/ */
public class AnonymousProcessingFilter extends GenericFilterBean implements InitializingBean { public class AnonymousAuthenticationFilter extends GenericFilterBean implements InitializingBean {
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
@ -144,7 +144,7 @@ public class AnonymousProcessingFilter extends GenericFilterBean implements Ini
* simply to store the Anonymous authentication token. * simply to store the Anonymous authentication token.
* <p> * <p>
* Defaults to <code>true</code>, being the most optimal and appropriate * Defaults to <code>true</code>, being the most optimal and appropriate
* option &ndash; <code>AnonymousProcessingFilter</code> will clear the token at the end of each request, * option &ndash; <code>AnonymousAuthenticationFilter</code> will clear the token at the end of each request,
* thus avoiding session creation overhead in a typical configuration. * thus avoiding session creation overhead in a typical configuration.
* *
*/ */

View File

@ -26,7 +26,7 @@ import org.springframework.security.core.Authentication;
* *
* <p> * <p>
* Spring Security filters (namely {@link org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter} and * Spring Security filters (namely {@link org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter} and
* {@link RememberMeProcessingFilter} will call the methods provided by an implementation of this interface. * {@link RememberMeAuthenticationFilter} will call the methods provided by an implementation of this interface.
* <p> * <p>
* Implementations may implement any type of remember-me capability they wish. * Implementations may implement any type of remember-me capability they wish.
* Rolling cookies (as per <a href="http://fishbowl.pastiche.org/2004/01/19/persistent_login_cookie_best_practice"> * Rolling cookies (as per <a href="http://fishbowl.pastiche.org/2004/01/19/persistent_login_cookie_best_practice">

View File

@ -23,7 +23,7 @@ import org.springframework.util.Assert;
* @version $Id$ * @version $Id$
* @since 2.0 * @since 2.0
*/ */
public class RequestHeaderPreAuthenticatedProcessingFilter extends AbstractPreAuthenticatedProcessingFilter { public class RequestHeaderAuthenticationFilter extends AbstractPreAuthenticatedProcessingFilter {
private String principalRequestHeader = "SM_USER"; private String principalRequestHeader = "SM_USER";
private String credentialsRequestHeader; private String credentialsRequestHeader;

View File

@ -10,7 +10,7 @@ import org.springframework.security.web.authentication.preauth.AbstractPreAuthen
* @author Luke Taylor * @author Luke Taylor
* @version $Id$ * @version $Id$
*/ */
public class X509PreAuthenticatedProcessingFilter extends AbstractPreAuthenticatedProcessingFilter { public class X509AuthenticationFilter extends AbstractPreAuthenticatedProcessingFilter {
private X509PrincipalExtractor principalExtractor = new SubjectDnX509PrincipalExtractor(); private X509PrincipalExtractor principalExtractor = new SubjectDnX509PrincipalExtractor();
protected Object getPreAuthenticatedPrincipal(HttpServletRequest request) { protected Object getPreAuthenticatedPrincipal(HttpServletRequest request) {

View File

@ -53,7 +53,7 @@ import org.springframework.web.filter.GenericFilterBean;
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$
*/ */
public class RememberMeProcessingFilter extends GenericFilterBean implements ApplicationEventPublisherAware { public class RememberMeAuthenticationFilter extends GenericFilterBean implements ApplicationEventPublisherAware {
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================

View File

@ -10,7 +10,7 @@ import org.springframework.security.core.userdetails.UserDetails;
* Allows subclasses to modify the {@link GrantedAuthority} list that will be assigned to the principal * Allows subclasses to modify the {@link GrantedAuthority} list that will be assigned to the principal
* when they assume the identity of a different principal. * when they assume the identity of a different principal.
* *
* <p>Configured against the {@link SwitchUserProcessingFilter}. * <p>Configured against the {@link SwitchUserFilter}.
* *
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$

View File

@ -87,7 +87,7 @@ import org.springframework.web.filter.GenericFilterBean;
* <tt>FilterSecurityInteceptor</tt> in the chain, in order to apply the correct constraints to the <tt>switchUserUrl</tt>. * <tt>FilterSecurityInteceptor</tt> in the chain, in order to apply the correct constraints to the <tt>switchUserUrl</tt>.
* Example: * Example:
* <pre> * <pre>
* &lt;bean id="switchUserProcessingFilter" class="org.springframework.security.ui.switchuser.SwitchUserProcessingFilter"> * &lt;bean id="switchUserProcessingFilter" class="org.springframework.security.web.authentication.SwitchUserFilter">
* &lt;property name="userDetailsService" ref="userDetailsService" /> * &lt;property name="userDetailsService" ref="userDetailsService" />
* &lt;property name="switchUserUrl">&lt;value>/j_spring_security_switch_user&lt;/value>&lt;/property> * &lt;property name="switchUserUrl">&lt;value>/j_spring_security_switch_user&lt;/value>&lt;/property>
* &lt;property name="exitUserUrl">&lt;value>/j_spring_security_exit_user&lt;/value>&lt;/property> * &lt;property name="exitUserUrl">&lt;value>/j_spring_security_exit_user&lt;/value>&lt;/property>
@ -99,7 +99,7 @@ import org.springframework.web.filter.GenericFilterBean;
* *
* @see org.springframework.security.web.authentication.switchuser.SwitchUserGrantedAuthority * @see org.springframework.security.web.authentication.switchuser.SwitchUserGrantedAuthority
*/ */
public class SwitchUserProcessingFilter extends GenericFilterBean implements ApplicationEventPublisherAware, public class SwitchUserFilter extends GenericFilterBean implements ApplicationEventPublisherAware,
MessageSourceAware { MessageSourceAware {
//~ Static fields/initializers ===================================================================================== //~ Static fields/initializers =====================================================================================
@ -239,7 +239,7 @@ public class SwitchUserProcessingFilter extends GenericFilterBean implements App
if (null == current) { if (null == current) {
throw new AuthenticationCredentialsNotFoundException(messages.getMessage( throw new AuthenticationCredentialsNotFoundException(messages.getMessage(
"SwitchUserProcessingFilter.noCurrentUser", "No current user associated with this request")); "SwitchUserFilter.noCurrentUser", "No current user associated with this request"));
} }
// check to see if the current user did actual switch to another user // check to see if the current user did actual switch to another user
@ -249,7 +249,7 @@ public class SwitchUserProcessingFilter extends GenericFilterBean implements App
if (original == null) { if (original == null) {
logger.error("Could not find original user Authentication object!"); logger.error("Could not find original user Authentication object!");
throw new AuthenticationCredentialsNotFoundException(messages.getMessage( throw new AuthenticationCredentialsNotFoundException(messages.getMessage(
"SwitchUserProcessingFilter.noOriginalAuthentication", "SwitchUserFilter.noOriginalAuthentication",
"Could not find original Authentication object")); "Could not find original Authentication object"));
} }
@ -344,7 +344,7 @@ public class SwitchUserProcessingFilter extends GenericFilterBean implements App
* *
* @return <code>true</code> if the request requires a exit user, <code>false</code> otherwise. * @return <code>true</code> if the request requires a exit user, <code>false</code> otherwise.
* *
* @see SwitchUserProcessingFilter#exitUserUrl * @see SwitchUserFilter#exitUserUrl
*/ */
protected boolean requiresExitUser(HttpServletRequest request) { protected boolean requiresExitUser(HttpServletRequest request) {
String uri = stripUri(request); String uri = stripUri(request);
@ -359,7 +359,7 @@ public class SwitchUserProcessingFilter extends GenericFilterBean implements App
* *
* @return <code>true</code> if the request requires a switch, <code>false</code> otherwise. * @return <code>true</code> if the request requires a switch, <code>false</code> otherwise.
* *
* @see SwitchUserProcessingFilter#switchUserUrl * @see SwitchUserFilter#switchUserUrl
*/ */
protected boolean requiresSwitchUser(HttpServletRequest request) { protected boolean requiresSwitchUser(HttpServletRequest request) {
String uri = stripUri(request); String uri = stripUri(request);
@ -464,7 +464,7 @@ public class SwitchUserProcessingFilter extends GenericFilterBean implements App
/** /**
* @param switchUserAuthorityChanger to use to fine-tune the authorities granted to subclasses (may be null if * @param switchUserAuthorityChanger to use to fine-tune the authorities granted to subclasses (may be null if
* SwitchUserProcessingFilter should not fine-tune the authorities) * SwitchUserFilter should not fine-tune the authorities)
*/ */
public void setSwitchUserAuthorityChanger(SwitchUserAuthorityChanger switchUserAuthorityChanger) { public void setSwitchUserAuthorityChanger(SwitchUserAuthorityChanger switchUserAuthorityChanger) {
this.switchUserAuthorityChanger = switchUserAuthorityChanger; this.switchUserAuthorityChanger = switchUserAuthorityChanger;

View File

@ -20,13 +20,13 @@ import org.springframework.security.core.authority.GrantedAuthorityImpl;
/** /**
* Custom <code>GrantedAuthority</code> used by {@link org.springframework.security.web.authentication.switchuser.SwitchUserProcessingFilter}<p>Stores * Custom <code>GrantedAuthority</code> used by {@link org.springframework.security.web.authentication.switchuser.SwitchUserFilter}<p>Stores
* the <code>Authentication</code> object of the original user to be used later when 'exiting' from a user switch.</p> * the <code>Authentication</code> object of the original user to be used later when 'exiting' from a user switch.</p>
* *
* @author Mark St.Godard * @author Mark St.Godard
* @version $Id$ * @version $Id$
* *
* @see org.springframework.security.web.authentication.switchuser.SwitchUserProcessingFilter * @see org.springframework.security.web.authentication.switchuser.SwitchUserFilter
*/ */
public class SwitchUserGrantedAuthority extends GrantedAuthorityImpl { public class SwitchUserGrantedAuthority extends GrantedAuthorityImpl {
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================

View File

@ -28,7 +28,7 @@ import org.springframework.util.Assert;
/** /**
* Used by the <code>ExceptionTraslationFilter</code> to commence authentication via the {@link BasicProcessingFilter}. * Used by the <code>ExceptionTraslationFilter</code> to commence authentication via the {@link BasicAuthenticationFilter}.
* <p> * <p>
* Once a user agent is authenticated using BASIC authentication, logout requires that * Once a user agent is authenticated using BASIC authentication, logout requires that
* the browser be closed or an unauthorized (401) header be sent. The simplest way of achieving the latter is to call * the browser be closed or an unauthorized (401) header be sent. The simplest way of achieving the latter is to call
@ -38,7 +38,7 @@ import org.springframework.util.Assert;
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$
*/ */
public class BasicProcessingFilterEntryPoint implements AuthenticationEntryPoint, InitializingBean { public class BasicAuthenticationEntryPoint implements AuthenticationEntryPoint, InitializingBean {
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
private String realmName; private String realmName;

View File

@ -69,14 +69,14 @@ import org.springframework.web.filter.GenericFilterBean;
* <p> * <p>
* If authentication fails and <code>ignoreFailure</code> is <code>false</code> (the default), an {@link * If authentication fails and <code>ignoreFailure</code> is <code>false</code> (the default), an {@link
* AuthenticationEntryPoint} implementation is called (unless the <tt>ignoreFailure</tt> property is set to * AuthenticationEntryPoint} implementation is called (unless the <tt>ignoreFailure</tt> property is set to
* <tt>true</tt>). Usually this should be {@link BasicProcessingFilterEntryPoint}, which will prompt the user to * <tt>true</tt>). Usually this should be {@link BasicAuthenticationEntryPoint}, which will prompt the user to
* authenticate again via BASIC authentication. * authenticate again via BASIC authentication.
* *
* <p> * <p>
* Basic authentication is an attractive protocol because it is simple and widely deployed. However, it still * Basic authentication is an attractive protocol because it is simple and widely deployed. However, it still
* transmits a password in clear text and as such is undesirable in many situations. Digest authentication is also * transmits a password in clear text and as such is undesirable in many situations. Digest authentication is also
* provided by Spring Security and should be used instead of Basic authentication wherever possible. See {@link * provided by Spring Security and should be used instead of Basic authentication wherever possible. See {@link
* org.springframework.security.web.authentication.www.DigestProcessingFilter}. * org.springframework.security.web.authentication.www.DigestAuthenticationFilter}.
* <p> * <p>
* Note that if a {@link RememberMeServices} is set, this filter will automatically send back remember-me * Note that if a {@link RememberMeServices} is set, this filter will automatically send back remember-me
* details to the client. Therefore, subsequent requests will not need to present a BASIC authentication header as * details to the client. Therefore, subsequent requests will not need to present a BASIC authentication header as
@ -85,7 +85,7 @@ import org.springframework.web.filter.GenericFilterBean;
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$
*/ */
public class BasicProcessingFilter extends GenericFilterBean { public class BasicAuthenticationFilter extends GenericFilterBean {
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
@ -195,7 +195,7 @@ public class BasicProcessingFilter extends GenericFilterBean {
// Handle unusual condition where an AnonymousAuthenticationToken is already present // Handle unusual condition where an AnonymousAuthenticationToken is already present
// This shouldn't happen very often, as BasicProcessingFitler is meant to be earlier in the filter // This shouldn't happen very often, as BasicProcessingFitler is meant to be earlier in the filter
// chain than AnonymousProcessingFilter. Nevertheless, presence of both an AnonymousAuthenticationToken // chain than AnonymousAuthenticationFilter. Nevertheless, presence of both an AnonymousAuthenticationToken
// together with a BASIC authentication request header should indicate reauthentication using the // together with a BASIC authentication request header should indicate reauthentication using the
// BASIC protocol is desirable. This behaviour is also consistent with that provided by form and digest, // BASIC protocol is desirable. This behaviour is also consistent with that provided by form and digest,
// both of which force re-authentication if the respective header is detected (and in doing so replace // both of which force re-authentication if the respective header is detected (and in doing so replace

View File

@ -33,7 +33,7 @@ import org.springframework.core.Ordered;
/** /**
* Used by the <code>SecurityEnforcementFilter</code> to commence authentication via the {@link * Used by the <code>SecurityEnforcementFilter</code> to commence authentication via the {@link
* DigestProcessingFilter}.<p>The nonce sent back to the user agent will be valid for the period indicated by * DigestAuthenticationFilter}.<p>The nonce sent back to the user agent will be valid for the period indicated by
* {@link #setNonceValiditySeconds(int)}. By default this is 300 seconds. Shorter times should be used if replay * {@link #setNonceValiditySeconds(int)}. By default this is 300 seconds. Shorter times should be used if replay
* attacks are a major concern. Larger values can be used if performance is a greater concern. This class correctly * attacks are a major concern. Larger values can be used if performance is a greater concern. This class correctly
* presents the <code>stale=true</code> header when the nonce has expierd, so properly implemented user agents will * presents the <code>stale=true</code> header when the nonce has expierd, so properly implemented user agents will
@ -42,10 +42,10 @@ import org.springframework.core.Ordered;
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$
*/ */
public class DigestProcessingFilterEntryPoint implements AuthenticationEntryPoint, InitializingBean, Ordered { public class DigestAuthenticationEntryPoint implements AuthenticationEntryPoint, InitializingBean, Ordered {
//~ Static fields/initializers ===================================================================================== //~ Static fields/initializers =====================================================================================
private static final Log logger = LogFactory.getLog(DigestProcessingFilterEntryPoint.class); private static final Log logger = LogFactory.getLog(DigestAuthenticationEntryPoint.class);
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================

View File

@ -63,29 +63,29 @@ import org.springframework.web.filter.GenericFilterBean;
* <p> * <p>
* This Digest implementation has been designed to avoid needing to store session state between invocations. * This Digest implementation has been designed to avoid needing to store session state between invocations.
* All session management information is stored in the "nonce" that is sent to the client by the {@link * All session management information is stored in the "nonce" that is sent to the client by the {@link
* DigestProcessingFilterEntryPoint}. * DigestAuthenticationEntryPoint}.
* <p> * <p>
* If authentication is successful, the resulting {@link org.springframework.security.core.Authentication Authentication} * If authentication is successful, the resulting {@link org.springframework.security.core.Authentication Authentication}
* object will be placed into the <code>SecurityContextHolder</code>. * object will be placed into the <code>SecurityContextHolder</code>.
* <p> * <p>
* If authentication fails, an {@link org.springframework.security.web.AuthenticationEntryPoint AuthenticationEntryPoint} * If authentication fails, an {@link org.springframework.security.web.AuthenticationEntryPoint AuthenticationEntryPoint}
* implementation is called. This must always be {@link DigestProcessingFilterEntryPoint}, which will prompt the user * implementation is called. This must always be {@link DigestAuthenticationEntryPoint}, which will prompt the user
* to authenticate again via Digest authentication. * to authenticate again via Digest authentication.
* <p> * <p>
* Note there are limitations to Digest authentication, although it is a more comprehensive and secure solution * Note there are limitations to Digest authentication, although it is a more comprehensive and secure solution
* than Basic authentication. Please see RFC 2617 section 4 for a full discussion on the advantages of Digest * than Basic authentication. Please see RFC 2617 section 4 for a full discussion on the advantages of Digest
* authentication over Basic authentication, including commentary on the limitations that it still imposes. * authentication over Basic authentication, including commentary on the limitations that it still imposes.
*/ */
public class DigestProcessingFilter extends GenericFilterBean implements MessageSourceAware { public class DigestAuthenticationFilter extends GenericFilterBean implements MessageSourceAware {
//~ Static fields/initializers ===================================================================================== //~ Static fields/initializers =====================================================================================
private static final Log logger = LogFactory.getLog(DigestProcessingFilter.class); private static final Log logger = LogFactory.getLog(DigestAuthenticationFilter.class);
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
private AuthenticationDetailsSource authenticationDetailsSource = new WebAuthenticationDetailsSource(); private AuthenticationDetailsSource authenticationDetailsSource = new WebAuthenticationDetailsSource();
private DigestProcessingFilterEntryPoint authenticationEntryPoint; private DigestAuthenticationEntryPoint authenticationEntryPoint;
protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor(); protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor();
private UserCache userCache = new NullUserCache(); private UserCache userCache = new NullUserCache();
private UserDetailsService userDetailsService; private UserDetailsService userDetailsService;
@ -99,7 +99,7 @@ public class DigestProcessingFilter extends GenericFilterBean implements Message
@Override @Override
public void afterPropertiesSet() { public void afterPropertiesSet() {
Assert.notNull(userDetailsService, "A UserDetailsService is required"); Assert.notNull(userDetailsService, "A UserDetailsService is required");
Assert.notNull(authenticationEntryPoint, "A DigestProcessingFilterEntryPoint is required"); Assert.notNull(authenticationEntryPoint, "A DigestAuthenticationEntryPoint is required");
} }
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
@ -136,7 +136,7 @@ public class DigestProcessingFilter extends GenericFilterBean implements Message
} }
fail(request, response, fail(request, response,
new BadCredentialsException(messages.getMessage("DigestProcessingFilter.missingMandatory", new BadCredentialsException(messages.getMessage("DigestAuthenticationFilter.missingMandatory",
new Object[]{section212response}, "Missing mandatory digest value; received header {0}"))); new Object[]{section212response}, "Missing mandatory digest value; received header {0}")));
return; return;
@ -150,7 +150,7 @@ public class DigestProcessingFilter extends GenericFilterBean implements Message
} }
fail(request, response, fail(request, response,
new BadCredentialsException(messages.getMessage("DigestProcessingFilter.missingAuth", new BadCredentialsException(messages.getMessage("DigestAuthenticationFilter.missingAuth",
new Object[]{section212response}, "Missing mandatory digest value; received header {0}"))); new Object[]{section212response}, "Missing mandatory digest value; received header {0}")));
return; return;
@ -160,17 +160,17 @@ public class DigestProcessingFilter extends GenericFilterBean implements Message
// Check realm name equals what we expected // Check realm name equals what we expected
if (!this.getAuthenticationEntryPoint().getRealmName().equals(realm)) { if (!this.getAuthenticationEntryPoint().getRealmName().equals(realm)) {
fail(request, response, fail(request, response,
new BadCredentialsException(messages.getMessage("DigestProcessingFilter.incorrectRealm", new BadCredentialsException(messages.getMessage("DigestAuthenticationFilter.incorrectRealm",
new Object[]{realm, this.getAuthenticationEntryPoint().getRealmName()}, new Object[]{realm, this.getAuthenticationEntryPoint().getRealmName()},
"Response realm name '{0}' does not match system realm name of '{1}'"))); "Response realm name '{0}' does not match system realm name of '{1}'")));
return; return;
} }
// Check nonce was a Base64 encoded (as sent by DigestProcessingFilterEntryPoint) // Check nonce was a Base64 encoded (as sent by DigestAuthenticationEntryPoint)
if (!Base64.isArrayByteBase64(nonce.getBytes())) { if (!Base64.isArrayByteBase64(nonce.getBytes())) {
fail(request, response, fail(request, response,
new BadCredentialsException(messages.getMessage("DigestProcessingFilter.nonceEncoding", new BadCredentialsException(messages.getMessage("DigestAuthenticationFilter.nonceEncoding",
new Object[]{nonce}, "Nonce is not encoded in Base64; received nonce {0}"))); new Object[]{nonce}, "Nonce is not encoded in Base64; received nonce {0}")));
return; return;
@ -184,7 +184,7 @@ public class DigestProcessingFilter extends GenericFilterBean implements Message
if (nonceTokens.length != 2) { if (nonceTokens.length != 2) {
fail(request, response, fail(request, response,
new BadCredentialsException(messages.getMessage("DigestProcessingFilter.nonceNotTwoTokens", new BadCredentialsException(messages.getMessage("DigestAuthenticationFilter.nonceNotTwoTokens",
new Object[]{nonceAsPlainText}, "Nonce should have yielded two tokens but was {0}"))); new Object[]{nonceAsPlainText}, "Nonce should have yielded two tokens but was {0}")));
return; return;
@ -197,7 +197,7 @@ public class DigestProcessingFilter extends GenericFilterBean implements Message
nonceExpiryTime = new Long(nonceTokens[0]).longValue(); nonceExpiryTime = new Long(nonceTokens[0]).longValue();
} catch (NumberFormatException nfe) { } catch (NumberFormatException nfe) {
fail(request, response, fail(request, response,
new BadCredentialsException(messages.getMessage("DigestProcessingFilter.nonceNotNumeric", new BadCredentialsException(messages.getMessage("DigestAuthenticationFilter.nonceNotNumeric",
new Object[]{nonceAsPlainText}, new Object[]{nonceAsPlainText},
"Nonce token should have yielded a numeric first token, but was {0}"))); "Nonce token should have yielded a numeric first token, but was {0}")));
@ -210,7 +210,7 @@ public class DigestProcessingFilter extends GenericFilterBean implements Message
if (!expectedNonceSignature.equals(nonceTokens[1])) { if (!expectedNonceSignature.equals(nonceTokens[1])) {
fail(request, response, fail(request, response,
new BadCredentialsException(messages.getMessage("DigestProcessingFilter.nonceCompromised", new BadCredentialsException(messages.getMessage("DigestAuthenticationFilter.nonceCompromised",
new Object[]{nonceAsPlainText}, "Nonce token compromised {0}"))); new Object[]{nonceAsPlainText}, "Nonce token compromised {0}")));
return; return;
@ -229,7 +229,7 @@ public class DigestProcessingFilter extends GenericFilterBean implements Message
user = userDetailsService.loadUserByUsername(username); user = userDetailsService.loadUserByUsername(username);
} catch (UsernameNotFoundException notFound) { } catch (UsernameNotFoundException notFound) {
fail(request, response, fail(request, response,
new BadCredentialsException(messages.getMessage("DigestProcessingFilter.usernameNotFound", new BadCredentialsException(messages.getMessage("DigestAuthenticationFilter.usernameNotFound",
new Object[]{username}, "Username {0} not found"))); new Object[]{username}, "Username {0} not found")));
return; return;
@ -262,7 +262,7 @@ public class DigestProcessingFilter extends GenericFilterBean implements Message
} catch (UsernameNotFoundException notFound) { } catch (UsernameNotFoundException notFound) {
// Would very rarely happen, as user existed earlier // Would very rarely happen, as user existed earlier
fail(request, response, fail(request, response,
new BadCredentialsException(messages.getMessage("DigestProcessingFilter.usernameNotFound", new BadCredentialsException(messages.getMessage("DigestAuthenticationFilter.usernameNotFound",
new Object[]{username}, "Username {0} not found"))); new Object[]{username}, "Username {0} not found")));
} }
@ -281,7 +281,7 @@ public class DigestProcessingFilter extends GenericFilterBean implements Message
} }
fail(request, response, fail(request, response,
new BadCredentialsException(messages.getMessage("DigestProcessingFilter.incorrectResponse", new BadCredentialsException(messages.getMessage("DigestAuthenticationFilter.incorrectResponse",
"Incorrect response"))); "Incorrect response")));
return; return;
} }
@ -292,7 +292,7 @@ public class DigestProcessingFilter extends GenericFilterBean implements Message
// but the request was otherwise appearing to be valid // but the request was otherwise appearing to be valid
if (nonceExpiryTime < System.currentTimeMillis()) { if (nonceExpiryTime < System.currentTimeMillis()) {
fail(request, response, fail(request, response,
new NonceExpiredException(messages.getMessage("DigestProcessingFilter.nonceExpired", new NonceExpiredException(messages.getMessage("DigestAuthenticationFilter.nonceExpired",
"Nonce has expired/timed out"))); "Nonce has expired/timed out")));
return; return;
@ -331,7 +331,7 @@ public class DigestProcessingFilter extends GenericFilterBean implements Message
authenticationEntryPoint.commence(request, response, failed); authenticationEntryPoint.commence(request, response, failed);
} }
public DigestProcessingFilterEntryPoint getAuthenticationEntryPoint() { public DigestAuthenticationEntryPoint getAuthenticationEntryPoint() {
return authenticationEntryPoint; return authenticationEntryPoint;
} }
@ -348,7 +348,7 @@ public class DigestProcessingFilter extends GenericFilterBean implements Message
this.authenticationDetailsSource = authenticationDetailsSource; this.authenticationDetailsSource = authenticationDetailsSource;
} }
public void setAuthenticationEntryPoint(DigestProcessingFilterEntryPoint authenticationEntryPoint) { public void setAuthenticationEntryPoint(DigestAuthenticationEntryPoint authenticationEntryPoint) {
this.authenticationEntryPoint = authenticationEntryPoint; this.authenticationEntryPoint = authenticationEntryPoint;
} }

View File

@ -59,7 +59,7 @@ import org.springframework.security.web.savedrequest.DefaultSavedRequest;
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$
*/ */
public class AbstractProcessingFilterTests extends TestCase { public class AbstractAuthenticationProcessingFilterTests extends TestCase {
SavedRequestAwareAuthenticationSuccessHandler successHandler; SavedRequestAwareAuthenticationSuccessHandler successHandler;
SimpleUrlAuthenticationFailureHandler failureHandler; SimpleUrlAuthenticationFailureHandler failureHandler;
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================
@ -122,7 +122,7 @@ public class AbstractProcessingFilterTests extends TestCase {
public void testDefaultProcessesFilterUrlMatchesWithPathParameter() { public void testDefaultProcessesFilterUrlMatchesWithPathParameter() {
MockHttpServletRequest request = createMockRequest(); MockHttpServletRequest request = createMockRequest();
MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletResponse response = new MockHttpServletResponse();
MockAbstractProcessingFilter filter = new MockAbstractProcessingFilter(); MockAuthenticationFilter filter = new MockAuthenticationFilter();
filter.setFilterProcessesUrl("/j_spring_security_check"); filter.setFilterProcessesUrl("/j_spring_security_check");
request.setRequestURI("/mycontext/j_spring_security_check;jsessionid=I8MIONOSTHOR"); request.setRequestURI("/mycontext/j_spring_security_check;jsessionid=I8MIONOSTHOR");
@ -141,7 +141,7 @@ public class AbstractProcessingFilterTests extends TestCase {
MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletResponse response = new MockHttpServletResponse();
// Setup our test object, to deny access // Setup our test object, to deny access
MockAbstractProcessingFilter filter = new MockAbstractProcessingFilter(false); MockAuthenticationFilter filter = new MockAuthenticationFilter(false);
filter.setAuthenticationFailureHandler(failureHandler); filter.setAuthenticationFailureHandler(failureHandler);
// Test // Test
@ -151,7 +151,7 @@ public class AbstractProcessingFilterTests extends TestCase {
assertNull(SecurityContextHolder.getContext().getAuthentication()); assertNull(SecurityContextHolder.getContext().getAuthentication());
//Prepare again, this time using the exception mapping //Prepare again, this time using the exception mapping
filter = new MockAbstractProcessingFilter(new AccountExpiredException("You're account is expired")); filter = new MockAuthenticationFilter(new AccountExpiredException("You're account is expired"));
ExceptionMappingAuthenticationFailureHandler failureHandler = new ExceptionMappingAuthenticationFailureHandler(); ExceptionMappingAuthenticationFailureHandler failureHandler = new ExceptionMappingAuthenticationFailureHandler();
filter.setAuthenticationFailureHandler(failureHandler); filter.setAuthenticationFailureHandler(failureHandler);
Properties exceptionMappings = new Properties(); Properties exceptionMappings = new Properties();
@ -180,7 +180,7 @@ public class AbstractProcessingFilterTests extends TestCase {
MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletResponse response = new MockHttpServletResponse();
// Setup our test object, to grant access // Setup our test object, to grant access
MockAbstractProcessingFilter filter = new MockAbstractProcessingFilter(true); MockAuthenticationFilter filter = new MockAuthenticationFilter(true);
filter.setFilterProcessesUrl("/j_OTHER_LOCATION"); filter.setFilterProcessesUrl("/j_OTHER_LOCATION");
filter.setAuthenticationSuccessHandler(successHandler); filter.setAuthenticationSuccessHandler(successHandler);
@ -192,7 +192,7 @@ public class AbstractProcessingFilterTests extends TestCase {
} }
public void testGettersSetters() throws Exception { public void testGettersSetters() throws Exception {
AbstractAuthenticationProcessingFilter filter = new MockAbstractProcessingFilter(); AbstractAuthenticationProcessingFilter filter = new MockAuthenticationFilter();
filter.setAuthenticationManager(mock(AuthenticationManager.class)); filter.setAuthenticationManager(mock(AuthenticationManager.class));
filter.setFilterProcessesUrl("/p"); filter.setFilterProcessesUrl("/p");
filter.afterPropertiesSet(); filter.afterPropertiesSet();
@ -218,7 +218,7 @@ public class AbstractProcessingFilterTests extends TestCase {
MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletResponse response = new MockHttpServletResponse();
// Setup our test object, to deny access // Setup our test object, to deny access
MockAbstractProcessingFilter filter = new MockAbstractProcessingFilter(false); MockAuthenticationFilter filter = new MockAuthenticationFilter(false);
// Test // Test
executeFilterInContainerSimulator(config, filter, request, response, chain); executeFilterInContainerSimulator(config, filter, request, response, chain);
@ -237,7 +237,7 @@ public class AbstractProcessingFilterTests extends TestCase {
MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletResponse response = new MockHttpServletResponse();
// Setup our test object, to grant access // Setup our test object, to grant access
MockAbstractProcessingFilter filter = new MockAbstractProcessingFilter(true); MockAuthenticationFilter filter = new MockAuthenticationFilter(true);
filter.setFilterProcessesUrl("/j_mock_post"); filter.setFilterProcessesUrl("/j_mock_post");
filter.setSessionAuthenticationStrategy(mock(SessionAuthenticationStrategy.class)); filter.setSessionAuthenticationStrategy(mock(SessionAuthenticationStrategy.class));
@ -256,7 +256,7 @@ public class AbstractProcessingFilterTests extends TestCase {
} }
public void testStartupDetectsInvalidAuthenticationManager() throws Exception { public void testStartupDetectsInvalidAuthenticationManager() throws Exception {
AbstractAuthenticationProcessingFilter filter = new MockAbstractProcessingFilter(); AbstractAuthenticationProcessingFilter filter = new MockAuthenticationFilter();
filter.setAuthenticationFailureHandler(failureHandler); filter.setAuthenticationFailureHandler(failureHandler);
successHandler.setDefaultTargetUrl("/"); successHandler.setDefaultTargetUrl("/");
filter.setAuthenticationSuccessHandler(successHandler); filter.setAuthenticationSuccessHandler(successHandler);
@ -271,7 +271,7 @@ public class AbstractProcessingFilterTests extends TestCase {
} }
public void testStartupDetectsInvalidFilterProcessesUrl() throws Exception { public void testStartupDetectsInvalidFilterProcessesUrl() throws Exception {
AbstractAuthenticationProcessingFilter filter = new MockAbstractProcessingFilter(); AbstractAuthenticationProcessingFilter filter = new MockAuthenticationFilter();
filter.setAuthenticationFailureHandler(failureHandler); filter.setAuthenticationFailureHandler(failureHandler);
filter.setAuthenticationManager(mock(AuthenticationManager.class)); filter.setAuthenticationManager(mock(AuthenticationManager.class));
filter.setAuthenticationSuccessHandler(successHandler); filter.setAuthenticationSuccessHandler(successHandler);
@ -297,7 +297,7 @@ public class AbstractProcessingFilterTests extends TestCase {
MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletResponse response = new MockHttpServletResponse();
// Setup our test object, to grant access // Setup our test object, to grant access
MockAbstractProcessingFilter filter = new MockAbstractProcessingFilter(true); MockAuthenticationFilter filter = new MockAuthenticationFilter(true);
filter.setFilterProcessesUrl("/j_mock_post"); filter.setFilterProcessesUrl("/j_mock_post");
filter.setAuthenticationSuccessHandler(successHandler); filter.setAuthenticationSuccessHandler(successHandler);
@ -314,7 +314,7 @@ public class AbstractProcessingFilterTests extends TestCase {
response = new MockHttpServletResponse(); response = new MockHttpServletResponse();
// Setup our test object, to deny access // Setup our test object, to deny access
filter = new MockAbstractProcessingFilter(false); filter = new MockAuthenticationFilter(false);
filter.setFilterProcessesUrl("/j_mock_post"); filter.setFilterProcessesUrl("/j_mock_post");
filter.setAuthenticationFailureHandler(failureHandler); filter.setAuthenticationFailureHandler(failureHandler);
@ -337,7 +337,7 @@ public class AbstractProcessingFilterTests extends TestCase {
MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletResponse response = new MockHttpServletResponse();
// Setup our test object, to grant access // Setup our test object, to grant access
MockAbstractProcessingFilter filter = new MockAbstractProcessingFilter(true); MockAuthenticationFilter filter = new MockAuthenticationFilter(true);
filter.setFilterProcessesUrl("/j_mock_post"); filter.setFilterProcessesUrl("/j_mock_post");
successHandler.setDefaultTargetUrl("/foobar"); successHandler.setDefaultTargetUrl("/foobar");
successHandler.setAlwaysUseDefaultTargetUrl(true); successHandler.setAlwaysUseDefaultTargetUrl(true);
@ -362,7 +362,7 @@ public class AbstractProcessingFilterTests extends TestCase {
MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletResponse response = new MockHttpServletResponse();
// Setup our test object, to grant access // Setup our test object, to grant access
MockAbstractProcessingFilter filter = new MockAbstractProcessingFilter(true); MockAuthenticationFilter filter = new MockAuthenticationFilter(true);
filter.setFilterProcessesUrl("/j_mock_post"); filter.setFilterProcessesUrl("/j_mock_post");
// Test // Test
@ -382,7 +382,7 @@ public class AbstractProcessingFilterTests extends TestCase {
MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletResponse response = new MockHttpServletResponse();
// Setup our test object, to grant access // Setup our test object, to grant access
MockAbstractProcessingFilter filter = new MockAbstractProcessingFilter(true); MockAuthenticationFilter filter = new MockAuthenticationFilter(true);
successHandler.setDefaultTargetUrl("https://monkeymachine.co.uk/"); successHandler.setDefaultTargetUrl("https://monkeymachine.co.uk/");
successHandler.setAlwaysUseDefaultTargetUrl(true); successHandler.setAlwaysUseDefaultTargetUrl(true);
filter.setAuthenticationSuccessHandler(successHandler); filter.setAuthenticationSuccessHandler(successHandler);
@ -403,7 +403,7 @@ public class AbstractProcessingFilterTests extends TestCase {
MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletResponse response = new MockHttpServletResponse();
// Reject authentication, so exception would normally be stored in session // Reject authentication, so exception would normally be stored in session
MockAbstractProcessingFilter filter = new MockAbstractProcessingFilter(false); MockAuthenticationFilter filter = new MockAuthenticationFilter(false);
filter.setAllowSessionCreation(false); filter.setAllowSessionCreation(false);
filter.setAuthenticationFailureHandler(failureHandler); filter.setAuthenticationFailureHandler(failureHandler);
successHandler.setDefaultTargetUrl("http://monkeymachine.co.uk/"); successHandler.setDefaultTargetUrl("http://monkeymachine.co.uk/");
@ -424,7 +424,7 @@ public class AbstractProcessingFilterTests extends TestCase {
MockFilterChain chain = new MockFilterChain(true); MockFilterChain chain = new MockFilterChain(true);
MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletResponse response = new MockHttpServletResponse();
MockAbstractProcessingFilter filter = new MockAbstractProcessingFilter(false); MockAuthenticationFilter filter = new MockAuthenticationFilter(false);
successHandler.setDefaultTargetUrl("http://monkeymachine.co.uk/"); successHandler.setDefaultTargetUrl("http://monkeymachine.co.uk/");
filter.setAuthenticationSuccessHandler(successHandler); filter.setAuthenticationSuccessHandler(successHandler);
@ -443,7 +443,7 @@ public class AbstractProcessingFilterTests extends TestCase {
MockFilterChain chain = new MockFilterChain(true); MockFilterChain chain = new MockFilterChain(true);
MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletResponse response = new MockHttpServletResponse();
MockAbstractProcessingFilter filter = new MockAbstractProcessingFilter(false); MockAuthenticationFilter filter = new MockAuthenticationFilter(false);
successHandler.setDefaultTargetUrl("http://monkeymachine.co.uk/"); successHandler.setDefaultTargetUrl("http://monkeymachine.co.uk/");
filter.setAuthenticationSuccessHandler(successHandler); filter.setAuthenticationSuccessHandler(successHandler);
filter.setAuthenticationFailureHandler(failureHandler); filter.setAuthenticationFailureHandler(failureHandler);
@ -466,7 +466,7 @@ public class AbstractProcessingFilterTests extends TestCase {
MockFilterChain chain = new MockFilterChain(true); MockFilterChain chain = new MockFilterChain(true);
MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletResponse response = new MockHttpServletResponse();
MockAbstractProcessingFilter filter = new MockAbstractProcessingFilter(true); MockAuthenticationFilter filter = new MockAuthenticationFilter(true);
filter.setAuthenticationSuccessHandler(successHandler); filter.setAuthenticationSuccessHandler(successHandler);
successHandler.setDefaultTargetUrl("http://monkeymachine.co.uk/"); successHandler.setDefaultTargetUrl("http://monkeymachine.co.uk/");
successHandler.setTargetUrlParameter("targetUrl"); successHandler.setTargetUrlParameter("targetUrl");
@ -480,25 +480,25 @@ public class AbstractProcessingFilterTests extends TestCase {
//~ Inner Classes ================================================================================================== //~ Inner Classes ==================================================================================================
private class MockAbstractProcessingFilter extends AbstractAuthenticationProcessingFilter { private class MockAuthenticationFilter extends AbstractAuthenticationProcessingFilter {
private AuthenticationException exceptionToThrow; private AuthenticationException exceptionToThrow;
private boolean grantAccess; private boolean grantAccess;
public MockAbstractProcessingFilter(boolean grantAccess) { public MockAuthenticationFilter(boolean grantAccess) {
this(); this();
setRememberMeServices(new NullRememberMeServices()); setRememberMeServices(new NullRememberMeServices());
this.grantAccess = grantAccess; this.grantAccess = grantAccess;
this.exceptionToThrow = new BadCredentialsException("Mock requested to do so"); this.exceptionToThrow = new BadCredentialsException("Mock requested to do so");
} }
public MockAbstractProcessingFilter(AuthenticationException exceptionToThrow) { public MockAuthenticationFilter(AuthenticationException exceptionToThrow) {
this(); this();
setRememberMeServices(new NullRememberMeServices()); setRememberMeServices(new NullRememberMeServices());
this.grantAccess = false; this.grantAccess = false;
this.exceptionToThrow = exceptionToThrow; this.exceptionToThrow = exceptionToThrow;
} }
private MockAbstractProcessingFilter() { private MockAuthenticationFilter() {
super("/j_mock_post"); super("/j_mock_post");
} }

View File

@ -40,12 +40,12 @@ import org.springframework.security.core.userdetails.memory.UserAttribute;
/** /**
* Tests {@link AnonymousProcessingFilter}. * Tests {@link AnonymousAuthenticationFilter}.
* *
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$
*/ */
public class AnonymousProcessingFilterTests extends TestCase { public class AnonymousAuthenticationFilterTests extends TestCase {
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================
@ -71,7 +71,7 @@ public class AnonymousProcessingFilterTests extends TestCase {
user.setPassword("anonymousUsername"); user.setPassword("anonymousUsername");
user.addAuthority(new GrantedAuthorityImpl("ROLE_ANONYMOUS")); user.addAuthority(new GrantedAuthorityImpl("ROLE_ANONYMOUS"));
AnonymousProcessingFilter filter = new AnonymousProcessingFilter(); AnonymousAuthenticationFilter filter = new AnonymousAuthenticationFilter();
filter.setUserAttribute(user); filter.setUserAttribute(user);
try { try {
@ -83,7 +83,7 @@ public class AnonymousProcessingFilterTests extends TestCase {
} }
public void testDetectsUserAttribute() throws Exception { public void testDetectsUserAttribute() throws Exception {
AnonymousProcessingFilter filter = new AnonymousProcessingFilter(); AnonymousAuthenticationFilter filter = new AnonymousAuthenticationFilter();
filter.setKey("qwerty"); filter.setKey("qwerty");
try { try {
@ -99,7 +99,7 @@ public class AnonymousProcessingFilterTests extends TestCase {
user.setPassword("anonymousUsername"); user.setPassword("anonymousUsername");
user.addAuthority(new GrantedAuthorityImpl("ROLE_ANONYMOUS")); user.addAuthority(new GrantedAuthorityImpl("ROLE_ANONYMOUS"));
AnonymousProcessingFilter filter = new AnonymousProcessingFilter(); AnonymousAuthenticationFilter filter = new AnonymousAuthenticationFilter();
filter.setKey("qwerty"); filter.setKey("qwerty");
filter.setUserAttribute(user); filter.setUserAttribute(user);
assertTrue(filter.isRemoveAfterRequest()); assertTrue(filter.isRemoveAfterRequest());
@ -123,7 +123,7 @@ public class AnonymousProcessingFilterTests extends TestCase {
user.setPassword("anonymousUsername"); user.setPassword("anonymousUsername");
user.addAuthority(new GrantedAuthorityImpl("ROLE_ANONYMOUS")); user.addAuthority(new GrantedAuthorityImpl("ROLE_ANONYMOUS"));
AnonymousProcessingFilter filter = new AnonymousProcessingFilter(); AnonymousAuthenticationFilter filter = new AnonymousAuthenticationFilter();
filter.setKey("qwerty"); filter.setKey("qwerty");
filter.setUserAttribute(user); filter.setUserAttribute(user);
filter.afterPropertiesSet(); filter.afterPropertiesSet();
@ -143,7 +143,7 @@ public class AnonymousProcessingFilterTests extends TestCase {
user.setPassword("anonymousUsername"); user.setPassword("anonymousUsername");
user.addAuthority(new GrantedAuthorityImpl("ROLE_ANONYMOUS")); user.addAuthority(new GrantedAuthorityImpl("ROLE_ANONYMOUS"));
AnonymousProcessingFilter filter = new AnonymousProcessingFilter(); AnonymousAuthenticationFilter filter = new AnonymousAuthenticationFilter();
filter.setKey("qwerty"); filter.setKey("qwerty");
filter.setUserAttribute(user); filter.setUserAttribute(user);
filter.setRemoveAfterRequest(false); // set to non-default value filter.setRemoveAfterRequest(false); // set to non-default value

View File

@ -36,7 +36,7 @@ import java.util.Map;
* @author colin sampaleanu * @author colin sampaleanu
* @version $Id$ * @version $Id$
*/ */
public class AuthenticationProcessingFilterEntryPointTests extends TestCase { public class LoginUrlAuthenticationEntryPointTests extends TestCase {
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================
public void testDetectsMissingLoginFormUrl() throws Exception { public void testDetectsMissingLoginFormUrl() throws Exception {

View File

@ -1,6 +1,6 @@
package org.springframework.security.web.authentication.preauth; package org.springframework.security.web.authentication.preauth;
import static org.junit.Assert.assertNull; import static org.junit.Assert.*;
import static org.mockito.Matchers.any; import static org.mockito.Matchers.any;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.*;
@ -9,6 +9,9 @@ import javax.servlet.http.HttpServletRequest;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import org.springframework.mock.web.MockFilterChain;
import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.AuthenticationManager;
@ -55,4 +58,61 @@ public class AbstractPreAuthenticatedProcessingFilterTests {
assertNull(SecurityContextHolder.getContext().getAuthentication()); assertNull(SecurityContextHolder.getContext().getAuthentication());
} }
@Test
public void testAfterPropertiesSet() {
ConcretePreAuthenticatedProcessingFilter filter = new ConcretePreAuthenticatedProcessingFilter();
try {
filter.afterPropertiesSet();
fail("AfterPropertiesSet didn't throw expected exception");
} catch (IllegalArgumentException expected) {
} catch (Exception unexpected) {
fail("AfterPropertiesSet throws unexpected exception");
}
}
@Test
public void testDoFilterAuthenticated() throws Exception {
testDoFilter(true);
}
@Test
public void testDoFilterUnauthenticated() throws Exception {
testDoFilter(false);
}
private void testDoFilter(boolean grantAccess) throws Exception {
MockHttpServletRequest req = new MockHttpServletRequest();
MockHttpServletResponse res = new MockHttpServletResponse();
getFilter(grantAccess).doFilter(req,res,new MockFilterChain());
assertEquals(grantAccess, null != SecurityContextHolder.getContext().getAuthentication());
}
private static ConcretePreAuthenticatedProcessingFilter getFilter(boolean grantAccess) throws Exception {
ConcretePreAuthenticatedProcessingFilter filter = new ConcretePreAuthenticatedProcessingFilter();
AuthenticationManager am = mock(AuthenticationManager.class);
if (!grantAccess) {
when(am.authenticate(any(Authentication.class))).thenThrow(new BadCredentialsException(""));
} else {
when(am.authenticate(any(Authentication.class))).thenAnswer(new Answer<Authentication>() {
public Authentication answer(InvocationOnMock invocation) throws Throwable {
return (Authentication) invocation.getArguments()[0];
}
});
}
filter.setAuthenticationManager(am);
filter.afterPropertiesSet();
return filter;
}
private static class ConcretePreAuthenticatedProcessingFilter extends AbstractPreAuthenticatedProcessingFilter {
protected Object getPreAuthenticatedPrincipal(HttpServletRequest httpRequest) {
return "testPrincipal";
}
protected Object getPreAuthenticatedCredentials(HttpServletRequest httpRequest) {
return "testCredentials";
}
}
} }

View File

@ -1,87 +0,0 @@
package org.springframework.security.web.authentication.preauth;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import javax.servlet.http.HttpServletRequest;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import org.springframework.mock.web.MockFilterChain;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
public class PreAuthenticatedProcessingFilterTests {
@After
@Before
public void setUp() throws Exception {
SecurityContextHolder.clearContext();
}
@Test
public void testAfterPropertiesSet() {
ConcretePreAuthenticatedProcessingFilter filter = new ConcretePreAuthenticatedProcessingFilter();
try {
filter.afterPropertiesSet();
fail("AfterPropertiesSet didn't throw expected exception");
} catch (IllegalArgumentException expected) {
} catch (Exception unexpected) {
fail("AfterPropertiesSet throws unexpected exception");
}
}
@Test
public void testDoFilterAuthenticated() throws Exception {
testDoFilter(true);
}
@Test
public void testDoFilterUnauthenticated() throws Exception {
testDoFilter(false);
}
private void testDoFilter(boolean grantAccess) throws Exception {
MockHttpServletRequest req = new MockHttpServletRequest();
MockHttpServletResponse res = new MockHttpServletResponse();
getFilter(grantAccess).doFilter(req,res,new MockFilterChain());
assertEquals(grantAccess,null!= SecurityContextHolder.getContext().getAuthentication());
}
private static ConcretePreAuthenticatedProcessingFilter getFilter(boolean grantAccess) throws Exception {
ConcretePreAuthenticatedProcessingFilter filter = new ConcretePreAuthenticatedProcessingFilter();
AuthenticationManager am = mock(AuthenticationManager.class);
if (!grantAccess) {
when(am.authenticate(any(Authentication.class))).thenThrow(new BadCredentialsException(""));
} else {
when(am.authenticate(any(Authentication.class))).thenAnswer(new Answer<Authentication>() {
public Authentication answer(InvocationOnMock invocation) throws Throwable {
return (Authentication) invocation.getArguments()[0];
}
});
}
filter.setAuthenticationManager(am);
filter.afterPropertiesSet();
return filter;
}
private static class ConcretePreAuthenticatedProcessingFilter extends AbstractPreAuthenticatedProcessingFilter {
protected Object getPreAuthenticatedPrincipal(HttpServletRequest httpRequest) {
return "testPrincipal";
}
protected Object getPreAuthenticatedCredentials(HttpServletRequest httpRequest) {
return "testCredentials";
}
}
}

View File

@ -16,7 +16,7 @@ import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.web.authentication.preauth.PreAuthenticatedCredentialsNotFoundException; import org.springframework.security.web.authentication.preauth.PreAuthenticatedCredentialsNotFoundException;
import org.springframework.security.web.authentication.preauth.RequestHeaderPreAuthenticatedProcessingFilter; import org.springframework.security.web.authentication.preauth.RequestHeaderAuthenticationFilter;
/** /**
* *
@ -36,7 +36,7 @@ public class RequestHeaderPreAuthenticatedProcessingFilterTests {
MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletResponse response = new MockHttpServletResponse();
MockFilterChain chain = new MockFilterChain(); MockFilterChain chain = new MockFilterChain();
RequestHeaderPreAuthenticatedProcessingFilter filter = new RequestHeaderPreAuthenticatedProcessingFilter(); RequestHeaderAuthenticationFilter filter = new RequestHeaderAuthenticationFilter();
filter.doFilter(request, response, chain); filter.doFilter(request, response, chain);
} }
@ -47,7 +47,7 @@ public class RequestHeaderPreAuthenticatedProcessingFilterTests {
request.addHeader("SM_USER", "cat"); request.addHeader("SM_USER", "cat");
MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletResponse response = new MockHttpServletResponse();
MockFilterChain chain = new MockFilterChain(); MockFilterChain chain = new MockFilterChain();
RequestHeaderPreAuthenticatedProcessingFilter filter = new RequestHeaderPreAuthenticatedProcessingFilter(); RequestHeaderAuthenticationFilter filter = new RequestHeaderAuthenticationFilter();
filter.setAuthenticationManager(createAuthenticationManager()); filter.setAuthenticationManager(createAuthenticationManager());
filter.doFilter(request, response, chain); filter.doFilter(request, response, chain);
@ -62,7 +62,7 @@ public class RequestHeaderPreAuthenticatedProcessingFilterTests {
request.addHeader("myUsernameHeader", "wolfman"); request.addHeader("myUsernameHeader", "wolfman");
MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletResponse response = new MockHttpServletResponse();
MockFilterChain chain = new MockFilterChain(); MockFilterChain chain = new MockFilterChain();
RequestHeaderPreAuthenticatedProcessingFilter filter = new RequestHeaderPreAuthenticatedProcessingFilter(); RequestHeaderAuthenticationFilter filter = new RequestHeaderAuthenticationFilter();
filter.setAuthenticationManager(createAuthenticationManager()); filter.setAuthenticationManager(createAuthenticationManager());
filter.setPrincipalRequestHeader("myUsernameHeader"); filter.setPrincipalRequestHeader("myUsernameHeader");
@ -76,7 +76,7 @@ public class RequestHeaderPreAuthenticatedProcessingFilterTests {
MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletResponse response = new MockHttpServletResponse();
MockFilterChain chain = new MockFilterChain(); MockFilterChain chain = new MockFilterChain();
RequestHeaderPreAuthenticatedProcessingFilter filter = new RequestHeaderPreAuthenticatedProcessingFilter(); RequestHeaderAuthenticationFilter filter = new RequestHeaderAuthenticationFilter();
filter.setAuthenticationManager(createAuthenticationManager()); filter.setAuthenticationManager(createAuthenticationManager());
filter.setCredentialsRequestHeader("myCredentialsHeader"); filter.setCredentialsRequestHeader("myCredentialsHeader");
request.addHeader("SM_USER", "cat"); request.addHeader("SM_USER", "cat");
@ -91,7 +91,7 @@ public class RequestHeaderPreAuthenticatedProcessingFilterTests {
public void userIsReauthenticatedIfPrincipalChangesAndCheckForPrincipalChangesIsSet() throws Exception { public void userIsReauthenticatedIfPrincipalChangesAndCheckForPrincipalChangesIsSet() throws Exception {
MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletRequest request = new MockHttpServletRequest();
MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletResponse response = new MockHttpServletResponse();
RequestHeaderPreAuthenticatedProcessingFilter filter = new RequestHeaderPreAuthenticatedProcessingFilter(); RequestHeaderAuthenticationFilter filter = new RequestHeaderAuthenticationFilter();
filter.setAuthenticationManager(createAuthenticationManager()); filter.setAuthenticationManager(createAuthenticationManager());
filter.setCheckForPrincipalChanges(true); filter.setCheckForPrincipalChanges(true);
request.addHeader("SM_USER", "cat"); request.addHeader("SM_USER", "cat");

View File

@ -45,12 +45,12 @@ import org.springframework.security.web.authentication.RememberMeServices;
/** /**
* Tests {@link RememberMeProcessingFilter}. * Tests {@link RememberMeAuthenticationFilter}.
* *
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$
*/ */
public class RememberMeProcessingFilterTests extends TestCase { public class RememberMeAuthenticationFilterTests extends TestCase {
Authentication remembered = new TestingAuthenticationToken("remembered", "password","ROLE_REMEMBERED"); Authentication remembered = new TestingAuthenticationToken("remembered", "password","ROLE_REMEMBERED");
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================
@ -63,17 +63,15 @@ public class RememberMeProcessingFilterTests extends TestCase {
} }
protected void setUp() throws Exception { protected void setUp() throws Exception {
super.setUp();
SecurityContextHolder.clearContext(); SecurityContextHolder.clearContext();
} }
protected void tearDown() throws Exception { protected void tearDown() throws Exception {
super.tearDown();
SecurityContextHolder.clearContext(); SecurityContextHolder.clearContext();
} }
public void testDetectsAuthenticationManagerProperty() throws Exception { public void testDetectsAuthenticationManagerProperty() throws Exception {
RememberMeProcessingFilter filter = new RememberMeProcessingFilter(); RememberMeAuthenticationFilter filter = new RememberMeAuthenticationFilter();
filter.setAuthenticationManager(mock(AuthenticationManager.class)); filter.setAuthenticationManager(mock(AuthenticationManager.class));
filter.setRememberMeServices(new NullRememberMeServices()); filter.setRememberMeServices(new NullRememberMeServices());
@ -90,7 +88,7 @@ public class RememberMeProcessingFilterTests extends TestCase {
} }
public void testDetectsRememberMeServicesProperty() throws Exception { public void testDetectsRememberMeServicesProperty() throws Exception {
RememberMeProcessingFilter filter = new RememberMeProcessingFilter(); RememberMeAuthenticationFilter filter = new RememberMeAuthenticationFilter();
filter.setAuthenticationManager(mock(AuthenticationManager.class)); filter.setAuthenticationManager(mock(AuthenticationManager.class));
// check default is NullRememberMeServices // check default is NullRememberMeServices
@ -117,7 +115,7 @@ public class RememberMeProcessingFilterTests extends TestCase {
SecurityContextHolder.getContext().setAuthentication(originalAuth); SecurityContextHolder.getContext().setAuthentication(originalAuth);
// Setup our filter correctly // Setup our filter correctly
RememberMeProcessingFilter filter = new RememberMeProcessingFilter(); RememberMeAuthenticationFilter filter = new RememberMeAuthenticationFilter();
filter.setAuthenticationManager(mock(AuthenticationManager.class)); filter.setAuthenticationManager(mock(AuthenticationManager.class));
filter.setRememberMeServices(new MockRememberMeServices(remembered)); filter.setRememberMeServices(new MockRememberMeServices(remembered));
filter.afterPropertiesSet(); filter.afterPropertiesSet();
@ -134,7 +132,7 @@ public class RememberMeProcessingFilterTests extends TestCase {
public void testOperationWhenNoAuthenticationInContextHolder() throws Exception { public void testOperationWhenNoAuthenticationInContextHolder() throws Exception {
RememberMeProcessingFilter filter = new RememberMeProcessingFilter(); RememberMeAuthenticationFilter filter = new RememberMeAuthenticationFilter();
AuthenticationManager am = mock(AuthenticationManager.class); AuthenticationManager am = mock(AuthenticationManager.class);
when(am.authenticate(remembered)).thenReturn(remembered); when(am.authenticate(remembered)).thenReturn(remembered);
filter.setAuthenticationManager(am); filter.setAuthenticationManager(am);
@ -153,7 +151,7 @@ public class RememberMeProcessingFilterTests extends TestCase {
public void testOnUnsuccessfulLoginIsCalledWhenProviderRejectsAuth() throws Exception { public void testOnUnsuccessfulLoginIsCalledWhenProviderRejectsAuth() throws Exception {
final Authentication failedAuth = new TestingAuthenticationToken("failed", ""); final Authentication failedAuth = new TestingAuthenticationToken("failed", "");
RememberMeProcessingFilter filter = new RememberMeProcessingFilter() { RememberMeAuthenticationFilter filter = new RememberMeAuthenticationFilter() {
protected void onUnsuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response, AuthenticationException failed) { protected void onUnsuccessfulAuthentication(HttpServletRequest request, HttpServletResponse response, AuthenticationException failed) {
super.onUnsuccessfulAuthentication(request, response, failed); super.onUnsuccessfulAuthentication(request, response, failed);
SecurityContextHolder.getContext().setAuthentication(failedAuth); SecurityContextHolder.getContext().setAuthentication(failedAuth);

View File

@ -48,17 +48,17 @@ import org.springframework.security.web.DefaultRedirectStrategy;
import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler; import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler;
import org.springframework.security.web.authentication.switchuser.SwitchUserAuthorityChanger; import org.springframework.security.web.authentication.switchuser.SwitchUserAuthorityChanger;
import org.springframework.security.web.authentication.switchuser.SwitchUserGrantedAuthority; import org.springframework.security.web.authentication.switchuser.SwitchUserGrantedAuthority;
import org.springframework.security.web.authentication.switchuser.SwitchUserProcessingFilter; import org.springframework.security.web.authentication.switchuser.SwitchUserFilter;
/** /**
* Tests {@link org.springframework.security.web.authentication.switchuser.SwitchUserProcessingFilter}. * Tests {@link org.springframework.security.web.authentication.switchuser.SwitchUserFilter}.
* *
* @author Mark St.Godard * @author Mark St.Godard
* @author Luke Taylor * @author Luke Taylor
* @version $Id$ * @version $Id$
*/ */
public class SwitchUserProcessingFilterTests { public class SwitchUserFilterTests {
private final static List<GrantedAuthority> ROLES_12 = AuthorityUtils.createAuthorityList("ROLE_ONE", "ROLE_TWO"); private final static List<GrantedAuthority> ROLES_12 = AuthorityUtils.createAuthorityList("ROLE_ONE", "ROLE_TWO");
@Before @Before
@ -83,9 +83,9 @@ public class SwitchUserProcessingFilterTests {
private Authentication switchToUser(String name) { private Authentication switchToUser(String name) {
MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletRequest request = new MockHttpServletRequest();
request.addParameter(SwitchUserProcessingFilter.SPRING_SECURITY_SWITCH_USERNAME_KEY, name); request.addParameter(SwitchUserFilter.SPRING_SECURITY_SWITCH_USERNAME_KEY, name);
SwitchUserProcessingFilter filter = new SwitchUserProcessingFilter(); SwitchUserFilter filter = new SwitchUserFilter();
filter.setUserDetailsService(new MockUserDetailsService()); filter.setUserDetailsService(new MockUserDetailsService());
return filter.attemptSwitchUser(request); return filter.attemptSwitchUser(request);
@ -94,7 +94,7 @@ public class SwitchUserProcessingFilterTests {
@Test @Test
public void requiresExitUserMatchesCorrectly() { public void requiresExitUserMatchesCorrectly() {
SwitchUserProcessingFilter filter = new SwitchUserProcessingFilter(); SwitchUserFilter filter = new SwitchUserFilter();
filter.setExitUserUrl("/j_spring_security_my_exit_user"); filter.setExitUserUrl("/j_spring_security_my_exit_user");
MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletRequest request = new MockHttpServletRequest();
@ -105,7 +105,7 @@ public class SwitchUserProcessingFilterTests {
@Test @Test
public void requiresSwitchMatchesCorrectly() { public void requiresSwitchMatchesCorrectly() {
SwitchUserProcessingFilter filter = new SwitchUserProcessingFilter(); SwitchUserFilter filter = new SwitchUserFilter();
filter.setSwitchUserUrl("/j_spring_security_my_switch_user"); filter.setSwitchUserUrl("/j_spring_security_my_switch_user");
MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletRequest request = new MockHttpServletRequest();
@ -118,9 +118,9 @@ public class SwitchUserProcessingFilterTests {
public void attemptSwitchToUnknownUserFails() throws Exception { public void attemptSwitchToUnknownUserFails() throws Exception {
MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletRequest request = new MockHttpServletRequest();
request.addParameter(SwitchUserProcessingFilter.SPRING_SECURITY_SWITCH_USERNAME_KEY, "user-that-doesnt-exist"); request.addParameter(SwitchUserFilter.SPRING_SECURITY_SWITCH_USERNAME_KEY, "user-that-doesnt-exist");
SwitchUserProcessingFilter filter = new SwitchUserProcessingFilter(); SwitchUserFilter filter = new SwitchUserFilter();
filter.setUserDetailsService(new MockUserDetailsService()); filter.setUserDetailsService(new MockUserDetailsService());
filter.attemptSwitchUser(request); filter.attemptSwitchUser(request);
} }
@ -154,9 +154,9 @@ public class SwitchUserProcessingFilterTests {
public void switchToLockedAccountCausesRedirectToSwitchFailureUrl() throws Exception { public void switchToLockedAccountCausesRedirectToSwitchFailureUrl() throws Exception {
MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletRequest request = new MockHttpServletRequest();
request.setRequestURI("/j_spring_security_switch_user"); request.setRequestURI("/j_spring_security_switch_user");
request.addParameter(SwitchUserProcessingFilter.SPRING_SECURITY_SWITCH_USERNAME_KEY, "mcgarrett"); request.addParameter(SwitchUserFilter.SPRING_SECURITY_SWITCH_USERNAME_KEY, "mcgarrett");
MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletResponse response = new MockHttpServletResponse();
SwitchUserProcessingFilter filter = new SwitchUserProcessingFilter(); SwitchUserFilter filter = new SwitchUserFilter();
filter.setTargetUrl("/target"); filter.setTargetUrl("/target");
filter.setUserDetailsService(new MockUserDetailsService()); filter.setUserDetailsService(new MockUserDetailsService());
filter.afterPropertiesSet(); filter.afterPropertiesSet();
@ -171,7 +171,7 @@ public class SwitchUserProcessingFilterTests {
// Now check for the redirect // Now check for the redirect
request.setContextPath("/mywebapp"); request.setContextPath("/mywebapp");
request.setRequestURI("/mywebapp/j_spring_security_switch_user"); request.setRequestURI("/mywebapp/j_spring_security_switch_user");
filter = new SwitchUserProcessingFilter(); filter = new SwitchUserFilter();
filter.setTargetUrl("/target"); filter.setTargetUrl("/target");
filter.setUserDetailsService(new MockUserDetailsService()); filter.setUserDetailsService(new MockUserDetailsService());
filter.setSwitchFailureUrl("/switchfailed"); filter.setSwitchFailureUrl("/switchfailed");
@ -188,7 +188,7 @@ public class SwitchUserProcessingFilterTests {
@Test(expected=IllegalArgumentException.class) @Test(expected=IllegalArgumentException.class)
public void configMissingUserDetailsServiceFails() throws Exception { public void configMissingUserDetailsServiceFails() throws Exception {
SwitchUserProcessingFilter filter = new SwitchUserProcessingFilter(); SwitchUserFilter filter = new SwitchUserFilter();
filter.setSwitchUserUrl("/j_spring_security_switch_user"); filter.setSwitchUserUrl("/j_spring_security_switch_user");
filter.setExitUserUrl("/j_spring_security_exit_user"); filter.setExitUserUrl("/j_spring_security_exit_user");
filter.setTargetUrl("/main.jsp"); filter.setTargetUrl("/main.jsp");
@ -197,7 +197,7 @@ public class SwitchUserProcessingFilterTests {
@Test(expected=IllegalArgumentException.class) @Test(expected=IllegalArgumentException.class)
public void testBadConfigMissingTargetUrl() throws Exception { public void testBadConfigMissingTargetUrl() throws Exception {
SwitchUserProcessingFilter filter = new SwitchUserProcessingFilter(); SwitchUserFilter filter = new SwitchUserFilter();
filter.setUserDetailsService(new MockUserDetailsService()); filter.setUserDetailsService(new MockUserDetailsService());
filter.setSwitchUserUrl("/j_spring_security_switch_user"); filter.setSwitchUserUrl("/j_spring_security_switch_user");
filter.setExitUserUrl("/j_spring_security_exit_user"); filter.setExitUserUrl("/j_spring_security_exit_user");
@ -207,7 +207,7 @@ public class SwitchUserProcessingFilterTests {
@Test @Test
public void defaultProcessesFilterUrlMatchesUrlWithPathParameter() { public void defaultProcessesFilterUrlMatchesUrlWithPathParameter() {
MockHttpServletRequest request = createMockSwitchRequest(); MockHttpServletRequest request = createMockSwitchRequest();
SwitchUserProcessingFilter filter = new SwitchUserProcessingFilter(); SwitchUserFilter filter = new SwitchUserFilter();
filter.setSwitchUserUrl("/j_spring_security_switch_user"); filter.setSwitchUserUrl("/j_spring_security_switch_user");
request.setRequestURI("/webapp/j_spring_security_switch_user;jsessionid=8JHDUD723J8"); request.setRequestURI("/webapp/j_spring_security_switch_user;jsessionid=8JHDUD723J8");
@ -232,7 +232,7 @@ public class SwitchUserProcessingFilterTests {
request.setRequestURI("/j_spring_security_exit_user"); request.setRequestURI("/j_spring_security_exit_user");
// setup filter // setup filter
SwitchUserProcessingFilter filter = new SwitchUserProcessingFilter(); SwitchUserFilter filter = new SwitchUserFilter();
filter.setUserDetailsService(new MockUserDetailsService()); filter.setUserDetailsService(new MockUserDetailsService());
filter.setExitUserUrl("/j_spring_security_exit_user"); filter.setExitUserUrl("/j_spring_security_exit_user");
filter.setSuccessHandler(new SimpleUrlAuthenticationSuccessHandler("/webapp/someOtherUrl")); filter.setSuccessHandler(new SimpleUrlAuthenticationSuccessHandler("/webapp/someOtherUrl"));
@ -259,7 +259,7 @@ public class SwitchUserProcessingFilterTests {
request.setRequestURI("/j_spring_security_exit_user"); request.setRequestURI("/j_spring_security_exit_user");
// setup filter // setup filter
SwitchUserProcessingFilter filter = new SwitchUserProcessingFilter(); SwitchUserFilter filter = new SwitchUserFilter();
filter.setUserDetailsService(new MockUserDetailsService()); filter.setUserDetailsService(new MockUserDetailsService());
filter.setExitUserUrl("/j_spring_security_exit_user"); filter.setExitUserUrl("/j_spring_security_exit_user");
@ -275,10 +275,10 @@ public class SwitchUserProcessingFilterTests {
public void redirectToTargetUrlIsCorrect() throws Exception { public void redirectToTargetUrlIsCorrect() throws Exception {
MockHttpServletRequest request = createMockSwitchRequest(); MockHttpServletRequest request = createMockSwitchRequest();
request.setContextPath("/webapp"); request.setContextPath("/webapp");
request.addParameter(SwitchUserProcessingFilter.SPRING_SECURITY_SWITCH_USERNAME_KEY, "jacklord"); request.addParameter(SwitchUserFilter.SPRING_SECURITY_SWITCH_USERNAME_KEY, "jacklord");
request.setRequestURI("/webapp/j_spring_security_switch_user"); request.setRequestURI("/webapp/j_spring_security_switch_user");
SwitchUserProcessingFilter filter = new SwitchUserProcessingFilter(); SwitchUserFilter filter = new SwitchUserFilter();
filter.setSwitchUserUrl("/j_spring_security_switch_user"); filter.setSwitchUserUrl("/j_spring_security_switch_user");
filter.setSuccessHandler(new SimpleUrlAuthenticationSuccessHandler("/someOtherUrl")); filter.setSuccessHandler(new SimpleUrlAuthenticationSuccessHandler("/someOtherUrl"));
filter.setUserDetailsService(new MockUserDetailsService()); filter.setUserDetailsService(new MockUserDetailsService());
@ -301,10 +301,10 @@ public class SwitchUserProcessingFilterTests {
MockHttpServletRequest request = createMockSwitchRequest(); MockHttpServletRequest request = createMockSwitchRequest();
request.setContextPath("/webapp"); request.setContextPath("/webapp");
request.addParameter(SwitchUserProcessingFilter.SPRING_SECURITY_SWITCH_USERNAME_KEY, "jacklord"); request.addParameter(SwitchUserFilter.SPRING_SECURITY_SWITCH_USERNAME_KEY, "jacklord");
request.setRequestURI("/webapp/j_spring_security_switch_user"); request.setRequestURI("/webapp/j_spring_security_switch_user");
SwitchUserProcessingFilter filter = new SwitchUserProcessingFilter(); SwitchUserFilter filter = new SwitchUserFilter();
filter.setSwitchUserUrl("/j_spring_security_switch_user"); filter.setSwitchUserUrl("/j_spring_security_switch_user");
SimpleUrlAuthenticationSuccessHandler switchSuccessHandler = SimpleUrlAuthenticationSuccessHandler switchSuccessHandler =
new SimpleUrlAuthenticationSuccessHandler("/someOtherUrl"); new SimpleUrlAuthenticationSuccessHandler("/someOtherUrl");
@ -334,13 +334,13 @@ public class SwitchUserProcessingFilterTests {
// http request // http request
MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletRequest request = new MockHttpServletRequest();
request.setRequestURI("/webapp/j_spring_security_switch_user"); request.setRequestURI("/webapp/j_spring_security_switch_user");
request.addParameter(SwitchUserProcessingFilter.SPRING_SECURITY_SWITCH_USERNAME_KEY, "jacklord"); request.addParameter(SwitchUserFilter.SPRING_SECURITY_SWITCH_USERNAME_KEY, "jacklord");
// http response // http response
MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletResponse response = new MockHttpServletResponse();
// setup filter // setup filter
SwitchUserProcessingFilter filter = new SwitchUserProcessingFilter(); SwitchUserFilter filter = new SwitchUserFilter();
filter.setUserDetailsService(new MockUserDetailsService()); filter.setUserDetailsService(new MockUserDetailsService());
filter.setSwitchUserUrl("/j_spring_security_switch_user"); filter.setSwitchUserUrl("/j_spring_security_switch_user");
filter.setSuccessHandler(new SimpleUrlAuthenticationSuccessHandler("/webapp/someOtherUrl")); filter.setSuccessHandler(new SimpleUrlAuthenticationSuccessHandler("/webapp/someOtherUrl"));
@ -364,9 +364,9 @@ public class SwitchUserProcessingFilterTests {
SecurityContextHolder.getContext().setAuthentication(auth); SecurityContextHolder.getContext().setAuthentication(auth);
MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletRequest request = new MockHttpServletRequest();
request.addParameter(SwitchUserProcessingFilter.SPRING_SECURITY_SWITCH_USERNAME_KEY, "jacklord"); request.addParameter(SwitchUserFilter.SPRING_SECURITY_SWITCH_USERNAME_KEY, "jacklord");
SwitchUserProcessingFilter filter = new SwitchUserProcessingFilter(); SwitchUserFilter filter = new SwitchUserFilter();
filter.setUserDetailsService(new MockUserDetailsService()); filter.setUserDetailsService(new MockUserDetailsService());
filter.setSwitchUserAuthorityChanger(new SwitchUserAuthorityChanger() { filter.setSwitchUserAuthorityChanger(new SwitchUserAuthorityChanger() {
public Collection<GrantedAuthority> modifyGrantedAuthorities(UserDetails targetUser, Authentication currentAuthentication, Collection<GrantedAuthority> authoritiesToBeGranted) { public Collection<GrantedAuthority> modifyGrantedAuthorities(UserDetails targetUser, Authentication currentAuthentication, Collection<GrantedAuthority> authoritiesToBeGranted) {

View File

@ -18,32 +18,32 @@ package org.springframework.security.web.authentication.www;
import junit.framework.TestCase; import junit.framework.TestCase;
import org.springframework.security.authentication.DisabledException; import org.springframework.security.authentication.DisabledException;
import org.springframework.security.web.authentication.www.BasicProcessingFilterEntryPoint; import org.springframework.security.web.authentication.www.BasicAuthenticationEntryPoint;
import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.mock.web.MockHttpServletResponse;
/** /**
* Tests {@link BasicProcessingFilterEntryPoint}. * Tests {@link BasicAuthenticationEntryPoint}.
* *
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$
*/ */
public class BasicProcessingFilterEntryPointTests extends TestCase { public class BasicAuthenticationEntryPointTests extends TestCase {
//~ Constructors =================================================================================================== //~ Constructors ===================================================================================================
public BasicProcessingFilterEntryPointTests() { public BasicAuthenticationEntryPointTests() {
super(); super();
} }
public BasicProcessingFilterEntryPointTests(String arg0) { public BasicAuthenticationEntryPointTests(String arg0) {
super(arg0); super(arg0);
} }
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================
public static void main(String[] args) { public static void main(String[] args) {
junit.textui.TestRunner.run(BasicProcessingFilterEntryPointTests.class); junit.textui.TestRunner.run(BasicAuthenticationEntryPointTests.class);
} }
public final void setUp() throws Exception { public final void setUp() throws Exception {
@ -51,7 +51,7 @@ public class BasicProcessingFilterEntryPointTests extends TestCase {
} }
public void testDetectsMissingRealmName() throws Exception { public void testDetectsMissingRealmName() throws Exception {
BasicProcessingFilterEntryPoint ep = new BasicProcessingFilterEntryPoint(); BasicAuthenticationEntryPoint ep = new BasicAuthenticationEntryPoint();
try { try {
ep.afterPropertiesSet(); ep.afterPropertiesSet();
@ -62,13 +62,13 @@ public class BasicProcessingFilterEntryPointTests extends TestCase {
} }
public void testGettersSetters() { public void testGettersSetters() {
BasicProcessingFilterEntryPoint ep = new BasicProcessingFilterEntryPoint(); BasicAuthenticationEntryPoint ep = new BasicAuthenticationEntryPoint();
ep.setRealmName("realm"); ep.setRealmName("realm");
assertEquals("realm", ep.getRealmName()); assertEquals("realm", ep.getRealmName());
} }
public void testNormalOperation() throws Exception { public void testNormalOperation() throws Exception {
BasicProcessingFilterEntryPoint ep = new BasicProcessingFilterEntryPoint(); BasicAuthenticationEntryPoint ep = new BasicAuthenticationEntryPoint();
ep.setRealmName("hello"); ep.setRealmName("hello");

View File

@ -46,15 +46,15 @@ import org.springframework.security.web.authentication.WebAuthenticationDetails;
/** /**
* Tests {@link BasicProcessingFilter}. * Tests {@link BasicAuthenticationFilter}.
* *
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$
*/ */
public class BasicProcessingFilterTests { public class BasicAuthenticationFilterTests {
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
private BasicProcessingFilter filter; private BasicAuthenticationFilter filter;
private AuthenticationManager manager; private AuthenticationManager manager;
// private Mockery jmock = new JUnit4Mockery(); // private Mockery jmock = new JUnit4Mockery();
@ -86,9 +86,9 @@ public class BasicProcessingFilterTests {
when(manager.authenticate(rodRequest)).thenReturn(rod); when(manager.authenticate(rodRequest)).thenReturn(rod);
when(manager.authenticate(not(eq(rodRequest)))).thenThrow(new BadCredentialsException("")); when(manager.authenticate(not(eq(rodRequest)))).thenThrow(new BadCredentialsException(""));
filter = new BasicProcessingFilter(); filter = new BasicAuthenticationFilter();
filter.setAuthenticationManager(manager); filter.setAuthenticationManager(manager);
filter.setAuthenticationEntryPoint(new BasicProcessingFilterEntryPoint()); filter.setAuthenticationEntryPoint(new BasicAuthenticationEntryPoint());
} }
@After @After
@ -110,7 +110,7 @@ public class BasicProcessingFilterTests {
@Test @Test
public void testGettersSetters() { public void testGettersSetters() {
BasicProcessingFilter filter = new BasicProcessingFilter(); BasicAuthenticationFilter filter = new BasicAuthenticationFilter();
filter.setAuthenticationManager(manager); filter.setAuthenticationManager(manager);
assertTrue(filter.getAuthenticationManager() != null); assertTrue(filter.getAuthenticationManager() != null);
@ -166,14 +166,14 @@ public class BasicProcessingFilterTests {
@Test(expected=IllegalArgumentException.class) @Test(expected=IllegalArgumentException.class)
public void testStartupDetectsMissingAuthenticationEntryPoint() throws Exception { public void testStartupDetectsMissingAuthenticationEntryPoint() throws Exception {
BasicProcessingFilter filter = new BasicProcessingFilter(); BasicAuthenticationFilter filter = new BasicAuthenticationFilter();
filter.setAuthenticationManager(manager); filter.setAuthenticationManager(manager);
filter.afterPropertiesSet(); filter.afterPropertiesSet();
} }
@Test(expected=IllegalArgumentException.class) @Test(expected=IllegalArgumentException.class)
public void testStartupDetectsMissingAuthenticationManager() throws Exception { public void testStartupDetectsMissingAuthenticationManager() throws Exception {
BasicProcessingFilter filter = new BasicProcessingFilter(); BasicAuthenticationFilter filter = new BasicAuthenticationFilter();
filter.setAuthenticationEntryPoint(mock(AuthenticationEntryPoint.class)); filter.setAuthenticationEntryPoint(mock(AuthenticationEntryPoint.class));
filter.afterPropertiesSet(); filter.afterPropertiesSet();
} }

View File

@ -28,12 +28,12 @@ import org.springframework.util.StringUtils;
/** /**
* Tests {@link DigestProcessingFilterEntryPoint}. * Tests {@link DigestAuthenticationEntryPoint}.
* *
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$
*/ */
public class DigestProcessingFilterEntryPointTests extends TestCase { public class DigestAuthenticationEntryPointTests extends TestCase {
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================
private void checkNonceValid(String nonce) { private void checkNonceValid(String nonce) {
@ -51,7 +51,7 @@ public class DigestProcessingFilterEntryPointTests extends TestCase {
} }
public void testDetectsMissingKey() throws Exception { public void testDetectsMissingKey() throws Exception {
DigestProcessingFilterEntryPoint ep = new DigestProcessingFilterEntryPoint(); DigestAuthenticationEntryPoint ep = new DigestAuthenticationEntryPoint();
ep.setRealmName("realm"); ep.setRealmName("realm");
try { try {
@ -63,7 +63,7 @@ public class DigestProcessingFilterEntryPointTests extends TestCase {
} }
public void testDetectsMissingRealmName() throws Exception { public void testDetectsMissingRealmName() throws Exception {
DigestProcessingFilterEntryPoint ep = new DigestProcessingFilterEntryPoint(); DigestAuthenticationEntryPoint ep = new DigestAuthenticationEntryPoint();
ep.setKey("dcdc"); ep.setKey("dcdc");
ep.setNonceValiditySeconds(12); ep.setNonceValiditySeconds(12);
@ -76,7 +76,7 @@ public class DigestProcessingFilterEntryPointTests extends TestCase {
} }
public void testGettersSetters() { public void testGettersSetters() {
DigestProcessingFilterEntryPoint ep = new DigestProcessingFilterEntryPoint(); DigestAuthenticationEntryPoint ep = new DigestAuthenticationEntryPoint();
assertEquals(300, ep.getNonceValiditySeconds()); // 5 mins default assertEquals(300, ep.getNonceValiditySeconds()); // 5 mins default
ep.setRealmName("realm"); ep.setRealmName("realm");
assertEquals("realm", ep.getRealmName()); assertEquals("realm", ep.getRealmName());
@ -87,7 +87,7 @@ public class DigestProcessingFilterEntryPointTests extends TestCase {
} }
public void testNormalOperation() throws Exception { public void testNormalOperation() throws Exception {
DigestProcessingFilterEntryPoint ep = new DigestProcessingFilterEntryPoint(); DigestAuthenticationEntryPoint ep = new DigestAuthenticationEntryPoint();
ep.setRealmName("hello"); ep.setRealmName("hello");
ep.setKey("key"); ep.setKey("key");
@ -117,7 +117,7 @@ public class DigestProcessingFilterEntryPointTests extends TestCase {
} }
public void testOperationIfDueToStaleNonce() throws Exception { public void testOperationIfDueToStaleNonce() throws Exception {
DigestProcessingFilterEntryPoint ep = new DigestProcessingFilterEntryPoint(); DigestAuthenticationEntryPoint ep = new DigestAuthenticationEntryPoint();
ep.setRealmName("hello"); ep.setRealmName("hello");
ep.setKey("key"); ep.setKey("key");

View File

@ -46,13 +46,13 @@ import org.springframework.util.StringUtils;
/** /**
* Tests {@link DigestProcessingFilter}. * Tests {@link DigestAuthenticationFilter}.
* *
* @author Ben Alex * @author Ben Alex
* @author Luke Taylor * @author Luke Taylor
* @version $Id$ * @version $Id$
*/ */
public class DigestProcessingFilterTests { public class DigestAuthenticationFilterTests {
//~ Static fields/initializers ===================================================================================== //~ Static fields/initializers =====================================================================================
private static final String NC = "00000002"; private static final String NC = "00000002";
@ -72,7 +72,7 @@ public class DigestProcessingFilterTests {
//~ Instance fields ================================================================================================ //~ Instance fields ================================================================================================
// private ApplicationContext ctx; // private ApplicationContext ctx;
private DigestProcessingFilter filter; private DigestAuthenticationFilter filter;
private MockHttpServletRequest request; private MockHttpServletRequest request;
@ -124,11 +124,11 @@ public class DigestProcessingFilterTests {
editor.setAsText("rod,ok=koala,ROLE_ONE,ROLE_TWO,enabled\r\n"); editor.setAsText("rod,ok=koala,ROLE_ONE,ROLE_TWO,enabled\r\n");
dao.setUserMap((UserMap) editor.getValue()); dao.setUserMap((UserMap) editor.getValue());
DigestProcessingFilterEntryPoint ep = new DigestProcessingFilterEntryPoint(); DigestAuthenticationEntryPoint ep = new DigestAuthenticationEntryPoint();
ep.setRealmName(REALM); ep.setRealmName(REALM);
ep.setKey(KEY); ep.setKey(KEY);
filter = new DigestProcessingFilter(); filter = new DigestAuthenticationFilter();
filter.setUserDetailsService(dao); filter.setUserDetailsService(dao);
filter.setAuthenticationEntryPoint(ep); filter.setAuthenticationEntryPoint(ep);
@ -169,11 +169,11 @@ public class DigestProcessingFilterTests {
@Test @Test
public void testGettersSetters() { public void testGettersSetters() {
DigestProcessingFilter filter = new DigestProcessingFilter(); DigestAuthenticationFilter filter = new DigestAuthenticationFilter();
filter.setUserDetailsService(new InMemoryDaoImpl()); filter.setUserDetailsService(new InMemoryDaoImpl());
assertTrue(filter.getUserDetailsService() != null); assertTrue(filter.getUserDetailsService() != null);
filter.setAuthenticationEntryPoint(new DigestProcessingFilterEntryPoint()); filter.setAuthenticationEntryPoint(new DigestAuthenticationEntryPoint());
assertTrue(filter.getAuthenticationEntryPoint() != null); assertTrue(filter.getAuthenticationEntryPoint() != null);
filter.setUserCache(null); filter.setUserCache(null);
@ -329,15 +329,15 @@ public class DigestProcessingFilterTests {
@Test(expected=IllegalArgumentException.class) @Test(expected=IllegalArgumentException.class)
public void startupDetectsMissingAuthenticationEntryPoint() throws Exception { public void startupDetectsMissingAuthenticationEntryPoint() throws Exception {
DigestProcessingFilter filter = new DigestProcessingFilter(); DigestAuthenticationFilter filter = new DigestAuthenticationFilter();
filter.setUserDetailsService(new InMemoryDaoImpl()); filter.setUserDetailsService(new InMemoryDaoImpl());
filter.afterPropertiesSet(); filter.afterPropertiesSet();
} }
@Test(expected=IllegalArgumentException.class) @Test(expected=IllegalArgumentException.class)
public void startupDetectsMissingUserDetailsService() throws Exception { public void startupDetectsMissingUserDetailsService() throws Exception {
DigestProcessingFilter filter = new DigestProcessingFilter(); DigestAuthenticationFilter filter = new DigestAuthenticationFilter();
filter.setAuthenticationEntryPoint(new DigestProcessingFilterEntryPoint()); filter.setAuthenticationEntryPoint(new DigestAuthenticationEntryPoint());
filter.afterPropertiesSet(); filter.afterPropertiesSet();
} }