diff --git a/acl/pom.xml b/acl/pom.xml index 29178e11ad..44b8f4dc6d 100644 --- a/acl/pom.xml +++ b/acl/pom.xml @@ -56,10 +56,6 @@ hsqldb test - - org.jmock - jmock-junit4 - diff --git a/acl/src/test/java/org/springframework/security/acls/domain/PermissionTests.java b/acl/src/test/java/org/springframework/security/acls/domain/PermissionTests.java index fe53a76f03..df482759df 100644 --- a/acl/src/test/java/org/springframework/security/acls/domain/PermissionTests.java +++ b/acl/src/test/java/org/springframework/security/acls/domain/PermissionTests.java @@ -14,9 +14,8 @@ */ package org.springframework.security.acls.domain; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import static org.junit.Assert.*; + import org.junit.Test; import org.springframework.security.acls.Permission; @@ -28,9 +27,6 @@ import org.springframework.security.acls.Permission; * @version $Id${date} */ public class PermissionTests { - private static final Log LOGGER = LogFactory.getLog(PermissionTests.class); - - //~ Methods ======================================================================================================== @Test public void basePermissionTest() { diff --git a/cas/pom.xml b/cas/pom.xml index 2d6ef0dc3b..9bb0539313 100644 --- a/cas/pom.xml +++ b/cas/pom.xml @@ -15,6 +15,11 @@ spring-security-core ${project.version} + + org.springframework.security + spring-security-web + ${project.version} + org.springframework.security spring-security-core diff --git a/config/pom.xml b/config/pom.xml index 80c25662c0..68cff4e4d6 100644 --- a/config/pom.xml +++ b/config/pom.xml @@ -15,6 +15,18 @@ spring-security-core ${project.version} + + org.springframework.security + spring-security-web + ${project.version} + + + org.springframework.security + spring-security-web + ${project.version} + tests + test + commons-logging commons-logging diff --git a/config/src/main/java/org/springframework/security/config/AnonymousBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/AnonymousBeanDefinitionParser.java index eefb646413..fdca6da6bd 100644 --- a/config/src/main/java/org/springframework/security/config/AnonymousBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/AnonymousBeanDefinitionParser.java @@ -9,7 +9,7 @@ import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.beans.factory.xml.BeanDefinitionParser; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.security.providers.anonymous.AnonymousAuthenticationProvider; -import org.springframework.security.providers.anonymous.AnonymousProcessingFilter; +import org.springframework.security.ui.anonymous.AnonymousProcessingFilter; import org.springframework.util.StringUtils; import org.w3c.dom.Element; diff --git a/config/src/main/java/org/springframework/security/config/ConfigUtils.java b/config/src/main/java/org/springframework/security/config/ConfigUtils.java index e3ff23b1aa..8c8c98b08e 100644 --- a/config/src/main/java/org/springframework/security/config/ConfigUtils.java +++ b/config/src/main/java/org/springframework/security/config/ConfigUtils.java @@ -14,11 +14,11 @@ import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.security.afterinvocation.AfterInvocationProviderManager; import org.springframework.security.expression.method.MethodExpressionVoter; -import org.springframework.security.util.UrlUtils; import org.springframework.security.vote.AccessDecisionVoter; import org.springframework.security.vote.AffirmativeBased; import org.springframework.security.vote.AuthenticatedVoter; import org.springframework.security.vote.RoleVoter; +import org.springframework.security.web.util.UrlUtils; import org.springframework.util.StringUtils; import org.w3c.dom.Element; diff --git a/config/src/main/java/org/springframework/security/config/FilterChainProxyPostProcessor.java b/config/src/main/java/org/springframework/security/config/FilterChainProxyPostProcessor.java index 25050f94f8..9768063f9d 100644 --- a/config/src/main/java/org/springframework/security/config/FilterChainProxyPostProcessor.java +++ b/config/src/main/java/org/springframework/security/config/FilterChainProxyPostProcessor.java @@ -18,18 +18,18 @@ import org.springframework.core.OrderComparator; import org.springframework.core.Ordered; import org.springframework.security.ConfigAttribute; import org.springframework.security.config.ConfigUtils.FilterChainList; -import org.springframework.security.context.SecurityContextPersistenceFilter; +import org.springframework.security.context.web.SecurityContextPersistenceFilter; import org.springframework.security.intercept.web.DefaultFilterInvocationSecurityMetadataSource; import org.springframework.security.intercept.web.FilterSecurityInterceptor; import org.springframework.security.providers.anonymous.AnonymousAuthenticationToken; -import org.springframework.security.providers.anonymous.AnonymousProcessingFilter; import org.springframework.security.ui.ExceptionTranslationFilter; import org.springframework.security.ui.SessionFixationProtectionFilter; +import org.springframework.security.ui.anonymous.AnonymousProcessingFilter; import org.springframework.security.ui.basicauth.BasicProcessingFilter; import org.springframework.security.ui.webapp.AuthenticationProcessingFilter; import org.springframework.security.ui.webapp.AuthenticationProcessingFilterEntryPoint; import org.springframework.security.ui.webapp.DefaultLoginPageGeneratingFilter; -import org.springframework.security.util.FilterChainProxy; +import org.springframework.security.web.util.FilterChainProxy; import org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter; /** diff --git a/config/src/main/java/org/springframework/security/config/GlobalMethodSecurityBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/GlobalMethodSecurityBeanDefinitionParser.java index f33bba71f7..5bc7f8f4b4 100644 --- a/config/src/main/java/org/springframework/security/config/GlobalMethodSecurityBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/GlobalMethodSecurityBeanDefinitionParser.java @@ -20,7 +20,7 @@ import org.springframework.security.ConfigAttribute; import org.springframework.security.SecurityConfig; import org.springframework.security.expression.method.MethodExpressionAfterInvocationProvider; import org.springframework.security.expression.method.MethodExpressionVoter; -import org.springframework.security.expression.support.DefaultSecurityExpressionHandler; +import org.springframework.security.expression.support.DefaultMethodSecurityExpressionHandler; import org.springframework.security.intercept.method.DelegatingMethodSecurityMetadataSource; import org.springframework.security.intercept.method.MapBasedMethodSecurityMetadataSource; import org.springframework.security.intercept.method.ProtectPointcutPostProcessor; @@ -95,7 +95,7 @@ class GlobalMethodSecurityBeanDefinitionParser implements BeanDefinitionParser { if (StringUtils.hasText(expressionHandlerRef)) { logger.info("Using bean '" + expressionHandlerRef + "' as method SecurityExpressionHandler implementation"); } else { - parserContext.getRegistry().registerBeanDefinition(EXPRESSION_HANDLER_ID, new RootBeanDefinition(DefaultSecurityExpressionHandler.class)); + parserContext.getRegistry().registerBeanDefinition(EXPRESSION_HANDLER_ID, new RootBeanDefinition(DefaultMethodSecurityExpressionHandler.class)); logger.warn("Expressions were enabled for method security but no SecurityExpressionHandler was configured. " + "All hasPermision() expressions will evaluate to false."); expressionHandlerRef = EXPRESSION_HANDLER_ID; diff --git a/config/src/main/java/org/springframework/security/config/HttpSecurityBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/HttpSecurityBeanDefinitionParser.java index 9a70ff19de..3b80bfb343 100644 --- a/config/src/main/java/org/springframework/security/config/HttpSecurityBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/HttpSecurityBeanDefinitionParser.java @@ -19,8 +19,8 @@ import org.springframework.beans.factory.xml.ParserContext; import org.springframework.security.ConfigAttribute; import org.springframework.security.ConfigAttributeEditor; import org.springframework.security.SecurityConfig; -import org.springframework.security.context.HttpSessionSecurityContextRepository; -import org.springframework.security.context.SecurityContextPersistenceFilter; +import org.springframework.security.context.web.HttpSessionSecurityContextRepository; +import org.springframework.security.context.web.SecurityContextPersistenceFilter; import org.springframework.security.expression.web.WebExpressionVoter; import org.springframework.security.intercept.web.DefaultFilterInvocationSecurityMetadataSource; import org.springframework.security.intercept.web.FilterSecurityInterceptor; @@ -36,12 +36,12 @@ import org.springframework.security.ui.ExceptionTranslationFilter; import org.springframework.security.ui.SessionFixationProtectionFilter; import org.springframework.security.ui.webapp.DefaultLoginPageGeneratingFilter; import org.springframework.security.util.AntUrlPathMatcher; -import org.springframework.security.util.FilterChainProxy; import org.springframework.security.util.RegexUrlPathMatcher; import org.springframework.security.util.UrlMatcher; import org.springframework.security.vote.AccessDecisionVoter; import org.springframework.security.vote.AuthenticatedVoter; import org.springframework.security.vote.RoleVoter; +import org.springframework.security.web.util.FilterChainProxy; import org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter; import org.springframework.util.StringUtils; import org.springframework.util.xml.DomUtils; @@ -107,7 +107,7 @@ public class HttpSecurityBeanDefinitionParser implements BeanDefinitionParser { private static final String ATT_DISABLE_URL_REWRITING = "disable-url-rewriting"; private static final String EXPRESSION_FIDS_CLASS = "org.springframework.security.expression.web.ExpressionBasedFilterInvocationSecurityMetadataSource"; - private static final String EXPRESSION_HANDLER_CLASS = "org.springframework.security.expression.support.DefaultSecurityExpressionHandler"; + private static final String EXPRESSION_HANDLER_CLASS = "org.springframework.security.expression.web.support.DefaultWebSecurityExpressionHandler"; private static final String EXPRESSION_HANDLER_ID = "_webExpressionHandler"; @SuppressWarnings("unchecked") diff --git a/config/src/main/java/org/springframework/security/config/PortMappingsBeanDefinitionParser.java b/config/src/main/java/org/springframework/security/config/PortMappingsBeanDefinitionParser.java index d5ec6baf2f..005231ffdb 100644 --- a/config/src/main/java/org/springframework/security/config/PortMappingsBeanDefinitionParser.java +++ b/config/src/main/java/org/springframework/security/config/PortMappingsBeanDefinitionParser.java @@ -1,6 +1,6 @@ package org.springframework.security.config; -import org.springframework.security.util.PortMapperImpl; +import org.springframework.security.web.util.PortMapperImpl; import org.springframework.beans.factory.xml.BeanDefinitionParser; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.beans.factory.config.BeanDefinition; @@ -15,7 +15,7 @@ import java.util.Map; import java.util.HashMap; /** - * Parses a port-mappings element, producing a single {@link org.springframework.security.util.PortMapperImpl} + * Parses a port-mappings element, producing a single {@link org.springframework.security.web.util.PortMapperImpl} * bean. * * @author Luke Taylor diff --git a/config/src/test/java/org/springframework/security/config/HttpSecurityBeanDefinitionParserTests.java b/config/src/test/java/org/springframework/security/config/HttpSecurityBeanDefinitionParserTests.java index a84d0d921c..e2ec97135c 100644 --- a/config/src/test/java/org/springframework/security/config/HttpSecurityBeanDefinitionParserTests.java +++ b/config/src/test/java/org/springframework/security/config/HttpSecurityBeanDefinitionParserTests.java @@ -26,21 +26,21 @@ import org.springframework.security.concurrent.ConcurrentLoginException; import org.springframework.security.concurrent.ConcurrentSessionControllerImpl; import org.springframework.security.concurrent.ConcurrentSessionFilter; import org.springframework.security.config.util.InMemoryXmlApplicationContext; -import org.springframework.security.context.HttpSessionSecurityContextRepository; import org.springframework.security.context.SecurityContextHolder; -import org.springframework.security.context.SecurityContextPersistenceFilter; +import org.springframework.security.context.web.HttpSessionSecurityContextRepository; +import org.springframework.security.context.web.SecurityContextPersistenceFilter; import org.springframework.security.intercept.web.FilterInvocation; import org.springframework.security.intercept.web.FilterInvocationSecurityMetadataSource; import org.springframework.security.intercept.web.FilterSecurityInterceptor; import org.springframework.security.providers.TestingAuthenticationToken; import org.springframework.security.providers.UsernamePasswordAuthenticationToken; -import org.springframework.security.providers.anonymous.AnonymousProcessingFilter; import org.springframework.security.securechannel.ChannelProcessingFilter; import org.springframework.security.ui.AuthenticationFailureHandler; import org.springframework.security.ui.AuthenticationSuccessHandler; import org.springframework.security.ui.ExceptionTranslationFilter; import org.springframework.security.ui.SessionFixationProtectionFilter; import org.springframework.security.ui.WebAuthenticationDetails; +import org.springframework.security.ui.anonymous.AnonymousProcessingFilter; import org.springframework.security.ui.basicauth.BasicProcessingFilter; import org.springframework.security.ui.logout.LogoutFilter; import org.springframework.security.ui.logout.LogoutHandler; @@ -49,9 +49,8 @@ import org.springframework.security.ui.rememberme.PersistentTokenBasedRememberMe import org.springframework.security.ui.webapp.AuthenticationProcessingFilter; import org.springframework.security.ui.webapp.DefaultLoginPageGeneratingFilter; import org.springframework.security.util.FieldUtils; -import org.springframework.security.util.FilterChainProxy; -import org.springframework.security.util.MockFilter; -import org.springframework.security.util.PortMapperImpl; +import org.springframework.security.web.util.FilterChainProxy; +import org.springframework.security.web.util.PortMapperImpl; import org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter; import org.springframework.util.ReflectionUtils; @@ -341,20 +340,20 @@ public class HttpSecurityBeanDefinitionParserTests { "" + " " + "" + - "" + + "" + " " + "" + - "" + + "" + " " + "" + - "" + + "" + "" ); List filters = getFilters("/someurl"); assertEquals(AUTO_CONFIG_FILTERS + 3, filters.size()); - assertTrue(filters.get(0) instanceof MockFilter); - assertTrue(filters.get(1) instanceof SecurityContextHolderAwareRequestFilter); + assertTrue(filters.get(0) instanceof SecurityContextPersistenceFilter); + assertTrue(filters.get(1) instanceof SecurityContextPersistenceFilter); assertTrue(filters.get(4) instanceof SecurityContextHolderAwareRequestFilter); } @@ -694,7 +693,7 @@ public class HttpSecurityBeanDefinitionParserTests { @Test public void supportsExternallyDefinedSecurityContextRepository() throws Exception { setContext( - "" + + "" + "" + " " + "" + AUTH_PROVIDER_XML); @@ -707,7 +706,7 @@ public class HttpSecurityBeanDefinitionParserTests { @Test(expected=BeanDefinitionParsingException.class) public void cantUseUnsupportedSessionCreationAttributeWithExternallyDefinedSecurityContextRepository() throws Exception { setContext( - "" + + "" + "" + " " + "" + AUTH_PROVIDER_XML); diff --git a/config/src/test/java/org/springframework/security/util/FilterChainProxyConfigTests.java b/config/src/test/java/org/springframework/security/util/FilterChainProxyConfigTests.java index c9cef1913c..86f0330add 100644 --- a/config/src/test/java/org/springframework/security/util/FilterChainProxyConfigTests.java +++ b/config/src/test/java/org/springframework/security/util/FilterChainProxyConfigTests.java @@ -16,10 +16,15 @@ package org.springframework.security.util; import static org.junit.Assert.*; +import static org.mockito.Mockito.*; +import static org.mockito.Matchers.*; import java.util.List; import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import org.junit.After; import org.junit.Before; @@ -29,8 +34,10 @@ import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.security.MockFilterConfig; -import org.springframework.security.context.SecurityContextPersistenceFilter; +import org.springframework.security.context.web.SecurityContextPersistenceFilter; import org.springframework.security.ui.webapp.AuthenticationProcessingFilter; +import org.springframework.security.web.util.FilterChainProxy; +import org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter; /** * Tests {@link FilterChainProxy}. @@ -56,23 +63,6 @@ public class FilterChainProxyConfigTests { } } - @Test - public void testDoNotFilter() throws Exception { - FilterChainProxy filterChainProxy = (FilterChainProxy) appCtx.getBean("filterChain", FilterChainProxy.class); - MockFilter filter = (MockFilter) appCtx.getBean("mockFilter", MockFilter.class); - - MockHttpServletRequest request = new MockHttpServletRequest(); - request.setServletPath("/do/not/filter/somefile.html"); - - MockHttpServletResponse response = new MockHttpServletResponse(); - MockFilterChain chain = new MockFilterChain(true); - - filterChainProxy.doFilter(request, response, chain); - assertFalse(filter.isWasInitialized()); - assertFalse(filter.isWasDoFiltered()); - assertFalse(filter.isWasDestroyed()); - } - @Test(expected=BeanCreationException.class) public void misplacedUniversalPathShouldBeDetected() throws Exception { appCtx.getBean("newFilterChainProxyWrongPathOrder", FilterChainProxy.class); @@ -126,14 +116,14 @@ public class FilterChainProxyConfigTests { private void checkPathAndFilterOrder(FilterChainProxy filterChainProxy) throws Exception { List filters = filterChainProxy.getFilters("/foo/blah"); assertEquals(1, filters.size()); - assertTrue(filters.get(0) instanceof MockFilter); + assertTrue(filters.get(0) instanceof SecurityContextHolderAwareRequestFilter); filters = filterChainProxy.getFilters("/some/other/path/blah"); assertNotNull(filters); assertEquals(3, filters.size()); assertTrue(filters.get(0) instanceof SecurityContextPersistenceFilter); - assertTrue(filters.get(1) instanceof MockFilter); - assertTrue(filters.get(2) instanceof MockFilter); + assertTrue(filters.get(1) instanceof SecurityContextHolderAwareRequestFilter); + assertTrue(filters.get(2) instanceof SecurityContextHolderAwareRequestFilter); filters = filterChainProxy.getFilters("/do/not/filter"); assertEquals(0, filters.size()); @@ -142,37 +132,26 @@ public class FilterChainProxyConfigTests { assertEquals(3, filters.size()); assertTrue(filters.get(0) instanceof SecurityContextPersistenceFilter); assertTrue(filters.get(1) instanceof AuthenticationProcessingFilter); - assertTrue(filters.get(2) instanceof MockFilter); + assertTrue(filters.get(2) instanceof SecurityContextHolderAwareRequestFilter); } private void doNormalOperation(FilterChainProxy filterChainProxy) throws Exception { - MockFilter filter = (MockFilter) appCtx.getBean("mockFilter", MockFilter.class); - assertFalse(filter.isWasInitialized()); - assertFalse(filter.isWasDoFiltered()); - assertFalse(filter.isWasDestroyed()); - filterChainProxy.init(new MockFilterConfig()); - assertTrue(filter.isWasInitialized()); - assertFalse(filter.isWasDoFiltered()); - assertFalse(filter.isWasDestroyed()); MockHttpServletRequest request = new MockHttpServletRequest(); request.setServletPath("/foo/secure/super/somefile.html"); MockHttpServletResponse response = new MockHttpServletResponse(); - MockFilterChain chain = new MockFilterChain(true); + FilterChain chain = mock(FilterChain.class); filterChainProxy.doFilter(request, response, chain); - assertTrue(filter.isWasInitialized()); - assertTrue(filter.isWasDoFiltered()); - assertFalse(filter.isWasDestroyed()); + verify(chain).doFilter(any(HttpServletRequest.class), any(HttpServletResponse.class)); request.setServletPath("/a/path/which/doesnt/match/any/filter.html"); + chain = mock(FilterChain.class); filterChainProxy.doFilter(request, response, chain); + verify(chain).doFilter(any(HttpServletRequest.class), any(HttpServletResponse.class)); filterChainProxy.destroy(); - assertTrue(filter.isWasInitialized()); - assertTrue(filter.isWasDoFiltered()); - assertTrue(filter.isWasDestroyed()); } } diff --git a/config/src/test/resources/org/springframework/security/util/filtertest-valid.xml b/config/src/test/resources/org/springframework/security/util/filtertest-valid.xml index 177a88c11f..ec4bb61263 100644 --- a/config/src/test/resources/org/springframework/security/util/filtertest-valid.xml +++ b/config/src/test/resources/org/springframework/security/util/filtertest-valid.xml @@ -24,12 +24,12 @@ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.xsd"> - + - + - + @@ -39,7 +39,7 @@ http://www.springframework.org/schema/security http://www.springframework.org/sc - + @@ -48,7 +48,7 @@ http://www.springframework.org/schema/security http://www.springframework.org/sc - + @@ -57,14 +57,14 @@ http://www.springframework.org/schema/security http://www.springframework.org/sc - + - + @@ -72,7 +72,7 @@ http://www.springframework.org/schema/security http://www.springframework.org/sc - + @@ -81,7 +81,7 @@ http://www.springframework.org/schema/security http://www.springframework.org/sc - + diff --git a/core/pom.xml b/core/pom.xml index 1bedb30ae4..cafd8ce910 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -61,7 +61,7 @@ cglib cglib-nodep - test + runtime true @@ -86,16 +86,19 @@ hsqldb test + jaxen jaxen 1.1.1 true + org.apache.tomcat annotations-api @@ -110,10 +113,6 @@ true --> - - org.jmock - jmock-junit4 - log4j log4j diff --git a/core/src/main/java/org/springframework/security/concurrent/SessionInformation.java b/core/src/main/java/org/springframework/security/concurrent/SessionInformation.java index b78579730a..ee1327f722 100644 --- a/core/src/main/java/org/springframework/security/concurrent/SessionInformation.java +++ b/core/src/main/java/org/springframework/security/concurrent/SessionInformation.java @@ -23,12 +23,14 @@ import java.io.Serializable; /** * Represents a record of a session within the Spring Security framework. - *

This is primarily used for concurrent session support.

- *

Sessions have three states: active, expired, and destroyed. A session can that is invalidated by + *

+ * This is primarily used for concurrent session support. + *

+ * Sessions have three states: active, expired, and destroyed. A session can that is invalidated by * session.invalidate() or via Servlet Container management is considered "destroyed". An "expired" * session, on the other hand, is a session that Spring Security wants to end because it was selected for removal for * some reason (generally as it was the least recently used session and the maximum sessions for the user were - * reached). An "expired" session is removed as soon as possible by a Filter.

+ * reached). An "expired" session is removed as soon as possible by a Filter. * * @author Ben Alex * @version $Id$ diff --git a/core/src/main/java/org/springframework/security/context/InheritableThreadLocalSecurityContextHolderStrategy.java b/core/src/main/java/org/springframework/security/context/InheritableThreadLocalSecurityContextHolderStrategy.java index cbb90d0a42..4a7926acf3 100644 --- a/core/src/main/java/org/springframework/security/context/InheritableThreadLocalSecurityContextHolderStrategy.java +++ b/core/src/main/java/org/springframework/security/context/InheritableThreadLocalSecurityContextHolderStrategy.java @@ -26,7 +26,7 @@ import org.springframework.util.Assert; * @version $Id$ * * @see java.lang.ThreadLocal - * @see org.springframework.security.context.SecurityContextPersistenceFilter + * @see org.springframework.security.context.web.SecurityContextPersistenceFilter */ public class InheritableThreadLocalSecurityContextHolderStrategy implements SecurityContextHolderStrategy { //~ Static fields/initializers ===================================================================================== diff --git a/core/src/main/java/org/springframework/security/context/SecurityContextHolder.java b/core/src/main/java/org/springframework/security/context/SecurityContextHolder.java index 67673f0b1b..4ea2697173 100644 --- a/core/src/main/java/org/springframework/security/context/SecurityContextHolder.java +++ b/core/src/main/java/org/springframework/security/context/SecurityContextHolder.java @@ -43,7 +43,7 @@ import java.lang.reflect.Constructor; * @author Ben Alex * @version $Id$ * - * @see org.springframework.security.context.HttpSessionContextIntegrationFilter + * @see org.springframework.security.context.web.HttpSessionContextIntegrationFilter */ public class SecurityContextHolder { //~ Static fields/initializers ===================================================================================== @@ -138,7 +138,7 @@ public class SecurityContextHolder { /** * Delegates the creation of a new, empty context to the configured strategy. */ - static SecurityContext createEmptyContext() { + public static SecurityContext createEmptyContext() { return strategy.createEmptyContext(); } diff --git a/core/src/main/java/org/springframework/security/context/ThreadLocalSecurityContextHolderStrategy.java b/core/src/main/java/org/springframework/security/context/ThreadLocalSecurityContextHolderStrategy.java index a6a7e2954f..00a72a8950 100644 --- a/core/src/main/java/org/springframework/security/context/ThreadLocalSecurityContextHolderStrategy.java +++ b/core/src/main/java/org/springframework/security/context/ThreadLocalSecurityContextHolderStrategy.java @@ -25,7 +25,7 @@ import org.springframework.util.Assert; * @version $Id$ * * @see java.lang.ThreadLocal - * @see org.springframework.security.context.SecurityContextPersistenceFilter + * @see org.springframework.security.context.web.SecurityContextPersistenceFilter */ public class ThreadLocalSecurityContextHolderStrategy implements SecurityContextHolderStrategy { //~ Static fields/initializers ===================================================================================== diff --git a/core/src/main/java/org/springframework/security/context/package.html b/core/src/main/java/org/springframework/security/context/package.html index 6684b8943b..8b9530cc79 100644 --- a/core/src/main/java/org/springframework/security/context/package.html +++ b/core/src/main/java/org/springframework/security/context/package.html @@ -1,8 +1,7 @@ Classes related to the establishment of a security context for the duration of a request (such as -an HTTP or RMI invocation) and for the maintenance of the context between requests (by storing it in an HTTP sessio, for -example). +an HTTP or RMI invocation).

A security context is associated with the current execution thread for the duration of the request, making the authentication information it contains available throughout all the layers of an application. diff --git a/core/src/main/java/org/springframework/security/event/SessionCreationEvent.java b/core/src/main/java/org/springframework/security/event/SessionCreationEvent.java new file mode 100644 index 0000000000..5cdbd586cc --- /dev/null +++ b/core/src/main/java/org/springframework/security/event/SessionCreationEvent.java @@ -0,0 +1,18 @@ +package org.springframework.security.event; + +import org.springframework.context.ApplicationEvent; + +/** + * Generic session creation event which indicates that a session (potentially + * represented by a security context) has begun. + * + * @author Luke Taylor + * @version $Id$ + * @since 2.5 + */ +public abstract class SessionCreationEvent extends ApplicationEvent { + + public SessionCreationEvent(Object source) { + super(source); + } +} diff --git a/core/src/main/java/org/springframework/security/event/SessionDestroyedEvent.java b/core/src/main/java/org/springframework/security/event/SessionDestroyedEvent.java new file mode 100644 index 0000000000..4bad7e7c27 --- /dev/null +++ b/core/src/main/java/org/springframework/security/event/SessionDestroyedEvent.java @@ -0,0 +1,26 @@ +package org.springframework.security.event; + +import org.springframework.context.ApplicationEvent; +import org.springframework.security.context.SecurityContext; + +/** + * Generic "session termination" event which indicates that a session (potentially + * represented by a security context) has ended. + * + * @author Luke Taylor + * @version $Id$ + * @since 2.5 + */ +public abstract class SessionDestroyedEvent extends ApplicationEvent { + + public SessionDestroyedEvent(Object source) { + super(source); + } + + /** + * Provides the SecurityContext under which the session was running. + * + * @return the SecurityContext associated with the session, or null if there is no context. + */ + public abstract SecurityContext getSecurityContext(); +} diff --git a/core/src/main/java/org/springframework/security/expression/SecurityExpressionHandler.java b/core/src/main/java/org/springframework/security/expression/MethodSecurityExpressionHandler.java similarity index 80% rename from core/src/main/java/org/springframework/security/expression/SecurityExpressionHandler.java rename to core/src/main/java/org/springframework/security/expression/MethodSecurityExpressionHandler.java index 36e1fe25c7..55a95a91c1 100644 --- a/core/src/main/java/org/springframework/security/expression/SecurityExpressionHandler.java +++ b/core/src/main/java/org/springframework/security/expression/MethodSecurityExpressionHandler.java @@ -5,17 +5,16 @@ import org.springframework.expression.EvaluationContext; import org.springframework.expression.Expression; import org.springframework.expression.ExpressionParser; import org.springframework.security.Authentication; -import org.springframework.security.intercept.web.FilterInvocation; /** - * Facade which isolates Spring Security's requirements from the implementation of the underlying - * expression objects. + * Facade which isolates Spring Security's requirements for evaluation method-security expressions + * from the implementation of the underlying expression objects. * * @author Luke Taylor * @version $Id$ * @since 2.5 */ -public interface SecurityExpressionHandler { +public interface MethodSecurityExpressionHandler { /** * @return an expression parser for the expressions used by the implementation. */ @@ -26,11 +25,6 @@ public interface SecurityExpressionHandler { */ EvaluationContext createEvaluationContext(Authentication authentication, MethodInvocation mi); - /** - * Provides an evaluation context in which to evaluate security expressions for a web invocation. - */ - EvaluationContext createEvaluationContext(Authentication authentication, FilterInvocation fi); - /** * Filters a target collection or array. * Only applies to method invocations. diff --git a/core/src/main/java/org/springframework/security/expression/method/ExpressionAnnotationMethodSecurityMetadataSource.java b/core/src/main/java/org/springframework/security/expression/method/ExpressionAnnotationMethodSecurityMetadataSource.java index 558dee1bad..d4d0ce8cc9 100644 --- a/core/src/main/java/org/springframework/security/expression/method/ExpressionAnnotationMethodSecurityMetadataSource.java +++ b/core/src/main/java/org/springframework/security/expression/method/ExpressionAnnotationMethodSecurityMetadataSource.java @@ -12,7 +12,7 @@ import org.springframework.expression.ExpressionParser; import org.springframework.expression.ParseException; import org.springframework.expression.spel.antlr.SpelAntlrExpressionParser; import org.springframework.security.ConfigAttribute; -import org.springframework.security.expression.SecurityExpressionHandler; +import org.springframework.security.expression.MethodSecurityExpressionHandler; import org.springframework.security.expression.annotation.PostAuthorize; import org.springframework.security.expression.annotation.PostFilter; import org.springframework.security.expression.annotation.PreAuthorize; @@ -45,10 +45,10 @@ public class ExpressionAnnotationMethodSecurityMetadataSource extends AbstractMe } /** - * Constructor which obtains the expression parser from the {@link SecurityExpressionHandler#getExpressionParser() } + * Constructor which obtains the expression parser from the {@link MethodSecurityExpressionHandler#getExpressionParser() } * method on the supplied SecurityExpressionHandler. */ - public ExpressionAnnotationMethodSecurityMetadataSource(SecurityExpressionHandler handler) { + public ExpressionAnnotationMethodSecurityMetadataSource(MethodSecurityExpressionHandler handler) { parser = handler.getExpressionParser(); } diff --git a/core/src/main/java/org/springframework/security/expression/method/MethodExpressionAfterInvocationProvider.java b/core/src/main/java/org/springframework/security/expression/method/MethodExpressionAfterInvocationProvider.java index cb45168ebf..5c41dfc8ba 100644 --- a/core/src/main/java/org/springframework/security/expression/method/MethodExpressionAfterInvocationProvider.java +++ b/core/src/main/java/org/springframework/security/expression/method/MethodExpressionAfterInvocationProvider.java @@ -12,8 +12,8 @@ import org.springframework.security.Authentication; import org.springframework.security.ConfigAttribute; import org.springframework.security.afterinvocation.AfterInvocationProvider; import org.springframework.security.expression.ExpressionUtils; -import org.springframework.security.expression.SecurityExpressionHandler; -import org.springframework.security.expression.support.DefaultSecurityExpressionHandler; +import org.springframework.security.expression.MethodSecurityExpressionHandler; +import org.springframework.security.expression.support.DefaultMethodSecurityExpressionHandler; /** * AfterInvocationProvider which handles the @PostAuthorize and @PostFilter annotation expressions. @@ -26,7 +26,7 @@ public class MethodExpressionAfterInvocationProvider implements AfterInvocationP protected final Log logger = LogFactory.getLog(getClass()); - private SecurityExpressionHandler expressionHandler = new DefaultSecurityExpressionHandler(); + private MethodSecurityExpressionHandler expressionHandler = new DefaultMethodSecurityExpressionHandler(); public Object decide(Authentication authentication, Object object, List config, Object returnedObject) throws AccessDeniedException { @@ -90,7 +90,7 @@ public class MethodExpressionAfterInvocationProvider implements AfterInvocationP return clazz.isAssignableFrom(MethodInvocation.class); } - public void setExpressionHandler(SecurityExpressionHandler expressionHandler) { + public void setExpressionHandler(MethodSecurityExpressionHandler expressionHandler) { this.expressionHandler = expressionHandler; } } diff --git a/core/src/main/java/org/springframework/security/expression/method/MethodExpressionVoter.java b/core/src/main/java/org/springframework/security/expression/method/MethodExpressionVoter.java index 691ec03c59..c105751e9f 100644 --- a/core/src/main/java/org/springframework/security/expression/method/MethodExpressionVoter.java +++ b/core/src/main/java/org/springframework/security/expression/method/MethodExpressionVoter.java @@ -11,8 +11,8 @@ import org.springframework.expression.Expression; import org.springframework.security.Authentication; import org.springframework.security.ConfigAttribute; import org.springframework.security.expression.ExpressionUtils; -import org.springframework.security.expression.SecurityExpressionHandler; -import org.springframework.security.expression.support.DefaultSecurityExpressionHandler; +import org.springframework.security.expression.MethodSecurityExpressionHandler; +import org.springframework.security.expression.support.DefaultMethodSecurityExpressionHandler; import org.springframework.security.vote.AccessDecisionVoter; /** @@ -29,7 +29,7 @@ import org.springframework.security.vote.AccessDecisionVoter; public class MethodExpressionVoter implements AccessDecisionVoter { protected final Log logger = LogFactory.getLog(getClass()); - private SecurityExpressionHandler expressionHandler = new DefaultSecurityExpressionHandler(); + private MethodSecurityExpressionHandler expressionHandler = new DefaultMethodSecurityExpressionHandler(); public boolean supports(ConfigAttribute attribute) { return attribute instanceof AbstractExpressionBasedMethodConfigAttribute; @@ -105,7 +105,7 @@ public class MethodExpressionVoter implements AccessDecisionVoter { return null; } - public void setExpressionHandler(SecurityExpressionHandler expressionHandler) { + public void setExpressionHandler(MethodSecurityExpressionHandler expressionHandler) { this.expressionHandler = expressionHandler; } } diff --git a/core/src/main/java/org/springframework/security/expression/support/DefaultSecurityExpressionHandler.java b/core/src/main/java/org/springframework/security/expression/support/DefaultMethodSecurityExpressionHandler.java similarity index 88% rename from core/src/main/java/org/springframework/security/expression/support/DefaultSecurityExpressionHandler.java rename to core/src/main/java/org/springframework/security/expression/support/DefaultMethodSecurityExpressionHandler.java index 76ef6ca82a..dd6661ba91 100644 --- a/core/src/main/java/org/springframework/security/expression/support/DefaultSecurityExpressionHandler.java +++ b/core/src/main/java/org/springframework/security/expression/support/DefaultMethodSecurityExpressionHandler.java @@ -14,14 +14,12 @@ import org.springframework.expression.EvaluationContext; import org.springframework.expression.Expression; import org.springframework.expression.ExpressionParser; import org.springframework.expression.spel.antlr.SpelAntlrExpressionParser; -import org.springframework.expression.spel.support.StandardEvaluationContext; import org.springframework.security.Authentication; import org.springframework.security.AuthenticationTrustResolver; import org.springframework.security.AuthenticationTrustResolverImpl; import org.springframework.security.expression.ExpressionUtils; import org.springframework.security.expression.PermissionEvaluator; -import org.springframework.security.expression.SecurityExpressionHandler; -import org.springframework.security.intercept.web.FilterInvocation; +import org.springframework.security.expression.MethodSecurityExpressionHandler; /** * The standard implementation of SecurityExpressionHandler. @@ -32,7 +30,7 @@ import org.springframework.security.intercept.web.FilterInvocation; * @version $Id$ * @since 2.5 */ -public class DefaultSecurityExpressionHandler implements SecurityExpressionHandler { +public class DefaultMethodSecurityExpressionHandler implements MethodSecurityExpressionHandler { protected final Log logger = LogFactory.getLog(getClass()); @@ -41,7 +39,7 @@ public class DefaultSecurityExpressionHandler implements SecurityExpressionHandl private AuthenticationTrustResolver trustResolver = new AuthenticationTrustResolverImpl(); private ExpressionParser expressionParser = new SpelAntlrExpressionParser(); - public DefaultSecurityExpressionHandler() { + public DefaultMethodSecurityExpressionHandler() { } /** @@ -58,15 +56,6 @@ public class DefaultSecurityExpressionHandler implements SecurityExpressionHandl return ctx; } - public EvaluationContext createEvaluationContext(Authentication authentication, FilterInvocation fi) { - StandardEvaluationContext ctx = new StandardEvaluationContext(); - SecurityExpressionRoot root = new WebSecurityExpressionRoot(authentication, fi); - root.setTrustResolver(trustResolver); - ctx.setRootObject(root); - - return ctx; - } - @SuppressWarnings("unchecked") public Object filter(Object filterTarget, Expression filterExpression, EvaluationContext ctx) { MethodSecurityExpressionRoot rootObject = (MethodSecurityExpressionRoot) ctx.getRootObject(); diff --git a/core/src/main/java/org/springframework/security/expression/support/SecurityExpressionRoot.java b/core/src/main/java/org/springframework/security/expression/support/SecurityExpressionRoot.java index 047f88d57b..03fcfbeb5f 100644 --- a/core/src/main/java/org/springframework/security/expression/support/SecurityExpressionRoot.java +++ b/core/src/main/java/org/springframework/security/expression/support/SecurityExpressionRoot.java @@ -15,7 +15,7 @@ import org.springframework.security.util.AuthorityUtils; * @version $Id$ * @since 2.5 */ -abstract class SecurityExpressionRoot { +public abstract class SecurityExpressionRoot { protected final Authentication authentication; private AuthenticationTrustResolver trustResolver; /** Allows "permitAll" expression */ @@ -24,7 +24,7 @@ abstract class SecurityExpressionRoot { /** Allows "denyAll" expression */ public final boolean denyAll = false; - SecurityExpressionRoot(Authentication a) { + public SecurityExpressionRoot(Authentication a) { if (a == null) { throw new IllegalArgumentException("Authentication object cannot be null"); } diff --git a/core/src/main/java/org/springframework/security/providers/jaas/JaasAuthenticationProvider.java b/core/src/main/java/org/springframework/security/providers/jaas/JaasAuthenticationProvider.java index a62c1d2085..53683d9e31 100644 --- a/core/src/main/java/org/springframework/security/providers/jaas/JaasAuthenticationProvider.java +++ b/core/src/main/java/org/springframework/security/providers/jaas/JaasAuthenticationProvider.java @@ -41,13 +41,12 @@ import org.springframework.security.Authentication; import org.springframework.security.AuthenticationException; import org.springframework.security.GrantedAuthority; import org.springframework.security.SpringSecurityException; -import org.springframework.security.context.HttpSessionSecurityContextRepository; import org.springframework.security.context.SecurityContext; +import org.springframework.security.event.SessionDestroyedEvent; import org.springframework.security.providers.AuthenticationProvider; import org.springframework.security.providers.UsernamePasswordAuthenticationToken; import org.springframework.security.providers.jaas.event.JaasAuthenticationFailedEvent; import org.springframework.security.providers.jaas.event.JaasAuthenticationSuccessEvent; -import org.springframework.security.ui.session.HttpSessionDestroyedEvent; import org.springframework.util.Assert; @@ -311,9 +310,8 @@ public class JaasAuthenticationProvider implements AuthenticationProvider, Appli * * @param event */ - protected void handleLogout(HttpSessionDestroyedEvent event) { - SecurityContext context = (SecurityContext) - event.getSession().getAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY); + protected void handleLogout(SessionDestroyedEvent event) { + SecurityContext context = event.getSecurityContext(); if (context == null) { log.debug("The destroyed session has no SecurityContext"); @@ -343,8 +341,8 @@ public class JaasAuthenticationProvider implements AuthenticationProvider, Appli } public void onApplicationEvent(ApplicationEvent applicationEvent) { - if (applicationEvent instanceof HttpSessionDestroyedEvent) { - HttpSessionDestroyedEvent event = (HttpSessionDestroyedEvent) applicationEvent; + if (applicationEvent instanceof SessionDestroyedEvent) { + SessionDestroyedEvent event = (SessionDestroyedEvent) applicationEvent; handleLogout(event); } } diff --git a/core/src/main/java/org/springframework/security/providers/preauth/PreAuthenticatedAuthenticationProvider.java b/core/src/main/java/org/springframework/security/providers/preauth/PreAuthenticatedAuthenticationProvider.java index f39bc9f6b2..30c98416a3 100644 --- a/core/src/main/java/org/springframework/security/providers/preauth/PreAuthenticatedAuthenticationProvider.java +++ b/core/src/main/java/org/springframework/security/providers/preauth/PreAuthenticatedAuthenticationProvider.java @@ -22,7 +22,7 @@ import org.springframework.util.Assert; * *

* This authentication provider will not perform any checks on authentication - * requests, as they should already be pre- authenticated. However, the + * requests, as they should already be pre-authenticated. However, the * AuthenticationUserDetailsService implementation may still throw a UsernameNotFoundException, for example. * * @author Ruud Senden diff --git a/core/src/main/java/org/springframework/security/context/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutor.java b/core/src/main/java/org/springframework/security/remoting/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutor.java similarity index 98% rename from core/src/main/java/org/springframework/security/context/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutor.java rename to core/src/main/java/org/springframework/security/remoting/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutor.java index bb892774c0..6390729572 100644 --- a/core/src/main/java/org/springframework/security/context/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutor.java +++ b/core/src/main/java/org/springframework/security/remoting/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutor.java @@ -13,7 +13,7 @@ * limitations under the License. */ -package org.springframework.security.context.httpinvoker; +package org.springframework.security.remoting.httpinvoker; import org.springframework.security.Authentication; import org.springframework.security.AuthenticationCredentialsNotFoundException; diff --git a/core/src/main/java/org/springframework/security/context/httpinvoker/package.html b/core/src/main/java/org/springframework/security/remoting/httpinvoker/package.html similarity index 100% rename from core/src/main/java/org/springframework/security/context/httpinvoker/package.html rename to core/src/main/java/org/springframework/security/remoting/httpinvoker/package.html diff --git a/core/src/main/java/org/springframework/security/context/rmi/ContextPropagatingRemoteInvocation.java b/core/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocation.java similarity index 98% rename from core/src/main/java/org/springframework/security/context/rmi/ContextPropagatingRemoteInvocation.java rename to core/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocation.java index 3fcaa6d342..eb6dee9e60 100644 --- a/core/src/main/java/org/springframework/security/context/rmi/ContextPropagatingRemoteInvocation.java +++ b/core/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocation.java @@ -13,7 +13,7 @@ * limitations under the License. */ -package org.springframework.security.context.rmi; +package org.springframework.security.remoting.rmi; import org.springframework.security.context.SecurityContext; import org.springframework.security.context.SecurityContextHolder; diff --git a/core/src/main/java/org/springframework/security/context/rmi/ContextPropagatingRemoteInvocationFactory.java b/core/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocationFactory.java similarity index 96% rename from core/src/main/java/org/springframework/security/context/rmi/ContextPropagatingRemoteInvocationFactory.java rename to core/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocationFactory.java index 88da30f726..7314dd0aa7 100644 --- a/core/src/main/java/org/springframework/security/context/rmi/ContextPropagatingRemoteInvocationFactory.java +++ b/core/src/main/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocationFactory.java @@ -13,7 +13,7 @@ * limitations under the License. */ -package org.springframework.security.context.rmi; +package org.springframework.security.remoting.rmi; import org.aopalliance.intercept.MethodInvocation; diff --git a/core/src/main/java/org/springframework/security/context/rmi/package.html b/core/src/main/java/org/springframework/security/remoting/rmi/package.html similarity index 100% rename from core/src/main/java/org/springframework/security/context/rmi/package.html rename to core/src/main/java/org/springframework/security/remoting/rmi/package.html diff --git a/core/src/main/java/org/springframework/security/ui/session/HttpSessionApplicationEvent.java b/core/src/main/java/org/springframework/security/ui/session/HttpSessionApplicationEvent.java deleted file mode 100644 index 7d8e9b1fbf..0000000000 --- a/core/src/main/java/org/springframework/security/ui/session/HttpSessionApplicationEvent.java +++ /dev/null @@ -1,50 +0,0 @@ -/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.security.ui.session; - -import org.springframework.context.ApplicationEvent; - -import javax.servlet.http.HttpSession; - - -/** - * Parent class for published HttpSession events - * - * @author Ray Krueger - */ -public abstract class HttpSessionApplicationEvent extends ApplicationEvent { - //~ Constructors =================================================================================================== - -/** - * Base constructor for all subclasses must have an HttpSession - * - * @param httpSession The session to carry as the event source. - */ - public HttpSessionApplicationEvent(HttpSession httpSession) { - super(httpSession); - } - - //~ Methods ======================================================================================================== - - /** - * Get the HttpSession that is the cause of the event - * - * @return HttpSession instance - */ - public HttpSession getSession() { - return (HttpSession) getSource(); - } -} diff --git a/core/src/test/java/org/springframework/security/afterinvocation/AfterInvocationProviderManagerTests.java b/core/src/test/java/org/springframework/security/afterinvocation/AfterInvocationProviderManagerTests.java index 4c231298f5..5d9e160e1a 100644 --- a/core/src/test/java/org/springframework/security/afterinvocation/AfterInvocationProviderManagerTests.java +++ b/core/src/test/java/org/springframework/security/afterinvocation/AfterInvocationProviderManagerTests.java @@ -25,7 +25,6 @@ import org.springframework.security.AccessDeniedException; import org.springframework.security.Authentication; import org.springframework.security.ConfigAttribute; import org.springframework.security.SecurityConfig; -import org.springframework.security.intercept.web.FilterInvocation; import org.springframework.security.util.SimpleMethodInvocation; @@ -129,7 +128,7 @@ public class AfterInvocationProviderManagerTests extends TestCase { manager.setProviders(list); manager.afterPropertiesSet(); - assertFalse(manager.supports(FilterInvocation.class)); +// assertFalse(manager.supports(FilterInvocation.class)); assertTrue(manager.supports(MethodInvocation.class)); } diff --git a/core/src/test/java/org/springframework/security/providers/ProviderManagerTests.java b/core/src/test/java/org/springframework/security/providers/ProviderManagerTests.java index 6daa334558..31a5c42df4 100644 --- a/core/src/test/java/org/springframework/security/providers/ProviderManagerTests.java +++ b/core/src/test/java/org/springframework/security/providers/ProviderManagerTests.java @@ -15,10 +15,8 @@ package org.springframework.security.providers; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; import java.util.ArrayList; import java.util.Arrays; @@ -32,7 +30,7 @@ import org.springframework.security.AuthenticationServiceException; import org.springframework.security.GrantedAuthority; import org.springframework.security.MockApplicationEventPublisher; import org.springframework.security.concurrent.ConcurrentLoginException; -import org.springframework.security.concurrent.ConcurrentSessionControllerImpl; +import org.springframework.security.concurrent.ConcurrentSessionController; import org.springframework.security.concurrent.NullConcurrentSessionController; import org.springframework.security.util.AuthorityUtils; @@ -102,9 +100,9 @@ public class ProviderManagerTests { assertNotNull(target.getSessionController()); assertTrue(target.getSessionController() instanceof NullConcurrentSessionController); - ConcurrentSessionControllerImpl impl = new ConcurrentSessionControllerImpl(); - target.setSessionController(impl); - assertEquals(impl, target.getSessionController()); + ConcurrentSessionController csc = mock(ConcurrentSessionController.class); + target.setSessionController(csc); + assertEquals(csc, target.getSessionController()); } @Test(expected=IllegalArgumentException.class) diff --git a/core/src/test/java/org/springframework/security/providers/jaas/JaasAuthenticationProviderTests.java b/core/src/test/java/org/springframework/security/providers/jaas/JaasAuthenticationProviderTests.java index bb94b14326..dedf6d88ee 100644 --- a/core/src/test/java/org/springframework/security/providers/jaas/JaasAuthenticationProviderTests.java +++ b/core/src/test/java/org/springframework/security/providers/jaas/JaasAuthenticationProviderTests.java @@ -15,6 +15,8 @@ package org.springframework.security.providers.jaas; +import static org.mockito.Mockito.*; + import java.net.URL; import java.security.Security; import java.util.List; @@ -26,18 +28,16 @@ import junit.framework.TestCase; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; -import org.springframework.mock.web.MockHttpSession; import org.springframework.security.Authentication; import org.springframework.security.AuthenticationException; import org.springframework.security.GrantedAuthority; import org.springframework.security.GrantedAuthorityImpl; import org.springframework.security.LockedException; import org.springframework.security.SpringSecurityException; -import org.springframework.security.context.HttpSessionSecurityContextRepository; import org.springframework.security.context.SecurityContextImpl; +import org.springframework.security.event.SessionDestroyedEvent; import org.springframework.security.providers.TestingAuthenticationToken; import org.springframework.security.providers.UsernamePasswordAuthenticationToken; -import org.springframework.security.ui.session.HttpSessionDestroyedEvent; import org.springframework.security.util.AuthorityUtils; @@ -204,10 +204,10 @@ public class JaasAuthenticationProviderTests extends TestCase { SecurityContextImpl context = new SecurityContextImpl(); context.setAuthentication(token); - MockHttpSession mockSession = new MockHttpSession(); - mockSession.setAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY, context); + SessionDestroyedEvent event = mock(SessionDestroyedEvent.class); + when(event.getSecurityContext()).thenReturn(context); - jaasProvider.onApplicationEvent(new HttpSessionDestroyedEvent(mockSession)); + jaasProvider.handleLogout(event); assertTrue(loginContext.loggedOut); } diff --git a/core/src/test/java/org/springframework/security/context/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutorTests.java b/core/src/test/java/org/springframework/security/remoting/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutorTests.java similarity index 96% rename from core/src/test/java/org/springframework/security/context/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutorTests.java rename to core/src/test/java/org/springframework/security/remoting/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutorTests.java index 116b6366c1..f0df06031c 100644 --- a/core/src/test/java/org/springframework/security/context/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutorTests.java +++ b/core/src/test/java/org/springframework/security/remoting/httpinvoker/AuthenticationSimpleHttpInvokerRequestExecutorTests.java @@ -13,16 +13,16 @@ * limitations under the License. */ -package org.springframework.security.context.httpinvoker; +package org.springframework.security.remoting.httpinvoker; import junit.framework.TestCase; import org.springframework.security.Authentication; import org.springframework.security.context.SecurityContextHolder; -import org.springframework.security.context.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor; import org.springframework.security.providers.UsernamePasswordAuthenticationToken; +import org.springframework.security.remoting.httpinvoker.AuthenticationSimpleHttpInvokerRequestExecutor; import java.io.IOException; diff --git a/core/src/test/java/org/springframework/security/context/rmi/ContextPropagatingRemoteInvocationTests.java b/core/src/test/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocationTests.java similarity index 95% rename from core/src/test/java/org/springframework/security/context/rmi/ContextPropagatingRemoteInvocationTests.java rename to core/src/test/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocationTests.java index 4501e108ac..8fe11d0dae 100644 --- a/core/src/test/java/org/springframework/security/context/rmi/ContextPropagatingRemoteInvocationTests.java +++ b/core/src/test/java/org/springframework/security/remoting/rmi/ContextPropagatingRemoteInvocationTests.java @@ -13,7 +13,7 @@ * limitations under the License. */ -package org.springframework.security.context.rmi; +package org.springframework.security.remoting.rmi; import junit.framework.TestCase; @@ -23,6 +23,8 @@ import org.springframework.security.TargetObject; import org.springframework.security.context.SecurityContextHolder; import org.springframework.security.providers.UsernamePasswordAuthenticationToken; +import org.springframework.security.remoting.rmi.ContextPropagatingRemoteInvocation; +import org.springframework.security.remoting.rmi.ContextPropagatingRemoteInvocationFactory; import org.springframework.security.util.SimpleMethodInvocation; diff --git a/core/src/test/java/org/springframework/security/util/MockFilterChain.java b/core/src/test/java/org/springframework/security/util/MockFilterChain.java deleted file mode 100644 index af385802c2..0000000000 --- a/core/src/test/java/org/springframework/security/util/MockFilterChain.java +++ /dev/null @@ -1,56 +0,0 @@ -/* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.security.util; - -import java.io.IOException; - -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.ServletRequest; -import javax.servlet.ServletResponse; - -import org.junit.Assert; - - -/** - * A mock FilterChain. - * - * @author Ben Alex - * @version $Id$ - */ -public class MockFilterChain implements FilterChain { - //~ Instance fields ================================================================================================ - - private boolean expectToProceed; - - //~ Constructors =================================================================================================== - - public MockFilterChain() { - this(true); - } - - public MockFilterChain(boolean expectToProceed) { - this.expectToProceed = expectToProceed; - } - - //~ Methods ======================================================================================================== - - public void doFilter(ServletRequest request, ServletResponse response) throws IOException, ServletException { - if (!expectToProceed) { - Assert.fail("Did not expect filter chain to proceed"); - } - } -} diff --git a/itest/context/src/test/java/org/springframework/security/performance/FilterChainPerformanceTests.java b/itest/context/src/test/java/org/springframework/security/performance/FilterChainPerformanceTests.java index 24833cdae7..e583fb5f3f 100644 --- a/itest/context/src/test/java/org/springframework/security/performance/FilterChainPerformanceTests.java +++ b/itest/context/src/test/java/org/springframework/security/performance/FilterChainPerformanceTests.java @@ -18,10 +18,10 @@ import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.mock.web.MockHttpSession; import org.springframework.security.GrantedAuthority; import org.springframework.security.GrantedAuthorityImpl; -import org.springframework.security.context.HttpSessionSecurityContextRepository; import org.springframework.security.context.SecurityContextHolder; +import org.springframework.security.context.web.HttpSessionSecurityContextRepository; import org.springframework.security.providers.UsernamePasswordAuthenticationToken; -import org.springframework.security.util.FilterChainProxy; +import org.springframework.security.web.util.FilterChainProxy; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.util.StopWatch; diff --git a/itest/context/src/test/resources/filter-chain-performance-app-context.xml b/itest/context/src/test/resources/filter-chain-performance-app-context.xml index dbbe6b9fc1..ba627bedd6 100644 --- a/itest/context/src/test/resources/filter-chain-performance-app-context.xml +++ b/itest/context/src/test/resources/filter-chain-performance-app-context.xml @@ -11,13 +11,13 @@ xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd"> - + - + @@ -37,7 +37,7 @@ - + diff --git a/ldap/pom.xml b/ldap/pom.xml index 3e9b600cc9..2a579f8584 100644 --- a/ldap/pom.xml +++ b/ldap/pom.xml @@ -51,10 +51,6 @@ runtime true - - org.jmock - jmock-junit4 - log4j log4j diff --git a/ntlm/pom.xml b/ntlm/pom.xml index f18b8fbd2c..ef6093bfd4 100755 --- a/ntlm/pom.xml +++ b/ntlm/pom.xml @@ -15,11 +15,16 @@ spring-security-core ${project.version} + + org.springframework.security + spring-security-web + ${project.version} + org.springframework.security spring-security-ldap ${project.version} - + org.samba.jcifs diff --git a/openid/pom.xml b/openid/pom.xml index 10bd45ba20..0b1400a16d 100644 --- a/openid/pom.xml +++ b/openid/pom.xml @@ -14,7 +14,7 @@ org.springframework.security - spring-security-core + spring-security-web ${project.version} diff --git a/openid/src/test/java/org/springframework/security/ui/openid/OpenIDAuthenticationProcessingFilterTests.java b/openid/src/test/java/org/springframework/security/ui/openid/OpenIDAuthenticationProcessingFilterTests.java index a0603fdce4..a0da432b93 100644 --- a/openid/src/test/java/org/springframework/security/ui/openid/OpenIDAuthenticationProcessingFilterTests.java +++ b/openid/src/test/java/org/springframework/security/ui/openid/OpenIDAuthenticationProcessingFilterTests.java @@ -1,16 +1,22 @@ package org.springframework.security.ui.openid; -import junit.framework.TestCase; +import static org.junit.Assert.assertEquals; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.*; + +import javax.servlet.FilterChain; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.junit.Before; +import org.junit.Test; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.security.MockAuthenticationManager; import org.springframework.security.ui.SavedRequestAwareAuthenticationSuccessHandler; import org.springframework.security.ui.openid.consumers.MockOpenIDConsumer; -import org.springframework.security.util.MockFilterChain; -import javax.servlet.http.HttpServletRequest; - -public class OpenIDAuthenticationProcessingFilterTests extends TestCase { +public class OpenIDAuthenticationProcessingFilterTests { OpenIDAuthenticationProcessingFilter filter; private static final String REDIRECT_URL = "http://www.example.com/redirect"; @@ -19,7 +25,8 @@ public class OpenIDAuthenticationProcessingFilterTests extends TestCase { private static final String FILTER_PROCESS_URL = "http://localhost:80" + REQUEST_PATH; private static final String DEFAULT_TARGET_URL = FILTER_PROCESS_URL; - protected void setUp() throws Exception { + @Before + public void setUp() throws Exception { filter = new OpenIDAuthenticationProcessingFilter(); filter.setConsumer(new MockOpenIDConsumer(REDIRECT_URL)); SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler(); @@ -29,6 +36,7 @@ public class OpenIDAuthenticationProcessingFilterTests extends TestCase { filter.afterPropertiesSet(); } + @Test public void testFilterOperation() throws Exception { MockHttpServletRequest req = new MockHttpServletRequest("GET", REQUEST_PATH); MockHttpServletResponse response = new MockHttpServletResponse(); @@ -45,9 +53,10 @@ public class OpenIDAuthenticationProcessingFilterTests extends TestCase { } }); - filter.doFilter(req, response, new MockFilterChain(false)); + FilterChain fc = mock(FilterChain.class); + filter.doFilter(req, response, fc); assertEquals(REDIRECT_URL, response.getRedirectedUrl()); + // Filter chain shouldn't proceed + verify(fc, never()).doFilter(any(HttpServletRequest.class), any(HttpServletResponse.class)); } - - } diff --git a/pom.xml b/pom.xml index d5609c8d2c..ab2a294bba 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ core - + web ldap config acl @@ -300,6 +300,12 @@ mockito-core 1.7 + + org.jmock + jmock-junit4 + 2.5.1 + test + @@ -814,12 +820,6 @@ 1.8.0.7 runtime - - org.jmock - jmock-junit4 - 2.5.1 - test - commons-logging commons-logging diff --git a/portlet/src/test/java/org/springframework/security/ui/portlet/PortletProcessingInterceptorTests.java b/portlet/src/test/java/org/springframework/security/ui/portlet/PortletProcessingInterceptorTests.java index b2f77fb2fa..42ca2cdaa2 100644 --- a/portlet/src/test/java/org/springframework/security/ui/portlet/PortletProcessingInterceptorTests.java +++ b/portlet/src/test/java/org/springframework/security/ui/portlet/PortletProcessingInterceptorTests.java @@ -39,7 +39,6 @@ import org.springframework.security.providers.TestingAuthenticationToken; import org.springframework.security.providers.UsernamePasswordAuthenticationToken; import org.springframework.security.providers.portlet.PortletTestUtils; import org.springframework.security.providers.preauth.PreAuthenticatedAuthenticationToken; -import org.springframework.security.ui.AbstractProcessingFilter; import org.springframework.security.userdetails.User; import org.springframework.security.util.AuthorityUtils; @@ -52,6 +51,7 @@ import org.springframework.security.util.AuthorityUtils; */ @SuppressWarnings("unchecked") public class PortletProcessingInterceptorTests { + public static final String SPRING_SECURITY_LAST_EXCEPTION_KEY = "SPRING_SECURITY_LAST_EXCEPTION"; //~ Methods ======================================================================================================== @Before diff --git a/samples/contacts/src/main/webapp/WEB-INF/applicationContext-security.xml b/samples/contacts/src/main/webapp/WEB-INF/applicationContext-security.xml index 9c5741a0ea..bff8f15ae1 100644 --- a/samples/contacts/src/main/webapp/WEB-INF/applicationContext-security.xml +++ b/samples/contacts/src/main/webapp/WEB-INF/applicationContext-security.xml @@ -48,7 +48,7 @@ - + diff --git a/samples/contacts/src/test/resources/applicationContext-contacts-test.xml b/samples/contacts/src/test/resources/applicationContext-contacts-test.xml index 79936fcc35..c79a60439e 100644 --- a/samples/contacts/src/test/resources/applicationContext-contacts-test.xml +++ b/samples/contacts/src/test/resources/applicationContext-contacts-test.xml @@ -24,7 +24,7 @@ - + diff --git a/samples/dms/src/main/java/sample/dms/DocumentDaoImpl.java b/samples/dms/src/main/java/sample/dms/DocumentDaoImpl.java index 940f3322f7..27e9110b68 100755 --- a/samples/dms/src/main/java/sample/dms/DocumentDaoImpl.java +++ b/samples/dms/src/main/java/sample/dms/DocumentDaoImpl.java @@ -59,8 +59,8 @@ public class DocumentDaoImpl extends JdbcDaoSupport implements DocumentDao { /** Executes recursive SQL as needed to build a full Directory hierarchy of objects */ private Directory getDirectoryWithImmediateParentPopulated(final Long id) { - return (Directory) getJdbcTemplate().queryForObject(SELECT_FROM_DIRECTORY_SINGLE, new Object[] {id}, new RowMapper() { - public Object mapRow(ResultSet rs, int rowNumber) throws SQLException { + return getJdbcTemplate().queryForObject(SELECT_FROM_DIRECTORY_SINGLE, new Object[] {id}, new RowMapper() { + public Directory mapRow(ResultSet rs, int rowNumber) throws SQLException { Long parentDirectoryId = new Long(rs.getLong("parent_directory_id")); Directory parentDirectory = Directory.ROOT_DIRECTORY; if (parentDirectoryId != null && !parentDirectoryId.equals(new Long(-1))) { @@ -77,20 +77,20 @@ public class DocumentDaoImpl extends JdbcDaoSupport implements DocumentDao { public AbstractElement[] findElements(Directory directory) { Assert.notNull(directory, "Directory required (the ID can be null to refer to root)"); if (directory.getId() == null) { - List directories = getJdbcTemplate().query(SELECT_FROM_DIRECTORY_NULL, new RowMapper() { - public Object mapRow(ResultSet rs, int rowNumber) throws SQLException { + List directories = getJdbcTemplate().query(SELECT_FROM_DIRECTORY_NULL, new RowMapper() { + public Directory mapRow(ResultSet rs, int rowNumber) throws SQLException { return getDirectoryWithImmediateParentPopulated(new Long(rs.getLong("id"))); } }); return (AbstractElement[]) directories.toArray(new AbstractElement[] {}); } - List directories = getJdbcTemplate().query(SELECT_FROM_DIRECTORY, new Object[] {directory.getId()}, new RowMapper() { - public Object mapRow(ResultSet rs, int rowNumber) throws SQLException { + List directories = getJdbcTemplate().query(SELECT_FROM_DIRECTORY, new Object[] {directory.getId()}, new RowMapper() { + public Directory mapRow(ResultSet rs, int rowNumber) throws SQLException { return getDirectoryWithImmediateParentPopulated(new Long(rs.getLong("id"))); } }); - List files = getJdbcTemplate().query(SELECT_FROM_FILE, new Object[] {directory.getId()}, new RowMapper() { - public Object mapRow(ResultSet rs, int rowNumber) throws SQLException { + List files = getJdbcTemplate().query(SELECT_FROM_FILE, new Object[] {directory.getId()}, new RowMapper() { + public File mapRow(ResultSet rs, int rowNumber) throws SQLException { Long parentDirectoryId = new Long(rs.getLong("parent_directory_id")); Directory parentDirectory = null; if (parentDirectoryId != null) { diff --git a/samples/dms/src/main/resources/applicationContext-dms-secure.xml b/samples/dms/src/main/resources/applicationContext-dms-secure.xml index fbf1cd7d6b..228e118ba6 100755 --- a/samples/dms/src/main/resources/applicationContext-dms-secure.xml +++ b/samples/dms/src/main/resources/applicationContext-dms-secure.xml @@ -50,8 +50,6 @@ - - @@ -81,13 +79,11 @@ - + diff --git a/samples/pom.xml b/samples/pom.xml index 66aafd7952..f251960cf1 100644 --- a/samples/pom.xml +++ b/samples/pom.xml @@ -16,7 +16,7 @@ preauth openid ldap - portlet + cas diff --git a/sandbox/other/pom.xml b/sandbox/other/pom.xml index a9d4771c5b..ae56af2ed2 100644 --- a/sandbox/other/pom.xml +++ b/sandbox/other/pom.xml @@ -17,6 +17,11 @@ spring-security-core ${project.version} + + org.springframework.security + spring-security-ldap + ${project.version} + org.springframework.security spring-security-core diff --git a/taglibs/pom.xml b/taglibs/pom.xml index 9147a0c472..62a5f3cc65 100644 --- a/taglibs/pom.xml +++ b/taglibs/pom.xml @@ -43,10 +43,6 @@ standard test - - org.jmock - jmock-junit4 - diff --git a/web/pom.xml b/web/pom.xml new file mode 100644 index 0000000000..0858e457ee --- /dev/null +++ b/web/pom.xml @@ -0,0 +1,57 @@ + + 4.0.0 + + org.springframework.security + spring-security-parent + 2.5.0-SNAPSHOT + + jar + spring-security-web + Spring Security - Web Application Security Module + + + + org.springframework.security + spring-security-core + ${project.version} + + + org.springframework.security + spring-security-core + ${project.version} + tests + true + + + org.springframework + org.springframework.web + + + + org.springframework + org.springframework.jdbc + true + + + org.springframework + org.springframework.test + true + + + jaxen + jaxen + 1.1.1 + true + + + hsqldb + hsqldb + test + + + javax.servlet + servlet-api + + + + diff --git a/core/src/main/java/org/springframework/security/concurrent/ConcurrentSessionFilter.java b/web/src/main/java/org/springframework/security/concurrent/ConcurrentSessionFilter.java similarity index 99% rename from core/src/main/java/org/springframework/security/concurrent/ConcurrentSessionFilter.java rename to web/src/main/java/org/springframework/security/concurrent/ConcurrentSessionFilter.java index c8721b1144..2c59536857 100644 --- a/core/src/main/java/org/springframework/security/concurrent/ConcurrentSessionFilter.java +++ b/web/src/main/java/org/springframework/security/concurrent/ConcurrentSessionFilter.java @@ -21,7 +21,7 @@ import org.springframework.security.ui.FilterChainOrder; import org.springframework.security.ui.SpringSecurityFilter; import org.springframework.security.ui.logout.LogoutHandler; import org.springframework.security.ui.logout.SecurityContextLogoutHandler; -import org.springframework.security.util.UrlUtils; +import org.springframework.security.web.util.UrlUtils; import org.springframework.beans.factory.InitializingBean; import org.springframework.util.Assert; diff --git a/core/src/main/java/org/springframework/security/concurrent/SessionRegistryImpl.java b/web/src/main/java/org/springframework/security/concurrent/SessionRegistryImpl.java similarity index 100% rename from core/src/main/java/org/springframework/security/concurrent/SessionRegistryImpl.java rename to web/src/main/java/org/springframework/security/concurrent/SessionRegistryImpl.java diff --git a/web/src/main/java/org/springframework/security/concurrent/package.html b/web/src/main/java/org/springframework/security/concurrent/package.html new file mode 100644 index 0000000000..9235ec5043 --- /dev/null +++ b/web/src/main/java/org/springframework/security/concurrent/package.html @@ -0,0 +1,6 @@ + + +Concurrent session control and registration classes. + + + diff --git a/core/src/main/java/org/springframework/security/context/HttpRequestResponseHolder.java b/web/src/main/java/org/springframework/security/context/web/HttpRequestResponseHolder.java similarity index 95% rename from core/src/main/java/org/springframework/security/context/HttpRequestResponseHolder.java rename to web/src/main/java/org/springframework/security/context/web/HttpRequestResponseHolder.java index 40ca0d3a09..4498d239d2 100644 --- a/core/src/main/java/org/springframework/security/context/HttpRequestResponseHolder.java +++ b/web/src/main/java/org/springframework/security/context/web/HttpRequestResponseHolder.java @@ -1,4 +1,4 @@ -package org.springframework.security.context; +package org.springframework.security.context.web; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; diff --git a/core/src/main/java/org/springframework/security/context/HttpSessionContextIntegrationFilter.java b/web/src/main/java/org/springframework/security/context/web/HttpSessionContextIntegrationFilter.java similarity index 97% rename from core/src/main/java/org/springframework/security/context/HttpSessionContextIntegrationFilter.java rename to web/src/main/java/org/springframework/security/context/web/HttpSessionContextIntegrationFilter.java index cd5d8f205a..338bc74652 100644 --- a/core/src/main/java/org/springframework/security/context/HttpSessionContextIntegrationFilter.java +++ b/web/src/main/java/org/springframework/security/context/web/HttpSessionContextIntegrationFilter.java @@ -13,11 +13,14 @@ * limitations under the License. */ -package org.springframework.security.context; +package org.springframework.security.context.web; import javax.servlet.ServletException; import org.springframework.beans.factory.InitializingBean; +import org.springframework.security.context.SecurityContext; +import org.springframework.security.context.SecurityContextHolder; +import org.springframework.security.context.SecurityContextImpl; import org.springframework.security.ui.FilterChainOrder; /** diff --git a/core/src/main/java/org/springframework/security/context/HttpSessionSecurityContextRepository.java b/web/src/main/java/org/springframework/security/context/web/HttpSessionSecurityContextRepository.java similarity index 98% rename from core/src/main/java/org/springframework/security/context/HttpSessionSecurityContextRepository.java rename to web/src/main/java/org/springframework/security/context/web/HttpSessionSecurityContextRepository.java index b9569a975f..b2bea53417 100644 --- a/core/src/main/java/org/springframework/security/context/HttpSessionSecurityContextRepository.java +++ b/web/src/main/java/org/springframework/security/context/web/HttpSessionSecurityContextRepository.java @@ -1,4 +1,4 @@ -package org.springframework.security.context; +package org.springframework.security.context.web; import java.lang.reflect.Method; @@ -10,6 +10,10 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.security.AuthenticationTrustResolver; import org.springframework.security.AuthenticationTrustResolverImpl; +import org.springframework.security.context.SecurityContext; +import org.springframework.security.context.SecurityContextHolder; +import org.springframework.security.context.SecurityContextHolderStrategy; +import org.springframework.security.context.SecurityContextImpl; import org.springframework.util.Assert; import org.springframework.util.ReflectionUtils; diff --git a/core/src/main/java/org/springframework/security/context/SaveContextOnUpdateOrErrorResponseWrapper.java b/web/src/main/java/org/springframework/security/context/web/SaveContextOnUpdateOrErrorResponseWrapper.java similarity index 95% rename from core/src/main/java/org/springframework/security/context/SaveContextOnUpdateOrErrorResponseWrapper.java rename to web/src/main/java/org/springframework/security/context/web/SaveContextOnUpdateOrErrorResponseWrapper.java index 5d260bc9a8..8031df1deb 100644 --- a/core/src/main/java/org/springframework/security/context/SaveContextOnUpdateOrErrorResponseWrapper.java +++ b/web/src/main/java/org/springframework/security/context/web/SaveContextOnUpdateOrErrorResponseWrapper.java @@ -1,10 +1,13 @@ -package org.springframework.security.context; +package org.springframework.security.context.web; import java.io.IOException; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponseWrapper; +import org.springframework.security.context.SecurityContext; +import org.springframework.security.context.SecurityContextHolder; + /** * Base class for response wrappers which encapsulate the logic for storing a security context and which * store the with the SecurityContext when a sendError() or sendRedirect diff --git a/core/src/main/java/org/springframework/security/context/SecurityContextPersistenceFilter.java b/web/src/main/java/org/springframework/security/context/web/SecurityContextPersistenceFilter.java similarity index 95% rename from core/src/main/java/org/springframework/security/context/SecurityContextPersistenceFilter.java rename to web/src/main/java/org/springframework/security/context/web/SecurityContextPersistenceFilter.java index f66d681b38..8c74593710 100644 --- a/core/src/main/java/org/springframework/security/context/SecurityContextPersistenceFilter.java +++ b/web/src/main/java/org/springframework/security/context/web/SecurityContextPersistenceFilter.java @@ -1,4 +1,4 @@ -package org.springframework.security.context; +package org.springframework.security.context.web; import java.io.IOException; @@ -8,6 +8,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; +import org.springframework.security.context.SecurityContext; +import org.springframework.security.context.SecurityContextHolder; import org.springframework.security.ui.FilterChainOrder; import org.springframework.security.ui.SpringSecurityFilter; diff --git a/core/src/main/java/org/springframework/security/context/SecurityContextRepository.java b/web/src/main/java/org/springframework/security/context/web/SecurityContextRepository.java similarity index 92% rename from core/src/main/java/org/springframework/security/context/SecurityContextRepository.java rename to web/src/main/java/org/springframework/security/context/web/SecurityContextRepository.java index 613746cec1..fe8f19bdc4 100644 --- a/core/src/main/java/org/springframework/security/context/SecurityContextRepository.java +++ b/web/src/main/java/org/springframework/security/context/web/SecurityContextRepository.java @@ -1,8 +1,10 @@ -package org.springframework.security.context; +package org.springframework.security.context.web; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import org.springframework.security.context.SecurityContext; + /** * Strategy used for persisting a {@link SecurityContext} between requests. *

@@ -43,7 +45,7 @@ public interface SecurityContextRepository { /** * Stores the security context on completion of a request. * - * @param context the non-null context which was obtained f + * @param context the non-null context which was obtained from the holder. * @param request * @param response */ diff --git a/core/src/main/java/org/springframework/security/expression/web/ExpressionBasedFilterInvocationSecurityMetadataSource.java b/web/src/main/java/org/springframework/security/expression/web/ExpressionBasedFilterInvocationSecurityMetadataSource.java similarity index 95% rename from core/src/main/java/org/springframework/security/expression/web/ExpressionBasedFilterInvocationSecurityMetadataSource.java rename to web/src/main/java/org/springframework/security/expression/web/ExpressionBasedFilterInvocationSecurityMetadataSource.java index 42dfa2ca6d..830bc6f952 100644 --- a/core/src/main/java/org/springframework/security/expression/web/ExpressionBasedFilterInvocationSecurityMetadataSource.java +++ b/web/src/main/java/org/springframework/security/expression/web/ExpressionBasedFilterInvocationSecurityMetadataSource.java @@ -10,7 +10,6 @@ import org.apache.commons.logging.LogFactory; import org.springframework.expression.ExpressionParser; import org.springframework.expression.ParseException; import org.springframework.security.ConfigAttribute; -import org.springframework.security.expression.SecurityExpressionHandler; import org.springframework.security.intercept.web.DefaultFilterInvocationSecurityMetadataSource; import org.springframework.security.intercept.web.RequestKey; import org.springframework.security.util.UrlMatcher; @@ -27,7 +26,7 @@ public final class ExpressionBasedFilterInvocationSecurityMetadataSource extends private final static Log logger = LogFactory.getLog(ExpressionBasedFilterInvocationSecurityMetadataSource.class); public ExpressionBasedFilterInvocationSecurityMetadataSource(UrlMatcher urlMatcher, - LinkedHashMap> requestMap, SecurityExpressionHandler expressionHandler) { + LinkedHashMap> requestMap, WebSecurityExpressionHandler expressionHandler) { super(urlMatcher, processMap(requestMap, expressionHandler.getExpressionParser())); Assert.notNull(expressionHandler, "A non-null SecurityExpressionHandler is required"); } diff --git a/core/src/main/java/org/springframework/security/expression/web/WebExpressionConfigAttribute.java b/web/src/main/java/org/springframework/security/expression/web/WebExpressionConfigAttribute.java similarity index 100% rename from core/src/main/java/org/springframework/security/expression/web/WebExpressionConfigAttribute.java rename to web/src/main/java/org/springframework/security/expression/web/WebExpressionConfigAttribute.java diff --git a/core/src/main/java/org/springframework/security/expression/web/WebExpressionVoter.java b/web/src/main/java/org/springframework/security/expression/web/WebExpressionVoter.java similarity index 80% rename from core/src/main/java/org/springframework/security/expression/web/WebExpressionVoter.java rename to web/src/main/java/org/springframework/security/expression/web/WebExpressionVoter.java index 4dcda56d8f..b362d2a83b 100644 --- a/core/src/main/java/org/springframework/security/expression/web/WebExpressionVoter.java +++ b/web/src/main/java/org/springframework/security/expression/web/WebExpressionVoter.java @@ -6,8 +6,9 @@ import org.springframework.expression.EvaluationContext; import org.springframework.security.Authentication; import org.springframework.security.ConfigAttribute; import org.springframework.security.expression.ExpressionUtils; -import org.springframework.security.expression.SecurityExpressionHandler; -import org.springframework.security.expression.support.DefaultSecurityExpressionHandler; +import org.springframework.security.expression.MethodSecurityExpressionHandler; +import org.springframework.security.expression.support.DefaultMethodSecurityExpressionHandler; +import org.springframework.security.expression.web.support.DefaultWebSecurityExpressionHandler; import org.springframework.security.intercept.web.FilterInvocation; import org.springframework.security.vote.AccessDecisionVoter; @@ -18,7 +19,7 @@ import org.springframework.security.vote.AccessDecisionVoter; * @since 2.5 */ public class WebExpressionVoter implements AccessDecisionVoter { - private SecurityExpressionHandler expressionHandler = new DefaultSecurityExpressionHandler(); + private WebSecurityExpressionHandler expressionHandler = new DefaultWebSecurityExpressionHandler(); public int vote(Authentication authentication, Object object, List attributes) { assert authentication != null; @@ -55,7 +56,7 @@ public class WebExpressionVoter implements AccessDecisionVoter { return clazz.isAssignableFrom(FilterInvocation.class); } - public void setExpressionHandler(SecurityExpressionHandler expressionHandler) { + public void setExpressionHandler(WebSecurityExpressionHandler expressionHandler) { this.expressionHandler = expressionHandler; } } diff --git a/web/src/main/java/org/springframework/security/expression/web/WebSecurityExpressionHandler.java b/web/src/main/java/org/springframework/security/expression/web/WebSecurityExpressionHandler.java new file mode 100644 index 0000000000..32ad39ef5d --- /dev/null +++ b/web/src/main/java/org/springframework/security/expression/web/WebSecurityExpressionHandler.java @@ -0,0 +1,19 @@ +package org.springframework.security.expression.web; + +import org.springframework.expression.EvaluationContext; +import org.springframework.expression.ExpressionParser; +import org.springframework.security.Authentication; +import org.springframework.security.intercept.web.FilterInvocation; + +public interface WebSecurityExpressionHandler { + /** + * @return an expression parser for the expressions used by the implementation. + */ + ExpressionParser getExpressionParser(); + + /** + * Provides an evaluation context in which to evaluate security expressions for a web invocation. + */ + EvaluationContext createEvaluationContext(Authentication authentication, FilterInvocation fi); + +} diff --git a/web/src/main/java/org/springframework/security/expression/web/support/DefaultWebSecurityExpressionHandler.java b/web/src/main/java/org/springframework/security/expression/web/support/DefaultWebSecurityExpressionHandler.java new file mode 100644 index 0000000000..9fc11ccb3b --- /dev/null +++ b/web/src/main/java/org/springframework/security/expression/web/support/DefaultWebSecurityExpressionHandler.java @@ -0,0 +1,39 @@ +package org.springframework.security.expression.web.support; + +import org.springframework.expression.EvaluationContext; +import org.springframework.expression.ExpressionParser; +import org.springframework.expression.spel.antlr.SpelAntlrExpressionParser; +import org.springframework.expression.spel.support.StandardEvaluationContext; +import org.springframework.security.Authentication; +import org.springframework.security.AuthenticationTrustResolver; +import org.springframework.security.AuthenticationTrustResolverImpl; +import org.springframework.security.expression.support.SecurityExpressionRoot; +import org.springframework.security.expression.web.WebSecurityExpressionHandler; +import org.springframework.security.intercept.web.FilterInvocation; + +/** + * Facade which isolates Spring Security's requirements for evaluating web-security expressions + * from the implementation of the underlying expression objects. + * + * @author Luke Taylor + * @version $Id$ + * @since 2.5 + */ +public class DefaultWebSecurityExpressionHandler implements WebSecurityExpressionHandler { + + private AuthenticationTrustResolver trustResolver = new AuthenticationTrustResolverImpl(); + private ExpressionParser expressionParser = new SpelAntlrExpressionParser(); + + public ExpressionParser getExpressionParser() { + return expressionParser; + } + + public EvaluationContext createEvaluationContext(Authentication authentication, FilterInvocation fi) { + StandardEvaluationContext ctx = new StandardEvaluationContext(); + SecurityExpressionRoot root = new WebSecurityExpressionRoot(authentication, fi); + root.setTrustResolver(trustResolver); + ctx.setRootObject(root); + + return ctx; + } +} diff --git a/core/src/main/java/org/springframework/security/expression/support/WebSecurityExpressionRoot.java b/web/src/main/java/org/springframework/security/expression/web/support/WebSecurityExpressionRoot.java similarity index 95% rename from core/src/main/java/org/springframework/security/expression/support/WebSecurityExpressionRoot.java rename to web/src/main/java/org/springframework/security/expression/web/support/WebSecurityExpressionRoot.java index c32fdbc389..bba8d573e5 100644 --- a/core/src/main/java/org/springframework/security/expression/support/WebSecurityExpressionRoot.java +++ b/web/src/main/java/org/springframework/security/expression/web/support/WebSecurityExpressionRoot.java @@ -1,10 +1,11 @@ -package org.springframework.security.expression.support; +package org.springframework.security.expression.web.support; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Arrays; import org.springframework.security.Authentication; +import org.springframework.security.expression.support.SecurityExpressionRoot; import org.springframework.security.intercept.web.FilterInvocation; import org.springframework.util.StringUtils; diff --git a/core/src/main/java/org/springframework/security/intercept/web/DefaultFilterInvocationSecurityMetadataSource.java b/web/src/main/java/org/springframework/security/intercept/web/DefaultFilterInvocationSecurityMetadataSource.java similarity index 100% rename from core/src/main/java/org/springframework/security/intercept/web/DefaultFilterInvocationSecurityMetadataSource.java rename to web/src/main/java/org/springframework/security/intercept/web/DefaultFilterInvocationSecurityMetadataSource.java diff --git a/core/src/main/java/org/springframework/security/intercept/web/FilterInvocation.java b/web/src/main/java/org/springframework/security/intercept/web/FilterInvocation.java similarity index 96% rename from core/src/main/java/org/springframework/security/intercept/web/FilterInvocation.java rename to web/src/main/java/org/springframework/security/intercept/web/FilterInvocation.java index 2bd82943ec..3e8151a286 100644 --- a/core/src/main/java/org/springframework/security/intercept/web/FilterInvocation.java +++ b/web/src/main/java/org/springframework/security/intercept/web/FilterInvocation.java @@ -15,7 +15,7 @@ package org.springframework.security.intercept.web; -import org.springframework.security.util.UrlUtils; +import org.springframework.security.web.util.UrlUtils; import javax.servlet.FilterChain; import javax.servlet.ServletRequest; @@ -65,7 +65,7 @@ public class FilterInvocation { * Indicates the URL that the user agent used for this request. *

* The returned URL does not reflect the port number determined from a - * {@link org.springframework.security.util.PortResolver}. + * {@link org.springframework.security.web.util.PortResolver}. * * @return the full URL of this request */ diff --git a/core/src/main/java/org/springframework/security/intercept/web/FilterInvocationSecurityMetadataSource.java b/web/src/main/java/org/springframework/security/intercept/web/FilterInvocationSecurityMetadataSource.java similarity index 100% rename from core/src/main/java/org/springframework/security/intercept/web/FilterInvocationSecurityMetadataSource.java rename to web/src/main/java/org/springframework/security/intercept/web/FilterInvocationSecurityMetadataSource.java diff --git a/core/src/main/java/org/springframework/security/intercept/web/FilterSecurityInterceptor.java b/web/src/main/java/org/springframework/security/intercept/web/FilterSecurityInterceptor.java similarity index 100% rename from core/src/main/java/org/springframework/security/intercept/web/FilterSecurityInterceptor.java rename to web/src/main/java/org/springframework/security/intercept/web/FilterSecurityInterceptor.java diff --git a/core/src/main/java/org/springframework/security/intercept/web/RequestKey.java b/web/src/main/java/org/springframework/security/intercept/web/RequestKey.java similarity index 100% rename from core/src/main/java/org/springframework/security/intercept/web/RequestKey.java rename to web/src/main/java/org/springframework/security/intercept/web/RequestKey.java diff --git a/core/src/main/java/org/springframework/security/intercept/web/WebInvocationPrivilegeEvaluator.java b/web/src/main/java/org/springframework/security/intercept/web/WebInvocationPrivilegeEvaluator.java similarity index 100% rename from core/src/main/java/org/springframework/security/intercept/web/WebInvocationPrivilegeEvaluator.java rename to web/src/main/java/org/springframework/security/intercept/web/WebInvocationPrivilegeEvaluator.java diff --git a/core/src/main/java/org/springframework/security/intercept/web/package.html b/web/src/main/java/org/springframework/security/intercept/web/package.html similarity index 100% rename from core/src/main/java/org/springframework/security/intercept/web/package.html rename to web/src/main/java/org/springframework/security/intercept/web/package.html diff --git a/core/src/main/java/org/springframework/security/securechannel/AbstractRetryEntryPoint.java b/web/src/main/java/org/springframework/security/securechannel/AbstractRetryEntryPoint.java similarity index 93% rename from core/src/main/java/org/springframework/security/securechannel/AbstractRetryEntryPoint.java rename to web/src/main/java/org/springframework/security/securechannel/AbstractRetryEntryPoint.java index 3363aebbeb..33f054b272 100644 --- a/core/src/main/java/org/springframework/security/securechannel/AbstractRetryEntryPoint.java +++ b/web/src/main/java/org/springframework/security/securechannel/AbstractRetryEntryPoint.java @@ -1,9 +1,9 @@ package org.springframework.security.securechannel; -import org.springframework.security.util.PortMapper; -import org.springframework.security.util.PortResolver; -import org.springframework.security.util.PortMapperImpl; -import org.springframework.security.util.PortResolverImpl; +import org.springframework.security.web.util.PortMapper; +import org.springframework.security.web.util.PortMapperImpl; +import org.springframework.security.web.util.PortResolver; +import org.springframework.security.web.util.PortResolverImpl; import org.springframework.util.Assert; import org.apache.commons.logging.Log; diff --git a/core/src/main/java/org/springframework/security/securechannel/ChannelDecisionManager.java b/web/src/main/java/org/springframework/security/securechannel/ChannelDecisionManager.java similarity index 100% rename from core/src/main/java/org/springframework/security/securechannel/ChannelDecisionManager.java rename to web/src/main/java/org/springframework/security/securechannel/ChannelDecisionManager.java diff --git a/core/src/main/java/org/springframework/security/securechannel/ChannelDecisionManagerImpl.java b/web/src/main/java/org/springframework/security/securechannel/ChannelDecisionManagerImpl.java similarity index 100% rename from core/src/main/java/org/springframework/security/securechannel/ChannelDecisionManagerImpl.java rename to web/src/main/java/org/springframework/security/securechannel/ChannelDecisionManagerImpl.java diff --git a/core/src/main/java/org/springframework/security/securechannel/ChannelEntryPoint.java b/web/src/main/java/org/springframework/security/securechannel/ChannelEntryPoint.java similarity index 100% rename from core/src/main/java/org/springframework/security/securechannel/ChannelEntryPoint.java rename to web/src/main/java/org/springframework/security/securechannel/ChannelEntryPoint.java diff --git a/core/src/main/java/org/springframework/security/securechannel/ChannelProcessingFilter.java b/web/src/main/java/org/springframework/security/securechannel/ChannelProcessingFilter.java similarity index 100% rename from core/src/main/java/org/springframework/security/securechannel/ChannelProcessingFilter.java rename to web/src/main/java/org/springframework/security/securechannel/ChannelProcessingFilter.java diff --git a/core/src/main/java/org/springframework/security/securechannel/ChannelProcessor.java b/web/src/main/java/org/springframework/security/securechannel/ChannelProcessor.java similarity index 100% rename from core/src/main/java/org/springframework/security/securechannel/ChannelProcessor.java rename to web/src/main/java/org/springframework/security/securechannel/ChannelProcessor.java diff --git a/core/src/main/java/org/springframework/security/securechannel/InsecureChannelProcessor.java b/web/src/main/java/org/springframework/security/securechannel/InsecureChannelProcessor.java similarity index 100% rename from core/src/main/java/org/springframework/security/securechannel/InsecureChannelProcessor.java rename to web/src/main/java/org/springframework/security/securechannel/InsecureChannelProcessor.java diff --git a/core/src/main/java/org/springframework/security/securechannel/RetryWithHttpEntryPoint.java b/web/src/main/java/org/springframework/security/securechannel/RetryWithHttpEntryPoint.java similarity index 100% rename from core/src/main/java/org/springframework/security/securechannel/RetryWithHttpEntryPoint.java rename to web/src/main/java/org/springframework/security/securechannel/RetryWithHttpEntryPoint.java diff --git a/core/src/main/java/org/springframework/security/securechannel/RetryWithHttpsEntryPoint.java b/web/src/main/java/org/springframework/security/securechannel/RetryWithHttpsEntryPoint.java similarity index 100% rename from core/src/main/java/org/springframework/security/securechannel/RetryWithHttpsEntryPoint.java rename to web/src/main/java/org/springframework/security/securechannel/RetryWithHttpsEntryPoint.java diff --git a/core/src/main/java/org/springframework/security/securechannel/SecureChannelProcessor.java b/web/src/main/java/org/springframework/security/securechannel/SecureChannelProcessor.java similarity index 100% rename from core/src/main/java/org/springframework/security/securechannel/SecureChannelProcessor.java rename to web/src/main/java/org/springframework/security/securechannel/SecureChannelProcessor.java diff --git a/core/src/main/java/org/springframework/security/securechannel/package.html b/web/src/main/java/org/springframework/security/securechannel/package.html similarity index 100% rename from core/src/main/java/org/springframework/security/securechannel/package.html rename to web/src/main/java/org/springframework/security/securechannel/package.html diff --git a/core/src/main/java/org/springframework/security/ui/AbstractAuthenticationTargetUrlRequestHandler.java b/web/src/main/java/org/springframework/security/ui/AbstractAuthenticationTargetUrlRequestHandler.java similarity index 98% rename from core/src/main/java/org/springframework/security/ui/AbstractAuthenticationTargetUrlRequestHandler.java rename to web/src/main/java/org/springframework/security/ui/AbstractAuthenticationTargetUrlRequestHandler.java index 0617440028..e2cfd2ad96 100644 --- a/core/src/main/java/org/springframework/security/ui/AbstractAuthenticationTargetUrlRequestHandler.java +++ b/web/src/main/java/org/springframework/security/ui/AbstractAuthenticationTargetUrlRequestHandler.java @@ -12,8 +12,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.security.Authentication; import org.springframework.security.ui.logout.LogoutHandler; -import org.springframework.security.util.RedirectUtils; -import org.springframework.security.util.UrlUtils; +import org.springframework.security.web.util.RedirectUtils; +import org.springframework.security.web.util.UrlUtils; import org.springframework.util.Assert; import org.springframework.util.StringUtils; diff --git a/core/src/main/java/org/springframework/security/ui/AbstractProcessingFilter.java b/web/src/main/java/org/springframework/security/ui/AbstractProcessingFilter.java similarity index 99% rename from core/src/main/java/org/springframework/security/ui/AbstractProcessingFilter.java rename to web/src/main/java/org/springframework/security/ui/AbstractProcessingFilter.java index 073ef22410..9634a1ba7c 100644 --- a/core/src/main/java/org/springframework/security/ui/AbstractProcessingFilter.java +++ b/web/src/main/java/org/springframework/security/ui/AbstractProcessingFilter.java @@ -38,8 +38,8 @@ import org.springframework.security.context.SecurityContextHolder; import org.springframework.security.event.authentication.InteractiveAuthenticationSuccessEvent; import org.springframework.security.ui.rememberme.NullRememberMeServices; import org.springframework.security.ui.rememberme.RememberMeServices; -import org.springframework.security.util.SessionUtils; -import org.springframework.security.util.UrlUtils; +import org.springframework.security.web.util.SessionUtils; +import org.springframework.security.web.util.UrlUtils; import org.springframework.util.Assert; /** diff --git a/core/src/main/java/org/springframework/security/ui/AccessDeniedHandler.java b/web/src/main/java/org/springframework/security/ui/AccessDeniedHandler.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/AccessDeniedHandler.java rename to web/src/main/java/org/springframework/security/ui/AccessDeniedHandler.java diff --git a/core/src/main/java/org/springframework/security/ui/AccessDeniedHandlerImpl.java b/web/src/main/java/org/springframework/security/ui/AccessDeniedHandlerImpl.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/AccessDeniedHandlerImpl.java rename to web/src/main/java/org/springframework/security/ui/AccessDeniedHandlerImpl.java diff --git a/core/src/main/java/org/springframework/security/ui/AuthenticationEntryPoint.java b/web/src/main/java/org/springframework/security/ui/AuthenticationEntryPoint.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/AuthenticationEntryPoint.java rename to web/src/main/java/org/springframework/security/ui/AuthenticationEntryPoint.java diff --git a/core/src/main/java/org/springframework/security/ui/AuthenticationFailureHandler.java b/web/src/main/java/org/springframework/security/ui/AuthenticationFailureHandler.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/AuthenticationFailureHandler.java rename to web/src/main/java/org/springframework/security/ui/AuthenticationFailureHandler.java diff --git a/core/src/main/java/org/springframework/security/ui/AuthenticationSuccessHandler.java b/web/src/main/java/org/springframework/security/ui/AuthenticationSuccessHandler.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/AuthenticationSuccessHandler.java rename to web/src/main/java/org/springframework/security/ui/AuthenticationSuccessHandler.java diff --git a/core/src/main/java/org/springframework/security/ui/ExceptionMappingAuthenticationFailureHandler.java b/web/src/main/java/org/springframework/security/ui/ExceptionMappingAuthenticationFailureHandler.java similarity index 95% rename from core/src/main/java/org/springframework/security/ui/ExceptionMappingAuthenticationFailureHandler.java rename to web/src/main/java/org/springframework/security/ui/ExceptionMappingAuthenticationFailureHandler.java index 78eb1fa8b8..e412902f2c 100644 --- a/core/src/main/java/org/springframework/security/ui/ExceptionMappingAuthenticationFailureHandler.java +++ b/web/src/main/java/org/springframework/security/ui/ExceptionMappingAuthenticationFailureHandler.java @@ -9,8 +9,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.security.AuthenticationException; -import org.springframework.security.util.RedirectUtils; -import org.springframework.security.util.UrlUtils; +import org.springframework.security.web.util.RedirectUtils; +import org.springframework.security.web.util.UrlUtils; import org.springframework.util.Assert; /** diff --git a/core/src/main/java/org/springframework/security/ui/ExceptionTranslationFilter.java b/web/src/main/java/org/springframework/security/ui/ExceptionTranslationFilter.java similarity index 98% rename from core/src/main/java/org/springframework/security/ui/ExceptionTranslationFilter.java rename to web/src/main/java/org/springframework/security/ui/ExceptionTranslationFilter.java index dc60aa1d7f..be47f3fa78 100644 --- a/core/src/main/java/org/springframework/security/ui/ExceptionTranslationFilter.java +++ b/web/src/main/java/org/springframework/security/ui/ExceptionTranslationFilter.java @@ -23,10 +23,10 @@ import org.springframework.security.AuthenticationTrustResolverImpl; import org.springframework.security.InsufficientAuthenticationException; import org.springframework.security.context.SecurityContextHolder; import org.springframework.security.ui.savedrequest.SavedRequest; -import org.springframework.security.util.PortResolver; -import org.springframework.security.util.PortResolverImpl; import org.springframework.security.util.ThrowableAnalyzer; import org.springframework.security.util.ThrowableCauseExtractor; +import org.springframework.security.web.util.PortResolver; +import org.springframework.security.web.util.PortResolverImpl; import org.springframework.beans.factory.InitializingBean; import org.springframework.util.Assert; @@ -176,7 +176,7 @@ public class ExceptionTranslationFilter extends SpringSecurityFilter implements * false. *

* Remember to also set - * {@link org.springframework.security.context.HttpSessionSecurityContextRepository#setAllowSessionCreation(boolean)} + * {@link org.springframework.security.context.web.HttpSessionSecurityContextRepository#setAllowSessionCreation(boolean)} * to false if you set this property to false. * * @return true if the HttpSession will be diff --git a/core/src/main/java/org/springframework/security/ui/FilterChainOrder.java b/web/src/main/java/org/springframework/security/ui/FilterChainOrder.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/FilterChainOrder.java rename to web/src/main/java/org/springframework/security/ui/FilterChainOrder.java diff --git a/core/src/main/java/org/springframework/security/ui/LogoutSuccessHandler.java b/web/src/main/java/org/springframework/security/ui/LogoutSuccessHandler.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/LogoutSuccessHandler.java rename to web/src/main/java/org/springframework/security/ui/LogoutSuccessHandler.java diff --git a/core/src/main/java/org/springframework/security/ui/SavedRequestAwareAuthenticationSuccessHandler.java b/web/src/main/java/org/springframework/security/ui/SavedRequestAwareAuthenticationSuccessHandler.java similarity index 98% rename from core/src/main/java/org/springframework/security/ui/SavedRequestAwareAuthenticationSuccessHandler.java rename to web/src/main/java/org/springframework/security/ui/SavedRequestAwareAuthenticationSuccessHandler.java index f1c8a9f8a3..4b4f742509 100644 --- a/core/src/main/java/org/springframework/security/ui/SavedRequestAwareAuthenticationSuccessHandler.java +++ b/web/src/main/java/org/springframework/security/ui/SavedRequestAwareAuthenticationSuccessHandler.java @@ -9,7 +9,7 @@ import javax.servlet.http.HttpSession; import org.springframework.security.Authentication; import org.springframework.security.ui.savedrequest.SavedRequest; -import org.springframework.security.util.RedirectUtils; +import org.springframework.security.web.util.RedirectUtils; import org.springframework.security.wrapper.SavedRequestAwareWrapper; import org.springframework.util.StringUtils; diff --git a/core/src/main/java/org/springframework/security/ui/SessionFixationProtectionFilter.java b/web/src/main/java/org/springframework/security/ui/SessionFixationProtectionFilter.java similarity index 96% rename from core/src/main/java/org/springframework/security/ui/SessionFixationProtectionFilter.java rename to web/src/main/java/org/springframework/security/ui/SessionFixationProtectionFilter.java index cbc34718d4..6d924ec310 100644 --- a/core/src/main/java/org/springframework/security/ui/SessionFixationProtectionFilter.java +++ b/web/src/main/java/org/springframework/security/ui/SessionFixationProtectionFilter.java @@ -12,10 +12,10 @@ import org.springframework.security.Authentication; import org.springframework.security.AuthenticationTrustResolver; import org.springframework.security.AuthenticationTrustResolverImpl; import org.springframework.security.concurrent.SessionRegistry; -import org.springframework.security.context.HttpSessionSecurityContextRepository; import org.springframework.security.context.SecurityContext; import org.springframework.security.context.SecurityContextHolder; -import org.springframework.security.util.SessionUtils; +import org.springframework.security.context.web.HttpSessionSecurityContextRepository; +import org.springframework.security.web.util.SessionUtils; /** * Detects that a user has been authenticated since the start of the request and starts a new session. diff --git a/core/src/main/java/org/springframework/security/ui/SimpleUrlAuthenticationFailureHandler.java b/web/src/main/java/org/springframework/security/ui/SimpleUrlAuthenticationFailureHandler.java similarity index 96% rename from core/src/main/java/org/springframework/security/ui/SimpleUrlAuthenticationFailureHandler.java rename to web/src/main/java/org/springframework/security/ui/SimpleUrlAuthenticationFailureHandler.java index c9fd43cca2..2bea42f7fa 100644 --- a/core/src/main/java/org/springframework/security/ui/SimpleUrlAuthenticationFailureHandler.java +++ b/web/src/main/java/org/springframework/security/ui/SimpleUrlAuthenticationFailureHandler.java @@ -7,8 +7,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.security.AuthenticationException; -import org.springframework.security.util.RedirectUtils; -import org.springframework.security.util.UrlUtils; +import org.springframework.security.web.util.RedirectUtils; +import org.springframework.security.web.util.UrlUtils; import org.springframework.util.Assert; /** diff --git a/core/src/main/java/org/springframework/security/ui/SimpleUrlAuthenticationSuccessHandler.java b/web/src/main/java/org/springframework/security/ui/SimpleUrlAuthenticationSuccessHandler.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/SimpleUrlAuthenticationSuccessHandler.java rename to web/src/main/java/org/springframework/security/ui/SimpleUrlAuthenticationSuccessHandler.java diff --git a/core/src/main/java/org/springframework/security/ui/SpringSecurityFilter.java b/web/src/main/java/org/springframework/security/ui/SpringSecurityFilter.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/SpringSecurityFilter.java rename to web/src/main/java/org/springframework/security/ui/SpringSecurityFilter.java diff --git a/core/src/main/java/org/springframework/security/ui/WebAuthenticationDetails.java b/web/src/main/java/org/springframework/security/ui/WebAuthenticationDetails.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/WebAuthenticationDetails.java rename to web/src/main/java/org/springframework/security/ui/WebAuthenticationDetails.java diff --git a/core/src/main/java/org/springframework/security/ui/WebAuthenticationDetailsSource.java b/web/src/main/java/org/springframework/security/ui/WebAuthenticationDetailsSource.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/WebAuthenticationDetailsSource.java rename to web/src/main/java/org/springframework/security/ui/WebAuthenticationDetailsSource.java diff --git a/core/src/main/java/org/springframework/security/providers/anonymous/AnonymousProcessingFilter.java b/web/src/main/java/org/springframework/security/ui/anonymous/AnonymousProcessingFilter.java similarity index 95% rename from core/src/main/java/org/springframework/security/providers/anonymous/AnonymousProcessingFilter.java rename to web/src/main/java/org/springframework/security/ui/anonymous/AnonymousProcessingFilter.java index 8af99a42a2..5ba6d64eca 100644 --- a/core/src/main/java/org/springframework/security/providers/anonymous/AnonymousProcessingFilter.java +++ b/web/src/main/java/org/springframework/security/ui/anonymous/AnonymousProcessingFilter.java @@ -13,12 +13,13 @@ * limitations under the License. */ -package org.springframework.security.providers.anonymous; +package org.springframework.security.ui.anonymous; import org.springframework.security.Authentication; import org.springframework.security.context.SecurityContextHolder; +import org.springframework.security.providers.anonymous.AnonymousAuthenticationToken; import org.springframework.security.ui.AuthenticationDetailsSource; import org.springframework.security.ui.WebAuthenticationDetailsSource; import org.springframework.security.ui.FilterChainOrder; @@ -139,7 +140,7 @@ public class AnonymousProcessingFilter extends SpringSecurityFilter implements /** * Controls whether the filter will remove the Anonymous token after the request is complete. Generally * this is desired to avoid the expense of a session being created by {@link - * org.springframework.security.context.HttpSessionContextIntegrationFilter HttpSessionContextIntegrationFilter} simply to + * org.springframework.security.context.web.HttpSessionContextIntegrationFilter HttpSessionContextIntegrationFilter} simply to * store the Anonymous authentication token.

Defaults to true, being the most optimal and * appropriate option (ie AnonymousProcessingFilter will clear the token at the end of each request, * thus avoiding the session creation overhead in a typical configuration.

diff --git a/core/src/main/java/org/springframework/security/ui/basicauth/BasicProcessingFilter.java b/web/src/main/java/org/springframework/security/ui/basicauth/BasicProcessingFilter.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/basicauth/BasicProcessingFilter.java rename to web/src/main/java/org/springframework/security/ui/basicauth/BasicProcessingFilter.java diff --git a/core/src/main/java/org/springframework/security/ui/basicauth/BasicProcessingFilterEntryPoint.java b/web/src/main/java/org/springframework/security/ui/basicauth/BasicProcessingFilterEntryPoint.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/basicauth/BasicProcessingFilterEntryPoint.java rename to web/src/main/java/org/springframework/security/ui/basicauth/BasicProcessingFilterEntryPoint.java diff --git a/core/src/main/java/org/springframework/security/ui/basicauth/package.html b/web/src/main/java/org/springframework/security/ui/basicauth/package.html similarity index 100% rename from core/src/main/java/org/springframework/security/ui/basicauth/package.html rename to web/src/main/java/org/springframework/security/ui/basicauth/package.html diff --git a/core/src/main/java/org/springframework/security/ui/digestauth/DigestProcessingFilter.java b/web/src/main/java/org/springframework/security/ui/digestauth/DigestProcessingFilter.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/digestauth/DigestProcessingFilter.java rename to web/src/main/java/org/springframework/security/ui/digestauth/DigestProcessingFilter.java diff --git a/core/src/main/java/org/springframework/security/ui/digestauth/DigestProcessingFilterEntryPoint.java b/web/src/main/java/org/springframework/security/ui/digestauth/DigestProcessingFilterEntryPoint.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/digestauth/DigestProcessingFilterEntryPoint.java rename to web/src/main/java/org/springframework/security/ui/digestauth/DigestProcessingFilterEntryPoint.java diff --git a/core/src/main/java/org/springframework/security/ui/digestauth/NonceExpiredException.java b/web/src/main/java/org/springframework/security/ui/digestauth/NonceExpiredException.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/digestauth/NonceExpiredException.java rename to web/src/main/java/org/springframework/security/ui/digestauth/NonceExpiredException.java diff --git a/core/src/main/java/org/springframework/security/ui/digestauth/package.html b/web/src/main/java/org/springframework/security/ui/digestauth/package.html similarity index 100% rename from core/src/main/java/org/springframework/security/ui/digestauth/package.html rename to web/src/main/java/org/springframework/security/ui/digestauth/package.html diff --git a/core/src/main/java/org/springframework/security/ui/logout/LogoutFilter.java b/web/src/main/java/org/springframework/security/ui/logout/LogoutFilter.java similarity index 96% rename from core/src/main/java/org/springframework/security/ui/logout/LogoutFilter.java rename to web/src/main/java/org/springframework/security/ui/logout/LogoutFilter.java index 9f5ecbc275..c380743aa3 100644 --- a/core/src/main/java/org/springframework/security/ui/logout/LogoutFilter.java +++ b/web/src/main/java/org/springframework/security/ui/logout/LogoutFilter.java @@ -29,7 +29,7 @@ import org.springframework.security.context.SecurityContextHolder; import org.springframework.security.ui.FilterChainOrder; import org.springframework.security.ui.LogoutSuccessHandler; import org.springframework.security.ui.SpringSecurityFilter; -import org.springframework.security.util.UrlUtils; +import org.springframework.security.web.util.UrlUtils; import org.springframework.util.Assert; import org.springframework.util.StringUtils; diff --git a/core/src/main/java/org/springframework/security/ui/logout/LogoutHandler.java b/web/src/main/java/org/springframework/security/ui/logout/LogoutHandler.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/logout/LogoutHandler.java rename to web/src/main/java/org/springframework/security/ui/logout/LogoutHandler.java diff --git a/core/src/main/java/org/springframework/security/ui/logout/SecurityContextLogoutHandler.java b/web/src/main/java/org/springframework/security/ui/logout/SecurityContextLogoutHandler.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/logout/SecurityContextLogoutHandler.java rename to web/src/main/java/org/springframework/security/ui/logout/SecurityContextLogoutHandler.java diff --git a/core/src/main/java/org/springframework/security/ui/logout/SimpleUrlLogoutSuccessHandler.java b/web/src/main/java/org/springframework/security/ui/logout/SimpleUrlLogoutSuccessHandler.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/logout/SimpleUrlLogoutSuccessHandler.java rename to web/src/main/java/org/springframework/security/ui/logout/SimpleUrlLogoutSuccessHandler.java diff --git a/core/src/main/java/org/springframework/security/ui/package.html b/web/src/main/java/org/springframework/security/ui/package.html similarity index 100% rename from core/src/main/java/org/springframework/security/ui/package.html rename to web/src/main/java/org/springframework/security/ui/package.html diff --git a/core/src/main/java/org/springframework/security/ui/preauth/AbstractPreAuthenticatedProcessingFilter.java b/web/src/main/java/org/springframework/security/ui/preauth/AbstractPreAuthenticatedProcessingFilter.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/preauth/AbstractPreAuthenticatedProcessingFilter.java rename to web/src/main/java/org/springframework/security/ui/preauth/AbstractPreAuthenticatedProcessingFilter.java diff --git a/core/src/main/java/org/springframework/security/ui/preauth/PreAuthenticatedCredentialsNotFoundException.java b/web/src/main/java/org/springframework/security/ui/preauth/PreAuthenticatedCredentialsNotFoundException.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/preauth/PreAuthenticatedCredentialsNotFoundException.java rename to web/src/main/java/org/springframework/security/ui/preauth/PreAuthenticatedCredentialsNotFoundException.java diff --git a/core/src/main/java/org/springframework/security/ui/preauth/PreAuthenticatedGrantedAuthoritiesAuthenticationDetails.java b/web/src/main/java/org/springframework/security/ui/preauth/PreAuthenticatedGrantedAuthoritiesAuthenticationDetails.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/preauth/PreAuthenticatedGrantedAuthoritiesAuthenticationDetails.java rename to web/src/main/java/org/springframework/security/ui/preauth/PreAuthenticatedGrantedAuthoritiesAuthenticationDetails.java diff --git a/core/src/main/java/org/springframework/security/ui/preauth/PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetails.java b/web/src/main/java/org/springframework/security/ui/preauth/PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetails.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/preauth/PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetails.java rename to web/src/main/java/org/springframework/security/ui/preauth/PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetails.java diff --git a/core/src/main/java/org/springframework/security/ui/preauth/PreAuthenticatedProcessingFilterEntryPoint.java b/web/src/main/java/org/springframework/security/ui/preauth/PreAuthenticatedProcessingFilterEntryPoint.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/preauth/PreAuthenticatedProcessingFilterEntryPoint.java rename to web/src/main/java/org/springframework/security/ui/preauth/PreAuthenticatedProcessingFilterEntryPoint.java diff --git a/core/src/main/java/org/springframework/security/ui/preauth/header/RequestHeaderPreAuthenticatedProcessingFilter.java b/web/src/main/java/org/springframework/security/ui/preauth/header/RequestHeaderPreAuthenticatedProcessingFilter.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/preauth/header/RequestHeaderPreAuthenticatedProcessingFilter.java rename to web/src/main/java/org/springframework/security/ui/preauth/header/RequestHeaderPreAuthenticatedProcessingFilter.java diff --git a/core/src/main/java/org/springframework/security/ui/preauth/j2ee/AbstractPreAuthenticatedAuthenticationDetailsSource.java b/web/src/main/java/org/springframework/security/ui/preauth/j2ee/AbstractPreAuthenticatedAuthenticationDetailsSource.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/preauth/j2ee/AbstractPreAuthenticatedAuthenticationDetailsSource.java rename to web/src/main/java/org/springframework/security/ui/preauth/j2ee/AbstractPreAuthenticatedAuthenticationDetailsSource.java diff --git a/core/src/main/java/org/springframework/security/ui/preauth/j2ee/J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource.java b/web/src/main/java/org/springframework/security/ui/preauth/j2ee/J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/preauth/j2ee/J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource.java rename to web/src/main/java/org/springframework/security/ui/preauth/j2ee/J2eeBasedPreAuthenticatedWebAuthenticationDetailsSource.java diff --git a/core/src/main/java/org/springframework/security/ui/preauth/j2ee/J2eePreAuthenticatedProcessingFilter.java b/web/src/main/java/org/springframework/security/ui/preauth/j2ee/J2eePreAuthenticatedProcessingFilter.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/preauth/j2ee/J2eePreAuthenticatedProcessingFilter.java rename to web/src/main/java/org/springframework/security/ui/preauth/j2ee/J2eePreAuthenticatedProcessingFilter.java diff --git a/core/src/main/java/org/springframework/security/ui/preauth/j2ee/WebXmlMappableAttributesRetriever.java b/web/src/main/java/org/springframework/security/ui/preauth/j2ee/WebXmlMappableAttributesRetriever.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/preauth/j2ee/WebXmlMappableAttributesRetriever.java rename to web/src/main/java/org/springframework/security/ui/preauth/j2ee/WebXmlMappableAttributesRetriever.java diff --git a/core/src/main/java/org/springframework/security/ui/preauth/websphere/WASSecurityHelper.java b/web/src/main/java/org/springframework/security/ui/preauth/websphere/WASSecurityHelper.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/preauth/websphere/WASSecurityHelper.java rename to web/src/main/java/org/springframework/security/ui/preauth/websphere/WASSecurityHelper.java diff --git a/core/src/main/java/org/springframework/security/ui/preauth/websphere/WebSphere2SpringSecurityPropagationInterceptor.java b/web/src/main/java/org/springframework/security/ui/preauth/websphere/WebSphere2SpringSecurityPropagationInterceptor.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/preauth/websphere/WebSphere2SpringSecurityPropagationInterceptor.java rename to web/src/main/java/org/springframework/security/ui/preauth/websphere/WebSphere2SpringSecurityPropagationInterceptor.java diff --git a/core/src/main/java/org/springframework/security/ui/preauth/websphere/WebSpherePreAuthenticatedAuthenticationDetailsSource.java b/web/src/main/java/org/springframework/security/ui/preauth/websphere/WebSpherePreAuthenticatedAuthenticationDetailsSource.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/preauth/websphere/WebSpherePreAuthenticatedAuthenticationDetailsSource.java rename to web/src/main/java/org/springframework/security/ui/preauth/websphere/WebSpherePreAuthenticatedAuthenticationDetailsSource.java diff --git a/core/src/main/java/org/springframework/security/ui/preauth/websphere/WebSpherePreAuthenticatedProcessingFilter.java b/web/src/main/java/org/springframework/security/ui/preauth/websphere/WebSpherePreAuthenticatedProcessingFilter.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/preauth/websphere/WebSpherePreAuthenticatedProcessingFilter.java rename to web/src/main/java/org/springframework/security/ui/preauth/websphere/WebSpherePreAuthenticatedProcessingFilter.java diff --git a/core/src/main/java/org/springframework/security/ui/preauth/websphere/WebSpherePreAuthenticatedWebAuthenticationDetailsSource.java b/web/src/main/java/org/springframework/security/ui/preauth/websphere/WebSpherePreAuthenticatedWebAuthenticationDetailsSource.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/preauth/websphere/WebSpherePreAuthenticatedWebAuthenticationDetailsSource.java rename to web/src/main/java/org/springframework/security/ui/preauth/websphere/WebSpherePreAuthenticatedWebAuthenticationDetailsSource.java diff --git a/core/src/main/java/org/springframework/security/ui/preauth/x509/SubjectDnX509PrincipalExtractor.java b/web/src/main/java/org/springframework/security/ui/preauth/x509/SubjectDnX509PrincipalExtractor.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/preauth/x509/SubjectDnX509PrincipalExtractor.java rename to web/src/main/java/org/springframework/security/ui/preauth/x509/SubjectDnX509PrincipalExtractor.java diff --git a/core/src/main/java/org/springframework/security/ui/preauth/x509/X509PreAuthenticatedProcessingFilter.java b/web/src/main/java/org/springframework/security/ui/preauth/x509/X509PreAuthenticatedProcessingFilter.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/preauth/x509/X509PreAuthenticatedProcessingFilter.java rename to web/src/main/java/org/springframework/security/ui/preauth/x509/X509PreAuthenticatedProcessingFilter.java diff --git a/core/src/main/java/org/springframework/security/ui/preauth/x509/X509PrincipalExtractor.java b/web/src/main/java/org/springframework/security/ui/preauth/x509/X509PrincipalExtractor.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/preauth/x509/X509PrincipalExtractor.java rename to web/src/main/java/org/springframework/security/ui/preauth/x509/X509PrincipalExtractor.java diff --git a/core/src/main/java/org/springframework/security/ui/rememberme/AbstractRememberMeServices.java b/web/src/main/java/org/springframework/security/ui/rememberme/AbstractRememberMeServices.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/rememberme/AbstractRememberMeServices.java rename to web/src/main/java/org/springframework/security/ui/rememberme/AbstractRememberMeServices.java diff --git a/core/src/main/java/org/springframework/security/ui/rememberme/CookieTheftException.java b/web/src/main/java/org/springframework/security/ui/rememberme/CookieTheftException.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/rememberme/CookieTheftException.java rename to web/src/main/java/org/springframework/security/ui/rememberme/CookieTheftException.java diff --git a/core/src/main/java/org/springframework/security/ui/rememberme/InMemoryTokenRepositoryImpl.java b/web/src/main/java/org/springframework/security/ui/rememberme/InMemoryTokenRepositoryImpl.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/rememberme/InMemoryTokenRepositoryImpl.java rename to web/src/main/java/org/springframework/security/ui/rememberme/InMemoryTokenRepositoryImpl.java diff --git a/core/src/main/java/org/springframework/security/ui/rememberme/InvalidCookieException.java b/web/src/main/java/org/springframework/security/ui/rememberme/InvalidCookieException.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/rememberme/InvalidCookieException.java rename to web/src/main/java/org/springframework/security/ui/rememberme/InvalidCookieException.java diff --git a/core/src/main/java/org/springframework/security/ui/rememberme/JdbcTokenRepositoryImpl.java b/web/src/main/java/org/springframework/security/ui/rememberme/JdbcTokenRepositoryImpl.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/rememberme/JdbcTokenRepositoryImpl.java rename to web/src/main/java/org/springframework/security/ui/rememberme/JdbcTokenRepositoryImpl.java diff --git a/core/src/main/java/org/springframework/security/ui/rememberme/NullRememberMeServices.java b/web/src/main/java/org/springframework/security/ui/rememberme/NullRememberMeServices.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/rememberme/NullRememberMeServices.java rename to web/src/main/java/org/springframework/security/ui/rememberme/NullRememberMeServices.java diff --git a/core/src/main/java/org/springframework/security/ui/rememberme/PersistentRememberMeToken.java b/web/src/main/java/org/springframework/security/ui/rememberme/PersistentRememberMeToken.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/rememberme/PersistentRememberMeToken.java rename to web/src/main/java/org/springframework/security/ui/rememberme/PersistentRememberMeToken.java diff --git a/core/src/main/java/org/springframework/security/ui/rememberme/PersistentTokenBasedRememberMeServices.java b/web/src/main/java/org/springframework/security/ui/rememberme/PersistentTokenBasedRememberMeServices.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/rememberme/PersistentTokenBasedRememberMeServices.java rename to web/src/main/java/org/springframework/security/ui/rememberme/PersistentTokenBasedRememberMeServices.java diff --git a/core/src/main/java/org/springframework/security/ui/rememberme/PersistentTokenRepository.java b/web/src/main/java/org/springframework/security/ui/rememberme/PersistentTokenRepository.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/rememberme/PersistentTokenRepository.java rename to web/src/main/java/org/springframework/security/ui/rememberme/PersistentTokenRepository.java diff --git a/core/src/main/java/org/springframework/security/ui/rememberme/RememberMeAuthenticationException.java b/web/src/main/java/org/springframework/security/ui/rememberme/RememberMeAuthenticationException.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/rememberme/RememberMeAuthenticationException.java rename to web/src/main/java/org/springframework/security/ui/rememberme/RememberMeAuthenticationException.java diff --git a/core/src/main/java/org/springframework/security/ui/rememberme/RememberMeProcessingFilter.java b/web/src/main/java/org/springframework/security/ui/rememberme/RememberMeProcessingFilter.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/rememberme/RememberMeProcessingFilter.java rename to web/src/main/java/org/springframework/security/ui/rememberme/RememberMeProcessingFilter.java diff --git a/core/src/main/java/org/springframework/security/ui/rememberme/RememberMeServices.java b/web/src/main/java/org/springframework/security/ui/rememberme/RememberMeServices.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/rememberme/RememberMeServices.java rename to web/src/main/java/org/springframework/security/ui/rememberme/RememberMeServices.java diff --git a/core/src/main/java/org/springframework/security/ui/rememberme/TokenBasedRememberMeServices.java b/web/src/main/java/org/springframework/security/ui/rememberme/TokenBasedRememberMeServices.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/rememberme/TokenBasedRememberMeServices.java rename to web/src/main/java/org/springframework/security/ui/rememberme/TokenBasedRememberMeServices.java diff --git a/core/src/main/java/org/springframework/security/ui/rememberme/package.html b/web/src/main/java/org/springframework/security/ui/rememberme/package.html similarity index 100% rename from core/src/main/java/org/springframework/security/ui/rememberme/package.html rename to web/src/main/java/org/springframework/security/ui/rememberme/package.html diff --git a/core/src/main/java/org/springframework/security/ui/savedrequest/Enumerator.java b/web/src/main/java/org/springframework/security/ui/savedrequest/Enumerator.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/savedrequest/Enumerator.java rename to web/src/main/java/org/springframework/security/ui/savedrequest/Enumerator.java diff --git a/core/src/main/java/org/springframework/security/ui/savedrequest/FastHttpDateFormat.java b/web/src/main/java/org/springframework/security/ui/savedrequest/FastHttpDateFormat.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/savedrequest/FastHttpDateFormat.java rename to web/src/main/java/org/springframework/security/ui/savedrequest/FastHttpDateFormat.java diff --git a/core/src/main/java/org/springframework/security/ui/savedrequest/SavedCookie.java b/web/src/main/java/org/springframework/security/ui/savedrequest/SavedCookie.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/savedrequest/SavedCookie.java rename to web/src/main/java/org/springframework/security/ui/savedrequest/SavedCookie.java diff --git a/core/src/main/java/org/springframework/security/ui/savedrequest/SavedRequest.java b/web/src/main/java/org/springframework/security/ui/savedrequest/SavedRequest.java similarity index 95% rename from core/src/main/java/org/springframework/security/ui/savedrequest/SavedRequest.java rename to web/src/main/java/org/springframework/security/ui/savedrequest/SavedRequest.java index 5f001cc92b..0ab3acb467 100644 --- a/core/src/main/java/org/springframework/security/ui/savedrequest/SavedRequest.java +++ b/web/src/main/java/org/springframework/security/ui/savedrequest/SavedRequest.java @@ -15,8 +15,8 @@ package org.springframework.security.ui.savedrequest; -import org.springframework.security.util.PortResolver; -import org.springframework.security.util.UrlUtils; +import org.springframework.security.web.util.PortResolver; +import org.springframework.security.web.util.UrlUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.util.Assert; diff --git a/core/src/main/java/org/springframework/security/ui/savedrequest/package.html b/web/src/main/java/org/springframework/security/ui/savedrequest/package.html similarity index 100% rename from core/src/main/java/org/springframework/security/ui/savedrequest/package.html rename to web/src/main/java/org/springframework/security/ui/savedrequest/package.html diff --git a/core/src/main/java/org/springframework/security/ui/session/HttpSessionCreatedEvent.java b/web/src/main/java/org/springframework/security/ui/session/HttpSessionCreatedEvent.java similarity index 75% rename from core/src/main/java/org/springframework/security/ui/session/HttpSessionCreatedEvent.java rename to web/src/main/java/org/springframework/security/ui/session/HttpSessionCreatedEvent.java index 85b1a326fa..c62e0d07bf 100644 --- a/core/src/main/java/org/springframework/security/ui/session/HttpSessionCreatedEvent.java +++ b/web/src/main/java/org/springframework/security/ui/session/HttpSessionCreatedEvent.java @@ -17,16 +17,22 @@ package org.springframework.security.ui.session; import javax.servlet.http.HttpSession; +import org.springframework.security.event.SessionCreationEvent; /** * Published by the {@link HttpSessionEventPublisher} when a HttpSession is destroyed by the container * * @author Ray Krueger + * @author Luke Taylor */ -public class HttpSessionCreatedEvent extends HttpSessionApplicationEvent { +public class HttpSessionCreatedEvent extends SessionCreationEvent { //~ Constructors =================================================================================================== - public HttpSessionCreatedEvent(HttpSession o) { - super(o); + public HttpSessionCreatedEvent(HttpSession session) { + super(session); + } + + public HttpSession getSession() { + return (HttpSession) getSource(); } } diff --git a/core/src/main/java/org/springframework/security/ui/session/HttpSessionDestroyedEvent.java b/web/src/main/java/org/springframework/security/ui/session/HttpSessionDestroyedEvent.java similarity index 59% rename from core/src/main/java/org/springframework/security/ui/session/HttpSessionDestroyedEvent.java rename to web/src/main/java/org/springframework/security/ui/session/HttpSessionDestroyedEvent.java index 3f9fa3c46a..dbb0c9578a 100644 --- a/core/src/main/java/org/springframework/security/ui/session/HttpSessionDestroyedEvent.java +++ b/web/src/main/java/org/springframework/security/ui/session/HttpSessionDestroyedEvent.java @@ -17,16 +17,29 @@ package org.springframework.security.ui.session; import javax.servlet.http.HttpSession; +import org.springframework.security.context.SecurityContext; +import org.springframework.security.context.web.HttpSessionSecurityContextRepository; +import org.springframework.security.event.SessionDestroyedEvent; + /** * Published by the {@link HttpSessionEventPublisher} when a HttpSession is created in the container * * @author Ray Krueger + * @author Luke Taylor */ -public class HttpSessionDestroyedEvent extends HttpSessionApplicationEvent { +public class HttpSessionDestroyedEvent extends SessionDestroyedEvent { //~ Constructors =================================================================================================== - public HttpSessionDestroyedEvent(HttpSession o) { - super(o); + public HttpSessionDestroyedEvent(HttpSession session) { + super(session); + } + + public SecurityContext getSecurityContext() { + return (SecurityContext) ((HttpSession)getSource()).getAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY); + } + + public HttpSession getSession() { + return (HttpSession) getSource(); } } diff --git a/core/src/main/java/org/springframework/security/ui/session/HttpSessionEventPublisher.java b/web/src/main/java/org/springframework/security/ui/session/HttpSessionEventPublisher.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/session/HttpSessionEventPublisher.java rename to web/src/main/java/org/springframework/security/ui/session/HttpSessionEventPublisher.java diff --git a/core/src/main/java/org/springframework/security/ui/session/package.html b/web/src/main/java/org/springframework/security/ui/session/package.html similarity index 100% rename from core/src/main/java/org/springframework/security/ui/session/package.html rename to web/src/main/java/org/springframework/security/ui/session/package.html diff --git a/core/src/main/java/org/springframework/security/ui/switchuser/SwitchUserAuthorityChanger.java b/web/src/main/java/org/springframework/security/ui/switchuser/SwitchUserAuthorityChanger.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/switchuser/SwitchUserAuthorityChanger.java rename to web/src/main/java/org/springframework/security/ui/switchuser/SwitchUserAuthorityChanger.java diff --git a/core/src/main/java/org/springframework/security/ui/switchuser/SwitchUserGrantedAuthority.java b/web/src/main/java/org/springframework/security/ui/switchuser/SwitchUserGrantedAuthority.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/switchuser/SwitchUserGrantedAuthority.java rename to web/src/main/java/org/springframework/security/ui/switchuser/SwitchUserGrantedAuthority.java diff --git a/core/src/main/java/org/springframework/security/ui/switchuser/SwitchUserProcessingFilter.java b/web/src/main/java/org/springframework/security/ui/switchuser/SwitchUserProcessingFilter.java similarity index 99% rename from core/src/main/java/org/springframework/security/ui/switchuser/SwitchUserProcessingFilter.java rename to web/src/main/java/org/springframework/security/ui/switchuser/SwitchUserProcessingFilter.java index 080eb176c5..b51b1577a2 100644 --- a/core/src/main/java/org/springframework/security/ui/switchuser/SwitchUserProcessingFilter.java +++ b/web/src/main/java/org/springframework/security/ui/switchuser/SwitchUserProcessingFilter.java @@ -56,7 +56,7 @@ import org.springframework.security.userdetails.UserDetailsChecker; import org.springframework.security.userdetails.UserDetailsService; import org.springframework.security.userdetails.UsernameNotFoundException; import org.springframework.security.userdetails.checker.AccountStatusUserDetailsChecker; -import org.springframework.security.util.UrlUtils; +import org.springframework.security.web.util.UrlUtils; import org.springframework.util.Assert; import org.springframework.util.StringUtils; diff --git a/core/src/main/java/org/springframework/security/ui/switchuser/package.html b/web/src/main/java/org/springframework/security/ui/switchuser/package.html similarity index 100% rename from core/src/main/java/org/springframework/security/ui/switchuser/package.html rename to web/src/main/java/org/springframework/security/ui/switchuser/package.html diff --git a/core/src/main/java/org/springframework/security/ui/webapp/AuthenticationProcessingFilter.java b/web/src/main/java/org/springframework/security/ui/webapp/AuthenticationProcessingFilter.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/webapp/AuthenticationProcessingFilter.java rename to web/src/main/java/org/springframework/security/ui/webapp/AuthenticationProcessingFilter.java diff --git a/core/src/main/java/org/springframework/security/ui/webapp/AuthenticationProcessingFilterEntryPoint.java b/web/src/main/java/org/springframework/security/ui/webapp/AuthenticationProcessingFilterEntryPoint.java similarity index 96% rename from core/src/main/java/org/springframework/security/ui/webapp/AuthenticationProcessingFilterEntryPoint.java rename to web/src/main/java/org/springframework/security/ui/webapp/AuthenticationProcessingFilterEntryPoint.java index 783f02d405..68815bd4ec 100644 --- a/core/src/main/java/org/springframework/security/ui/webapp/AuthenticationProcessingFilterEntryPoint.java +++ b/web/src/main/java/org/springframework/security/ui/webapp/AuthenticationProcessingFilterEntryPoint.java @@ -20,12 +20,12 @@ import org.springframework.security.AuthenticationException; import org.springframework.security.ui.AuthenticationEntryPoint; import org.springframework.security.ui.ExceptionTranslationFilter; -import org.springframework.security.util.PortMapper; -import org.springframework.security.util.PortMapperImpl; -import org.springframework.security.util.PortResolver; -import org.springframework.security.util.PortResolverImpl; -import org.springframework.security.util.RedirectUrlBuilder; -import org.springframework.security.util.UrlUtils; +import org.springframework.security.web.util.PortMapper; +import org.springframework.security.web.util.PortMapperImpl; +import org.springframework.security.web.util.PortResolver; +import org.springframework.security.web.util.PortResolverImpl; +import org.springframework.security.web.util.RedirectUrlBuilder; +import org.springframework.security.web.util.UrlUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; diff --git a/core/src/main/java/org/springframework/security/ui/webapp/DefaultLoginPageGeneratingFilter.java b/web/src/main/java/org/springframework/security/ui/webapp/DefaultLoginPageGeneratingFilter.java similarity index 100% rename from core/src/main/java/org/springframework/security/ui/webapp/DefaultLoginPageGeneratingFilter.java rename to web/src/main/java/org/springframework/security/ui/webapp/DefaultLoginPageGeneratingFilter.java diff --git a/core/src/main/java/org/springframework/security/ui/webapp/package.html b/web/src/main/java/org/springframework/security/ui/webapp/package.html similarity index 100% rename from core/src/main/java/org/springframework/security/ui/webapp/package.html rename to web/src/main/java/org/springframework/security/ui/webapp/package.html diff --git a/core/src/main/java/org/springframework/security/util/FilterChainProxy.java b/web/src/main/java/org/springframework/security/web/util/FilterChainProxy.java similarity index 99% rename from core/src/main/java/org/springframework/security/util/FilterChainProxy.java rename to web/src/main/java/org/springframework/security/web/util/FilterChainProxy.java index 09c814678a..b03526359e 100644 --- a/core/src/main/java/org/springframework/security/util/FilterChainProxy.java +++ b/web/src/main/java/org/springframework/security/web/util/FilterChainProxy.java @@ -13,7 +13,7 @@ * limitations under the License. */ -package org.springframework.security.util; +package org.springframework.security.web.util; import java.io.IOException; import java.util.Collection; @@ -36,6 +36,8 @@ import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.InitializingBean; import org.springframework.security.intercept.web.FilterInvocation; import org.springframework.security.intercept.web.FilterInvocationSecurityMetadataSource; +import org.springframework.security.util.AntUrlPathMatcher; +import org.springframework.security.util.UrlMatcher; import org.springframework.util.Assert; import org.springframework.web.filter.DelegatingFilterProxy; diff --git a/core/src/main/java/org/springframework/security/util/FilterInvocationUtils.java b/web/src/main/java/org/springframework/security/web/util/FilterInvocationUtils.java similarity index 96% rename from core/src/main/java/org/springframework/security/util/FilterInvocationUtils.java rename to web/src/main/java/org/springframework/security/web/util/FilterInvocationUtils.java index 53df0f738f..901829815e 100644 --- a/core/src/main/java/org/springframework/security/util/FilterInvocationUtils.java +++ b/web/src/main/java/org/springframework/security/web/util/FilterInvocationUtils.java @@ -13,15 +13,7 @@ * limitations under the License. */ -package org.springframework.security.util; - -import org.springframework.security.intercept.web.FilterInvocation; -import org.springframework.security.intercept.web.FilterInvocationSecurityMetadataSource; - -import org.springframework.mock.web.MockHttpServletRequest; -import org.springframework.mock.web.MockHttpServletResponse; - -import org.springframework.util.Assert; +package org.springframework.security.web.util; import java.io.IOException; @@ -30,6 +22,11 @@ import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.mock.web.MockHttpServletResponse; +import org.springframework.security.intercept.web.FilterInvocation; +import org.springframework.util.Assert; + /** * Static utility methods for creating FilterInvocations usable within Spring Security.

The generated diff --git a/core/src/main/java/org/springframework/security/util/PortMapper.java b/web/src/main/java/org/springframework/security/web/util/PortMapper.java similarity index 97% rename from core/src/main/java/org/springframework/security/util/PortMapper.java rename to web/src/main/java/org/springframework/security/web/util/PortMapper.java index c2b791ed37..1012d73530 100644 --- a/core/src/main/java/org/springframework/security/util/PortMapper.java +++ b/web/src/main/java/org/springframework/security/web/util/PortMapper.java @@ -13,7 +13,7 @@ * limitations under the License. */ -package org.springframework.security.util; +package org.springframework.security.web.util; /** * PortMapper implementations provide callers with information diff --git a/core/src/main/java/org/springframework/security/util/PortMapperImpl.java b/web/src/main/java/org/springframework/security/web/util/PortMapperImpl.java similarity index 98% rename from core/src/main/java/org/springframework/security/util/PortMapperImpl.java rename to web/src/main/java/org/springframework/security/web/util/PortMapperImpl.java index eb64f19273..bf5733088d 100644 --- a/core/src/main/java/org/springframework/security/util/PortMapperImpl.java +++ b/web/src/main/java/org/springframework/security/web/util/PortMapperImpl.java @@ -13,7 +13,7 @@ * limitations under the License. */ -package org.springframework.security.util; +package org.springframework.security.web.util; import org.springframework.util.Assert; diff --git a/core/src/main/java/org/springframework/security/util/PortResolver.java b/web/src/main/java/org/springframework/security/web/util/PortResolver.java similarity index 96% rename from core/src/main/java/org/springframework/security/util/PortResolver.java rename to web/src/main/java/org/springframework/security/web/util/PortResolver.java index b21fd71be3..9512bcaee2 100644 --- a/core/src/main/java/org/springframework/security/util/PortResolver.java +++ b/web/src/main/java/org/springframework/security/web/util/PortResolver.java @@ -13,7 +13,7 @@ * limitations under the License. */ -package org.springframework.security.util; +package org.springframework.security.web.util; import javax.servlet.ServletRequest; diff --git a/core/src/main/java/org/springframework/security/util/PortResolverImpl.java b/web/src/main/java/org/springframework/security/web/util/PortResolverImpl.java similarity index 98% rename from core/src/main/java/org/springframework/security/util/PortResolverImpl.java rename to web/src/main/java/org/springframework/security/web/util/PortResolverImpl.java index 40e53e93d3..1242b32e63 100644 --- a/core/src/main/java/org/springframework/security/util/PortResolverImpl.java +++ b/web/src/main/java/org/springframework/security/web/util/PortResolverImpl.java @@ -13,7 +13,7 @@ * limitations under the License. */ -package org.springframework.security.util; +package org.springframework.security.web.util; import org.springframework.util.Assert; diff --git a/core/src/main/java/org/springframework/security/util/RedirectUrlBuilder.java b/web/src/main/java/org/springframework/security/web/util/RedirectUrlBuilder.java similarity index 97% rename from core/src/main/java/org/springframework/security/util/RedirectUrlBuilder.java rename to web/src/main/java/org/springframework/security/web/util/RedirectUrlBuilder.java index 0fa4741448..53748ec099 100644 --- a/core/src/main/java/org/springframework/security/util/RedirectUrlBuilder.java +++ b/web/src/main/java/org/springframework/security/web/util/RedirectUrlBuilder.java @@ -1,4 +1,4 @@ -package org.springframework.security.util; +package org.springframework.security.web.util; import org.springframework.util.Assert; diff --git a/core/src/main/java/org/springframework/security/util/RedirectUtils.java b/web/src/main/java/org/springframework/security/web/util/RedirectUtils.java similarity index 97% rename from core/src/main/java/org/springframework/security/util/RedirectUtils.java rename to web/src/main/java/org/springframework/security/web/util/RedirectUtils.java index 6a152ae9ac..1eade5fae0 100644 --- a/core/src/main/java/org/springframework/security/util/RedirectUtils.java +++ b/web/src/main/java/org/springframework/security/web/util/RedirectUtils.java @@ -1,4 +1,4 @@ -package org.springframework.security.util; +package org.springframework.security.web.util; import org.springframework.security.ui.AbstractProcessingFilter; import org.springframework.security.ui.logout.LogoutFilter; diff --git a/core/src/main/java/org/springframework/security/util/SessionUtils.java b/web/src/main/java/org/springframework/security/web/util/SessionUtils.java similarity index 98% rename from core/src/main/java/org/springframework/security/util/SessionUtils.java rename to web/src/main/java/org/springframework/security/web/util/SessionUtils.java index 3567bcf616..7c14b2d345 100644 --- a/core/src/main/java/org/springframework/security/util/SessionUtils.java +++ b/web/src/main/java/org/springframework/security/web/util/SessionUtils.java @@ -1,4 +1,4 @@ -package org.springframework.security.util; +package org.springframework.security.web.util; import java.util.Enumeration; import java.util.HashMap; diff --git a/core/src/main/java/org/springframework/security/util/UrlUtils.java b/web/src/main/java/org/springframework/security/web/util/UrlUtils.java similarity index 96% rename from core/src/main/java/org/springframework/security/util/UrlUtils.java rename to web/src/main/java/org/springframework/security/web/util/UrlUtils.java index 939a4977ce..fd54365867 100644 --- a/core/src/main/java/org/springframework/security/util/UrlUtils.java +++ b/web/src/main/java/org/springframework/security/web/util/UrlUtils.java @@ -13,7 +13,7 @@ * limitations under the License. */ -package org.springframework.security.util; +package org.springframework.security.web.util; import javax.servlet.http.HttpServletRequest; diff --git a/core/src/main/java/org/springframework/security/wrapper/SavedRequestAwareWrapper.java b/web/src/main/java/org/springframework/security/wrapper/SavedRequestAwareWrapper.java similarity index 96% rename from core/src/main/java/org/springframework/security/wrapper/SavedRequestAwareWrapper.java rename to web/src/main/java/org/springframework/security/wrapper/SavedRequestAwareWrapper.java index 82b8543d87..60b4c1ec05 100644 --- a/core/src/main/java/org/springframework/security/wrapper/SavedRequestAwareWrapper.java +++ b/web/src/main/java/org/springframework/security/wrapper/SavedRequestAwareWrapper.java @@ -37,7 +37,7 @@ import org.apache.commons.logging.LogFactory; import org.springframework.security.ui.savedrequest.Enumerator; import org.springframework.security.ui.savedrequest.FastHttpDateFormat; import org.springframework.security.ui.savedrequest.SavedRequest; -import org.springframework.security.util.PortResolver; +import org.springframework.security.web.util.PortResolver; /** diff --git a/core/src/main/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestFilter.java b/web/src/main/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestFilter.java similarity index 96% rename from core/src/main/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestFilter.java rename to web/src/main/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestFilter.java index c185806502..1643f30c8d 100644 --- a/core/src/main/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestFilter.java +++ b/web/src/main/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestFilter.java @@ -25,8 +25,8 @@ import javax.servlet.http.HttpServletResponse; import org.springframework.security.ui.FilterChainOrder; import org.springframework.security.ui.SpringSecurityFilter; -import org.springframework.security.util.PortResolver; -import org.springframework.security.util.PortResolverImpl; +import org.springframework.security.web.util.PortResolver; +import org.springframework.security.web.util.PortResolverImpl; import org.springframework.util.Assert; import org.springframework.util.ReflectionUtils; diff --git a/core/src/main/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestWrapper.java b/web/src/main/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestWrapper.java similarity index 98% rename from core/src/main/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestWrapper.java rename to web/src/main/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestWrapper.java index 4244fb2c47..ccb9036f9d 100644 --- a/core/src/main/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestWrapper.java +++ b/web/src/main/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestWrapper.java @@ -23,7 +23,7 @@ import org.springframework.security.GrantedAuthority; import org.springframework.security.context.SecurityContextHolder; import org.springframework.security.userdetails.UserDetails; -import org.springframework.security.util.PortResolver; +import org.springframework.security.web.util.PortResolver; import java.security.Principal; import java.util.List; diff --git a/core/src/main/java/org/springframework/security/wrapper/package.html b/web/src/main/java/org/springframework/security/wrapper/package.html similarity index 100% rename from core/src/main/java/org/springframework/security/wrapper/package.html rename to web/src/main/java/org/springframework/security/wrapper/package.html diff --git a/core/src/test/java/org/springframework/security/MockAuthenticationEntryPoint.java b/web/src/test/java/org/springframework/security/MockAuthenticationEntryPoint.java similarity index 100% rename from core/src/test/java/org/springframework/security/MockAuthenticationEntryPoint.java rename to web/src/test/java/org/springframework/security/MockAuthenticationEntryPoint.java diff --git a/core/src/test/java/org/springframework/security/MockFilterConfig.java b/web/src/test/java/org/springframework/security/MockFilterConfig.java similarity index 100% rename from core/src/test/java/org/springframework/security/MockFilterConfig.java rename to web/src/test/java/org/springframework/security/MockFilterConfig.java diff --git a/core/src/test/java/org/springframework/security/MockPortResolver.java b/web/src/test/java/org/springframework/security/MockPortResolver.java similarity index 96% rename from core/src/test/java/org/springframework/security/MockPortResolver.java rename to web/src/test/java/org/springframework/security/MockPortResolver.java index 026857196e..c2f03174d1 100644 --- a/core/src/test/java/org/springframework/security/MockPortResolver.java +++ b/web/src/test/java/org/springframework/security/MockPortResolver.java @@ -15,7 +15,7 @@ package org.springframework.security; -import org.springframework.security.util.PortResolver; +import org.springframework.security.web.util.PortResolver; import javax.servlet.ServletRequest; diff --git a/core/src/test/java/org/springframework/security/concurrent/ConcurrentSessionControllerImplTests.java b/web/src/test/java/org/springframework/security/concurrent/ConcurrentSessionControllerImplTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/concurrent/ConcurrentSessionControllerImplTests.java rename to web/src/test/java/org/springframework/security/concurrent/ConcurrentSessionControllerImplTests.java diff --git a/core/src/test/java/org/springframework/security/concurrent/ConcurrentSessionFilterTests.java b/web/src/test/java/org/springframework/security/concurrent/ConcurrentSessionFilterTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/concurrent/ConcurrentSessionFilterTests.java rename to web/src/test/java/org/springframework/security/concurrent/ConcurrentSessionFilterTests.java diff --git a/core/src/test/java/org/springframework/security/concurrent/SessionInformationTests.java b/web/src/test/java/org/springframework/security/concurrent/SessionInformationTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/concurrent/SessionInformationTests.java rename to web/src/test/java/org/springframework/security/concurrent/SessionInformationTests.java diff --git a/core/src/test/java/org/springframework/security/concurrent/SessionRegistryImplTests.java b/web/src/test/java/org/springframework/security/concurrent/SessionRegistryImplTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/concurrent/SessionRegistryImplTests.java rename to web/src/test/java/org/springframework/security/concurrent/SessionRegistryImplTests.java diff --git a/core/src/test/java/org/springframework/security/context/HttpSessionContextIntegrationFilterTests.java b/web/src/test/java/org/springframework/security/context/web/HttpSessionContextIntegrationFilterTests.java similarity index 98% rename from core/src/test/java/org/springframework/security/context/HttpSessionContextIntegrationFilterTests.java rename to web/src/test/java/org/springframework/security/context/web/HttpSessionContextIntegrationFilterTests.java index 948ea677f8..d1af0d360e 100644 --- a/core/src/test/java/org/springframework/security/context/HttpSessionContextIntegrationFilterTests.java +++ b/web/src/test/java/org/springframework/security/context/web/HttpSessionContextIntegrationFilterTests.java @@ -13,12 +13,15 @@ * limitations under the License. */ -package org.springframework.security.context; +package org.springframework.security.context.web; import junit.framework.TestCase; import org.springframework.security.Authentication; import org.springframework.security.MockFilterConfig; +import org.springframework.security.context.SecurityContext; +import org.springframework.security.context.SecurityContextHolder; +import org.springframework.security.context.SecurityContextImpl; import org.springframework.security.providers.UsernamePasswordAuthenticationToken; import org.springframework.security.util.AuthorityUtils; diff --git a/core/src/test/java/org/springframework/security/context/HttpSessionSecurityContextRepositoryTests.java b/web/src/test/java/org/springframework/security/context/web/HttpSessionSecurityContextRepositoryTests.java similarity index 98% rename from core/src/test/java/org/springframework/security/context/HttpSessionSecurityContextRepositoryTests.java rename to web/src/test/java/org/springframework/security/context/web/HttpSessionSecurityContextRepositoryTests.java index 22e40acadd..753efd33a1 100644 --- a/core/src/test/java/org/springframework/security/context/HttpSessionSecurityContextRepositoryTests.java +++ b/web/src/test/java/org/springframework/security/context/web/HttpSessionSecurityContextRepositoryTests.java @@ -1,4 +1,4 @@ -package org.springframework.security.context; +package org.springframework.security.context.web; import static org.junit.Assert.*; @@ -6,6 +6,8 @@ import org.junit.Test; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.security.Authentication; +import org.springframework.security.context.SecurityContext; +import org.springframework.security.context.SecurityContextHolder; import org.springframework.security.providers.TestingAuthenticationToken; public class HttpSessionSecurityContextRepositoryTests { diff --git a/core/src/test/java/org/springframework/security/context/SecurityContextPersistenceFilterTests.java b/web/src/test/java/org/springframework/security/context/web/SecurityContextPersistenceFilterTests.java similarity index 96% rename from core/src/test/java/org/springframework/security/context/SecurityContextPersistenceFilterTests.java rename to web/src/test/java/org/springframework/security/context/web/SecurityContextPersistenceFilterTests.java index c842e40e35..b9aa785bbc 100644 --- a/core/src/test/java/org/springframework/security/context/SecurityContextPersistenceFilterTests.java +++ b/web/src/test/java/org/springframework/security/context/web/SecurityContextPersistenceFilterTests.java @@ -1,4 +1,4 @@ -package org.springframework.security.context; +package org.springframework.security.context.web; import static org.junit.Assert.*; @@ -18,6 +18,9 @@ import org.junit.After; import org.junit.Test; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; +import org.springframework.security.context.SecurityContext; +import org.springframework.security.context.SecurityContextHolder; +import org.springframework.security.context.SecurityContextImpl; import org.springframework.security.providers.TestingAuthenticationToken; import org.springframework.security.ui.FilterChainOrder; diff --git a/core/src/test/java/org/springframework/security/expression/support/WebSecurityExpressionRootTests.java b/web/src/test/java/org/springframework/security/expression/web/support/WebSecurityExpressionRootTests.java similarity index 95% rename from core/src/test/java/org/springframework/security/expression/support/WebSecurityExpressionRootTests.java rename to web/src/test/java/org/springframework/security/expression/web/support/WebSecurityExpressionRootTests.java index a833459e87..00008fa7bb 100644 --- a/core/src/test/java/org/springframework/security/expression/support/WebSecurityExpressionRootTests.java +++ b/web/src/test/java/org/springframework/security/expression/web/support/WebSecurityExpressionRootTests.java @@ -1,4 +1,4 @@ -package org.springframework.security.expression.support; +package org.springframework.security.expression.web.support; import static org.junit.Assert.*; @@ -8,7 +8,7 @@ import org.junit.Test; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.security.Authentication; import org.springframework.security.intercept.web.FilterInvocation; -import org.springframework.security.util.FilterInvocationUtils; +import org.springframework.security.web.util.FilterInvocationUtils; /** * Tests for {@link WebSecurityExpressionRoot}. diff --git a/core/src/test/java/org/springframework/security/intercept/web/DefaultFilterInvocationSecurityMetadataSourceTests.java b/web/src/test/java/org/springframework/security/intercept/web/DefaultFilterInvocationSecurityMetadataSourceTests.java similarity index 98% rename from core/src/test/java/org/springframework/security/intercept/web/DefaultFilterInvocationSecurityMetadataSourceTests.java rename to web/src/test/java/org/springframework/security/intercept/web/DefaultFilterInvocationSecurityMetadataSourceTests.java index 8678bdb07b..9c09d5d730 100644 --- a/core/src/test/java/org/springframework/security/intercept/web/DefaultFilterInvocationSecurityMetadataSourceTests.java +++ b/web/src/test/java/org/springframework/security/intercept/web/DefaultFilterInvocationSecurityMetadataSourceTests.java @@ -16,17 +16,19 @@ package org.springframework.security.intercept.web; import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; import java.util.LinkedHashMap; import java.util.List; +import javax.servlet.FilterChain; + import org.junit.Test; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.security.ConfigAttribute; import org.springframework.security.SecurityConfig; import org.springframework.security.util.AntUrlPathMatcher; -import org.springframework.security.util.MockFilterChain; /** * Tests parts of {@link DefaultFilterInvocationSecurityMetadataSource} not tested by {@link @@ -185,6 +187,6 @@ public class DefaultFilterInvocationSecurityMetadataSourceTests { request.setServletPath(path); - return new FilterInvocation(request, new MockHttpServletResponse(), new MockFilterChain()); + return new FilterInvocation(request, new MockHttpServletResponse(), mock(FilterChain.class)); } } diff --git a/core/src/test/java/org/springframework/security/intercept/web/FilterInvocationTests.java b/web/src/test/java/org/springframework/security/intercept/web/FilterInvocationTests.java similarity index 90% rename from core/src/test/java/org/springframework/security/intercept/web/FilterInvocationTests.java rename to web/src/test/java/org/springframework/security/intercept/web/FilterInvocationTests.java index e58f63cb83..224cb40d2a 100644 --- a/core/src/test/java/org/springframework/security/intercept/web/FilterInvocationTests.java +++ b/web/src/test/java/org/springframework/security/intercept/web/FilterInvocationTests.java @@ -15,13 +15,14 @@ package org.springframework.security.intercept.web; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; + +import javax.servlet.FilterChain; import org.junit.Test; - import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; -import org.springframework.security.util.MockFilterChain; /** * Tests {@link FilterInvocation}. @@ -46,7 +47,7 @@ public class FilterInvocationTests { request.setRequestURI("/mycontext/HelloWorld/some/more/segments.html"); MockHttpServletResponse response = new MockHttpServletResponse(); - MockFilterChain chain = new MockFilterChain(); + FilterChain chain = mock(FilterChain.class); FilterInvocation fi = new FilterInvocation(request, response, chain); assertEquals(request, fi.getRequest()); assertEquals(request, fi.getHttpRequest()); @@ -69,17 +70,15 @@ public class FilterInvocationTests { @Test(expected=IllegalArgumentException.class) public void testRejectsNullServletRequest() { MockHttpServletResponse response = new MockHttpServletResponse(); - MockFilterChain chain = new MockFilterChain(); - new FilterInvocation(null, response, chain); + new FilterInvocation(null, response, mock(FilterChain.class)); } @Test(expected=IllegalArgumentException.class) public void testRejectsNullServletResponse() { MockHttpServletRequest request = new MockHttpServletRequest(null, null); - MockFilterChain chain = new MockFilterChain(); - new FilterInvocation(request, null, chain); + new FilterInvocation(request, null, mock(FilterChain.class)); } @Test @@ -94,8 +93,7 @@ public class FilterInvocationTests { request.setRequestURI("/mycontext/HelloWorld"); MockHttpServletResponse response = new MockHttpServletResponse(); - MockFilterChain chain = new MockFilterChain(); - FilterInvocation fi = new FilterInvocation(request, response, chain); + FilterInvocation fi = new FilterInvocation(request, response, mock(FilterChain.class)); assertEquals("/HelloWorld?foo=bar", fi.getRequestUrl()); assertEquals("FilterInvocation: URL: /HelloWorld?foo=bar", fi.toString()); assertEquals("http://www.example.com/mycontext/HelloWorld?foo=bar", fi.getFullRequestUrl()); @@ -112,8 +110,7 @@ public class FilterInvocationTests { request.setRequestURI("/mycontext/HelloWorld"); MockHttpServletResponse response = new MockHttpServletResponse(); - MockFilterChain chain = new MockFilterChain(); - FilterInvocation fi = new FilterInvocation(request, response, chain); + FilterInvocation fi = new FilterInvocation(request, response, mock(FilterChain.class)); assertEquals("/HelloWorld", fi.getRequestUrl()); assertEquals("FilterInvocation: URL: /HelloWorld", fi.toString()); assertEquals("http://www.example.com/mycontext/HelloWorld", fi.getFullRequestUrl()); diff --git a/core/src/test/java/org/springframework/security/intercept/web/FilterSecurityInterceptorTests.java b/web/src/test/java/org/springframework/security/intercept/web/FilterSecurityInterceptorTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/intercept/web/FilterSecurityInterceptorTests.java rename to web/src/test/java/org/springframework/security/intercept/web/FilterSecurityInterceptorTests.java diff --git a/core/src/test/java/org/springframework/security/intercept/web/RequestKeyTests.java b/web/src/test/java/org/springframework/security/intercept/web/RequestKeyTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/intercept/web/RequestKeyTests.java rename to web/src/test/java/org/springframework/security/intercept/web/RequestKeyTests.java diff --git a/core/src/test/java/org/springframework/security/intercept/web/WebInvocationPrivilegeEvaluatorTests.java b/web/src/test/java/org/springframework/security/intercept/web/WebInvocationPrivilegeEvaluatorTests.java similarity index 98% rename from core/src/test/java/org/springframework/security/intercept/web/WebInvocationPrivilegeEvaluatorTests.java rename to web/src/test/java/org/springframework/security/intercept/web/WebInvocationPrivilegeEvaluatorTests.java index 59945a5349..4de6af79c6 100644 --- a/core/src/test/java/org/springframework/security/intercept/web/WebInvocationPrivilegeEvaluatorTests.java +++ b/web/src/test/java/org/springframework/security/intercept/web/WebInvocationPrivilegeEvaluatorTests.java @@ -35,7 +35,7 @@ import org.springframework.security.MockApplicationEventPublisher; import org.springframework.security.RunAsManager; import org.springframework.security.context.SecurityContextHolder; import org.springframework.security.providers.TestingAuthenticationToken; -import org.springframework.security.util.FilterInvocationUtils; +import org.springframework.security.web.util.FilterInvocationUtils; /** diff --git a/core/src/test/java/org/springframework/security/securechannel/ChannelDecisionManagerImplTests.java b/web/src/test/java/org/springframework/security/securechannel/ChannelDecisionManagerImplTests.java similarity index 96% rename from core/src/test/java/org/springframework/security/securechannel/ChannelDecisionManagerImplTests.java rename to web/src/test/java/org/springframework/security/securechannel/ChannelDecisionManagerImplTests.java index 7054281d30..7ceda60279 100644 --- a/core/src/test/java/org/springframework/security/securechannel/ChannelDecisionManagerImplTests.java +++ b/web/src/test/java/org/springframework/security/securechannel/ChannelDecisionManagerImplTests.java @@ -15,25 +15,24 @@ package org.springframework.security.securechannel; -import junit.framework.TestCase; - -import org.springframework.security.ConfigAttribute; -import org.springframework.security.SecurityConfig; - -import org.springframework.security.intercept.web.FilterInvocation; -import org.springframework.security.util.MockFilterChain; - -import org.springframework.mock.web.MockHttpServletRequest; -import org.springframework.mock.web.MockHttpServletResponse; +import static org.mockito.Mockito.mock; import java.io.IOException; - import java.util.Iterator; import java.util.List; import java.util.Vector; +import javax.servlet.FilterChain; import javax.servlet.ServletException; +import junit.framework.TestCase; + +import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.mock.web.MockHttpServletResponse; +import org.springframework.security.ConfigAttribute; +import org.springframework.security.SecurityConfig; +import org.springframework.security.intercept.web.FilterInvocation; + /** * Tests {@link ChannelDecisionManagerImpl}. @@ -94,8 +93,7 @@ public class ChannelDecisionManagerImplTests extends TestCase { MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); - MockFilterChain chain = new MockFilterChain(); - FilterInvocation fi = new FilterInvocation(request, response, chain); + FilterInvocation fi = new FilterInvocation(request, response, mock(FilterChain.class)); List cad = SecurityConfig.createList("xyz"); @@ -113,8 +111,7 @@ public class ChannelDecisionManagerImplTests extends TestCase { MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); - MockFilterChain chain = new MockFilterChain(); - FilterInvocation fi = new FilterInvocation(request, response, chain); + FilterInvocation fi = new FilterInvocation(request, response, mock(FilterChain.class)); cdm.decide(fi, SecurityConfig.createList(new String[]{"abc", "ANY_CHANNEL"})); assertFalse(fi.getResponse().isCommitted()); @@ -132,8 +129,7 @@ public class ChannelDecisionManagerImplTests extends TestCase { MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); - MockFilterChain chain = new MockFilterChain(); - FilterInvocation fi = new FilterInvocation(request, response, chain); + FilterInvocation fi = new FilterInvocation(request, response, mock(FilterChain.class)); cdm.decide(fi, SecurityConfig.createList("SOME_ATTRIBUTE_NO_PROCESSORS_SUPPORT")); assertFalse(fi.getResponse().isCommitted()); diff --git a/core/src/test/java/org/springframework/security/securechannel/ChannelProcessingFilterTests.java b/web/src/test/java/org/springframework/security/securechannel/ChannelProcessingFilterTests.java similarity index 95% rename from core/src/test/java/org/springframework/security/securechannel/ChannelProcessingFilterTests.java rename to web/src/test/java/org/springframework/security/securechannel/ChannelProcessingFilterTests.java index 40f7c1fcba..ac3fd5a97c 100644 --- a/core/src/test/java/org/springframework/security/securechannel/ChannelProcessingFilterTests.java +++ b/web/src/test/java/org/springframework/security/securechannel/ChannelProcessingFilterTests.java @@ -15,12 +15,14 @@ package org.springframework.security.securechannel; -import static org.junit.Assert.*; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; import java.io.IOException; import java.util.Collection; import java.util.List; +import javax.servlet.FilterChain; import javax.servlet.ServletException; import org.junit.Test; @@ -30,7 +32,6 @@ import org.springframework.security.ConfigAttribute; import org.springframework.security.SecurityConfig; import org.springframework.security.intercept.web.FilterInvocation; import org.springframework.security.intercept.web.FilterInvocationSecurityMetadataSource; -import org.springframework.security.util.MockFilterChain; /** @@ -96,9 +97,8 @@ public class ChannelProcessingFilterTests { request.setServletPath("/path"); MockHttpServletResponse response = new MockHttpServletResponse(); - MockFilterChain chain = new MockFilterChain(false); - filter.doFilter(request, response, chain); + filter.doFilter(request, response, mock(FilterChain.class)); } @Test @@ -115,9 +115,8 @@ public class ChannelProcessingFilterTests { request.setServletPath("/path"); MockHttpServletResponse response = new MockHttpServletResponse(); - MockFilterChain chain = new MockFilterChain(true); - filter.doFilter(request, response, chain); + filter.doFilter(request, response, mock(FilterChain.class)); } @Test @@ -135,9 +134,8 @@ public class ChannelProcessingFilterTests { request.setServletPath("/PATH_NOT_MATCHING_CONFIG_ATTRIBUTE"); MockHttpServletResponse response = new MockHttpServletResponse(); - MockFilterChain chain = new MockFilterChain(true); - filter.doFilter(request, response, chain); + filter.doFilter(request, response, mock(FilterChain.class)); } @Test diff --git a/core/src/test/java/org/springframework/security/securechannel/InsecureChannelProcessorTests.java b/web/src/test/java/org/springframework/security/securechannel/InsecureChannelProcessorTests.java similarity index 96% rename from core/src/test/java/org/springframework/security/securechannel/InsecureChannelProcessorTests.java rename to web/src/test/java/org/springframework/security/securechannel/InsecureChannelProcessorTests.java index e3dd36d28f..4db3c992ae 100644 --- a/core/src/test/java/org/springframework/security/securechannel/InsecureChannelProcessorTests.java +++ b/web/src/test/java/org/springframework/security/securechannel/InsecureChannelProcessorTests.java @@ -15,13 +15,16 @@ package org.springframework.security.securechannel; +import static org.mockito.Mockito.mock; + +import javax.servlet.FilterChain; + import junit.framework.TestCase; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.security.SecurityConfig; import org.springframework.security.intercept.web.FilterInvocation; -import org.springframework.security.util.MockFilterChain; /** @@ -42,8 +45,7 @@ public class InsecureChannelProcessorTests extends TestCase { request.setServerPort(8080); MockHttpServletResponse response = new MockHttpServletResponse(); - MockFilterChain chain = new MockFilterChain(); - FilterInvocation fi = new FilterInvocation(request, response, chain); + FilterInvocation fi = new FilterInvocation(request, response, mock(FilterChain.class)); InsecureChannelProcessor processor = new InsecureChannelProcessor(); processor.decide(fi, SecurityConfig.createList("SOME_IGNORED_ATTRIBUTE", "REQUIRES_INSECURE_CHANNEL")); @@ -63,8 +65,7 @@ public class InsecureChannelProcessorTests extends TestCase { request.setServerPort(8443); MockHttpServletResponse response = new MockHttpServletResponse(); - MockFilterChain chain = new MockFilterChain(); - FilterInvocation fi = new FilterInvocation(request, response, chain); + FilterInvocation fi = new FilterInvocation(request, response, mock(FilterChain.class)); InsecureChannelProcessor processor = new InsecureChannelProcessor(); processor.decide(fi, SecurityConfig.createList(new String[]{"SOME_IGNORED_ATTRIBUTE", "REQUIRES_INSECURE_CHANNEL"})); diff --git a/core/src/test/java/org/springframework/security/securechannel/RetryWithHttpEntryPointTests.java b/web/src/test/java/org/springframework/security/securechannel/RetryWithHttpEntryPointTests.java similarity index 98% rename from core/src/test/java/org/springframework/security/securechannel/RetryWithHttpEntryPointTests.java rename to web/src/test/java/org/springframework/security/securechannel/RetryWithHttpEntryPointTests.java index d8e6431f28..1d6ea37464 100644 --- a/core/src/test/java/org/springframework/security/securechannel/RetryWithHttpEntryPointTests.java +++ b/web/src/test/java/org/springframework/security/securechannel/RetryWithHttpEntryPointTests.java @@ -19,7 +19,7 @@ import junit.framework.TestCase; import org.springframework.security.MockPortResolver; -import org.springframework.security.util.PortMapperImpl; +import org.springframework.security.web.util.PortMapperImpl; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; diff --git a/core/src/test/java/org/springframework/security/securechannel/RetryWithHttpsEntryPointTests.java b/web/src/test/java/org/springframework/security/securechannel/RetryWithHttpsEntryPointTests.java similarity index 98% rename from core/src/test/java/org/springframework/security/securechannel/RetryWithHttpsEntryPointTests.java rename to web/src/test/java/org/springframework/security/securechannel/RetryWithHttpsEntryPointTests.java index 1063ac93bb..8335998a52 100644 --- a/core/src/test/java/org/springframework/security/securechannel/RetryWithHttpsEntryPointTests.java +++ b/web/src/test/java/org/springframework/security/securechannel/RetryWithHttpsEntryPointTests.java @@ -19,7 +19,7 @@ import junit.framework.TestCase; import org.springframework.security.MockPortResolver; -import org.springframework.security.util.PortMapperImpl; +import org.springframework.security.web.util.PortMapperImpl; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; diff --git a/core/src/test/java/org/springframework/security/securechannel/SecureChannelProcessorTests.java b/web/src/test/java/org/springframework/security/securechannel/SecureChannelProcessorTests.java similarity index 96% rename from core/src/test/java/org/springframework/security/securechannel/SecureChannelProcessorTests.java rename to web/src/test/java/org/springframework/security/securechannel/SecureChannelProcessorTests.java index f5f06968d3..2d0fee232a 100644 --- a/core/src/test/java/org/springframework/security/securechannel/SecureChannelProcessorTests.java +++ b/web/src/test/java/org/springframework/security/securechannel/SecureChannelProcessorTests.java @@ -15,11 +15,14 @@ package org.springframework.security.securechannel; +import static org.mockito.Mockito.mock; + +import javax.servlet.FilterChain; + import junit.framework.TestCase; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; -import org.springframework.security.util.MockFilterChain; import org.springframework.security.SecurityConfig; import org.springframework.security.intercept.web.FilterInvocation; @@ -44,8 +47,7 @@ public class SecureChannelProcessorTests extends TestCase { request.setServerPort(8443); MockHttpServletResponse response = new MockHttpServletResponse(); - MockFilterChain chain = new MockFilterChain(); - FilterInvocation fi = new FilterInvocation(request, response, chain); + FilterInvocation fi = new FilterInvocation(request, response, mock(FilterChain.class)); SecureChannelProcessor processor = new SecureChannelProcessor(); processor.decide(fi, SecurityConfig.createList("SOME_IGNORED_ATTRIBUTE", "REQUIRES_SECURE_CHANNEL")); @@ -63,8 +65,7 @@ public class SecureChannelProcessorTests extends TestCase { request.setServerPort(8080); MockHttpServletResponse response = new MockHttpServletResponse(); - MockFilterChain chain = new MockFilterChain(); - FilterInvocation fi = new FilterInvocation(request, response, chain); + FilterInvocation fi = new FilterInvocation(request, response, mock(FilterChain.class)); SecureChannelProcessor processor = new SecureChannelProcessor(); processor.decide(fi, SecurityConfig.createList(new String[]{"SOME_IGNORED_ATTRIBUTE", "REQUIRES_SECURE_CHANNEL"})); diff --git a/core/src/test/java/org/springframework/security/ui/AbstractProcessingFilterTests.java b/web/src/test/java/org/springframework/security/ui/AbstractProcessingFilterTests.java similarity index 99% rename from core/src/test/java/org/springframework/security/ui/AbstractProcessingFilterTests.java rename to web/src/test/java/org/springframework/security/ui/AbstractProcessingFilterTests.java index 49405473f8..ed2963d0e9 100644 --- a/core/src/test/java/org/springframework/security/ui/AbstractProcessingFilterTests.java +++ b/web/src/test/java/org/springframework/security/ui/AbstractProcessingFilterTests.java @@ -44,7 +44,7 @@ import org.springframework.security.ui.rememberme.NullRememberMeServices; import org.springframework.security.ui.rememberme.TokenBasedRememberMeServices; import org.springframework.security.ui.savedrequest.SavedRequest; import org.springframework.security.util.AuthorityUtils; -import org.springframework.security.util.PortResolverImpl; +import org.springframework.security.web.util.PortResolverImpl; /** diff --git a/core/src/test/java/org/springframework/security/providers/anonymous/AnonymousProcessingFilterTests.java b/web/src/test/java/org/springframework/security/ui/AnonymousProcessingFilterTests.java similarity index 98% rename from core/src/test/java/org/springframework/security/providers/anonymous/AnonymousProcessingFilterTests.java rename to web/src/test/java/org/springframework/security/ui/AnonymousProcessingFilterTests.java index 5f222296f4..0d2c233dba 100644 --- a/core/src/test/java/org/springframework/security/providers/anonymous/AnonymousProcessingFilterTests.java +++ b/web/src/test/java/org/springframework/security/ui/AnonymousProcessingFilterTests.java @@ -13,7 +13,7 @@ * limitations under the License. */ -package org.springframework.security.providers.anonymous; +package org.springframework.security.ui; import junit.framework.TestCase; @@ -26,6 +26,7 @@ import org.springframework.security.context.SecurityContextHolder; import org.springframework.security.providers.TestingAuthenticationToken; +import org.springframework.security.ui.anonymous.AnonymousProcessingFilter; import org.springframework.security.userdetails.memory.UserAttribute; import org.springframework.mock.web.MockHttpServletRequest; diff --git a/core/src/test/java/org/springframework/security/ui/AuthenticationDetailsSourceImplTests.java b/web/src/test/java/org/springframework/security/ui/AuthenticationDetailsSourceImplTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/AuthenticationDetailsSourceImplTests.java rename to web/src/test/java/org/springframework/security/ui/AuthenticationDetailsSourceImplTests.java diff --git a/core/src/test/java/org/springframework/security/ui/ExceptionTranslationFilterTests.java b/web/src/test/java/org/springframework/security/ui/ExceptionTranslationFilterTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/ExceptionTranslationFilterTests.java rename to web/src/test/java/org/springframework/security/ui/ExceptionTranslationFilterTests.java diff --git a/core/src/test/java/org/springframework/security/ui/SavedRequestAwareAuthenticationSuccessHandlerTests.java b/web/src/test/java/org/springframework/security/ui/SavedRequestAwareAuthenticationSuccessHandlerTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/SavedRequestAwareAuthenticationSuccessHandlerTests.java rename to web/src/test/java/org/springframework/security/ui/SavedRequestAwareAuthenticationSuccessHandlerTests.java diff --git a/core/src/test/java/org/springframework/security/ui/SessionFixationProtectionFilterTests.java b/web/src/test/java/org/springframework/security/ui/SessionFixationProtectionFilterTests.java similarity index 97% rename from core/src/test/java/org/springframework/security/ui/SessionFixationProtectionFilterTests.java rename to web/src/test/java/org/springframework/security/ui/SessionFixationProtectionFilterTests.java index f55a82aeb5..e519b0d95c 100644 --- a/core/src/test/java/org/springframework/security/ui/SessionFixationProtectionFilterTests.java +++ b/web/src/test/java/org/springframework/security/ui/SessionFixationProtectionFilterTests.java @@ -9,8 +9,8 @@ import org.junit.Test; import org.springframework.mock.web.MockFilterChain; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; -import org.springframework.security.context.HttpSessionSecurityContextRepository; import org.springframework.security.context.SecurityContextHolder; +import org.springframework.security.context.web.HttpSessionSecurityContextRepository; import org.springframework.security.providers.TestingAuthenticationToken; /** diff --git a/core/src/test/java/org/springframework/security/ui/basicauth/BasicProcessingFilterEntryPointTests.java b/web/src/test/java/org/springframework/security/ui/basicauth/BasicProcessingFilterEntryPointTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/basicauth/BasicProcessingFilterEntryPointTests.java rename to web/src/test/java/org/springframework/security/ui/basicauth/BasicProcessingFilterEntryPointTests.java diff --git a/core/src/test/java/org/springframework/security/ui/basicauth/BasicProcessingFilterTests.java b/web/src/test/java/org/springframework/security/ui/basicauth/BasicProcessingFilterTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/basicauth/BasicProcessingFilterTests.java rename to web/src/test/java/org/springframework/security/ui/basicauth/BasicProcessingFilterTests.java diff --git a/core/src/test/java/org/springframework/security/ui/digestauth/DigestProcessingFilterEntryPointTests.java b/web/src/test/java/org/springframework/security/ui/digestauth/DigestProcessingFilterEntryPointTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/digestauth/DigestProcessingFilterEntryPointTests.java rename to web/src/test/java/org/springframework/security/ui/digestauth/DigestProcessingFilterEntryPointTests.java diff --git a/core/src/test/java/org/springframework/security/ui/digestauth/DigestProcessingFilterTests.java b/web/src/test/java/org/springframework/security/ui/digestauth/DigestProcessingFilterTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/digestauth/DigestProcessingFilterTests.java rename to web/src/test/java/org/springframework/security/ui/digestauth/DigestProcessingFilterTests.java diff --git a/core/src/test/java/org/springframework/security/ui/logout/LogoutHandlerTests.java b/web/src/test/java/org/springframework/security/ui/logout/LogoutHandlerTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/logout/LogoutHandlerTests.java rename to web/src/test/java/org/springframework/security/ui/logout/LogoutHandlerTests.java diff --git a/core/src/test/java/org/springframework/security/ui/preauth/AbstractPreAuthenticatedProcessingFilterTests.java b/web/src/test/java/org/springframework/security/ui/preauth/AbstractPreAuthenticatedProcessingFilterTests.java similarity index 86% rename from core/src/test/java/org/springframework/security/ui/preauth/AbstractPreAuthenticatedProcessingFilterTests.java rename to web/src/test/java/org/springframework/security/ui/preauth/AbstractPreAuthenticatedProcessingFilterTests.java index fb625ea058..fa3411ff14 100644 --- a/core/src/test/java/org/springframework/security/ui/preauth/AbstractPreAuthenticatedProcessingFilterTests.java +++ b/web/src/test/java/org/springframework/security/ui/preauth/AbstractPreAuthenticatedProcessingFilterTests.java @@ -1,7 +1,9 @@ package org.springframework.security.ui.preauth; -import static org.junit.Assert.*; +import static org.junit.Assert.assertNull; +import static org.mockito.Mockito.mock; +import javax.servlet.FilterChain; import javax.servlet.http.HttpServletRequest; import org.junit.Before; @@ -11,11 +13,10 @@ import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.security.BadCredentialsException; import org.springframework.security.MockAuthenticationManager; import org.springframework.security.context.SecurityContextHolder; -import org.springframework.security.util.MockFilterChain; public class AbstractPreAuthenticatedProcessingFilterTests { private AbstractPreAuthenticatedProcessingFilter filter; - + @Before public void createFilter() { filter = new AbstractPreAuthenticatedProcessingFilter() { @@ -37,18 +38,18 @@ public class AbstractPreAuthenticatedProcessingFilterTests { @Test public void filterChainProceedsOnFailedAuthenticationByDefault() throws Exception { filter.setAuthenticationManager(new MockAuthenticationManager(false)); - filter.afterPropertiesSet(); - filter.doFilter(new MockHttpServletRequest(), new MockHttpServletResponse(), new MockFilterChain(true)); + filter.afterPropertiesSet(); + filter.doFilter(new MockHttpServletRequest(), new MockHttpServletResponse(), mock(FilterChain.class)); assertNull(SecurityContextHolder.getContext().getAuthentication()); - } - + } + /* SEC-881 */ @Test(expected=BadCredentialsException.class) public void exceptionIsThrownOnFailedAuthenticationIfContinueFilterChainOnUnsuccessfulAuthenticationSetToFalse() throws Exception { filter.setContinueFilterChainOnUnsuccessfulAuthentication(false); filter.setAuthenticationManager(new MockAuthenticationManager(false)); - filter.afterPropertiesSet(); - filter.doFilter(new MockHttpServletRequest(), new MockHttpServletResponse(), new MockFilterChain(false)); + filter.afterPropertiesSet(); + filter.doFilter(new MockHttpServletRequest(), new MockHttpServletResponse(), mock(FilterChain.class)); assertNull(SecurityContextHolder.getContext().getAuthentication()); } diff --git a/core/src/test/java/org/springframework/security/ui/preauth/PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetailsTests.java b/web/src/test/java/org/springframework/security/ui/preauth/PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetailsTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/preauth/PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetailsTests.java rename to web/src/test/java/org/springframework/security/ui/preauth/PreAuthenticatedGrantedAuthoritiesWebAuthenticationDetailsTests.java diff --git a/core/src/test/java/org/springframework/security/ui/preauth/PreAuthenticatedProcessingFilterEntryPointTests.java b/web/src/test/java/org/springframework/security/ui/preauth/PreAuthenticatedProcessingFilterEntryPointTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/preauth/PreAuthenticatedProcessingFilterEntryPointTests.java rename to web/src/test/java/org/springframework/security/ui/preauth/PreAuthenticatedProcessingFilterEntryPointTests.java diff --git a/core/src/test/java/org/springframework/security/ui/preauth/PreAuthenticatedProcessingFilterTests.java b/web/src/test/java/org/springframework/security/ui/preauth/PreAuthenticatedProcessingFilterTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/preauth/PreAuthenticatedProcessingFilterTests.java rename to web/src/test/java/org/springframework/security/ui/preauth/PreAuthenticatedProcessingFilterTests.java diff --git a/core/src/test/java/org/springframework/security/ui/preauth/header/RequestHeaderPreAuthenticatedProcessingFilterTests.java b/web/src/test/java/org/springframework/security/ui/preauth/header/RequestHeaderPreAuthenticatedProcessingFilterTests.java similarity index 94% rename from core/src/test/java/org/springframework/security/ui/preauth/header/RequestHeaderPreAuthenticatedProcessingFilterTests.java rename to web/src/test/java/org/springframework/security/ui/preauth/header/RequestHeaderPreAuthenticatedProcessingFilterTests.java index c5513434bb..99f4bd6c63 100644 --- a/core/src/test/java/org/springframework/security/ui/preauth/header/RequestHeaderPreAuthenticatedProcessingFilterTests.java +++ b/web/src/test/java/org/springframework/security/ui/preauth/header/RequestHeaderPreAuthenticatedProcessingFilterTests.java @@ -3,6 +3,7 @@ package org.springframework.security.ui.preauth.header; import static org.junit.Assert.*; import org.junit.After; +import org.junit.Before; import org.junit.Test; import org.springframework.mock.web.MockFilterChain; import org.springframework.mock.web.MockHttpServletRequest; @@ -12,17 +13,18 @@ import org.springframework.security.context.SecurityContextHolder; import org.springframework.security.ui.preauth.PreAuthenticatedCredentialsNotFoundException; /** - * + * * @author Luke Taylor * @version $Id$ */ public class RequestHeaderPreAuthenticatedProcessingFilterTests { - + @After + @Before public void clearContext() { SecurityContextHolder.clearContext(); } - + @Test(expected = PreAuthenticatedCredentialsNotFoundException.class) public void rejectsMissingHeader() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(); @@ -30,10 +32,10 @@ public class RequestHeaderPreAuthenticatedProcessingFilterTests { MockFilterChain chain = new MockFilterChain(); RequestHeaderPreAuthenticatedProcessingFilter filter = new RequestHeaderPreAuthenticatedProcessingFilter(); filter.getOrder(); - + filter.doFilter(request, response, chain); } - + @Test public void defaultsToUsingSiteminderHeader() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(); @@ -42,11 +44,11 @@ public class RequestHeaderPreAuthenticatedProcessingFilterTests { MockFilterChain chain = new MockFilterChain(); RequestHeaderPreAuthenticatedProcessingFilter filter = new RequestHeaderPreAuthenticatedProcessingFilter(); filter.setAuthenticationManager(new MockAuthenticationManager()); - + filter.doFilter(request, response, chain); assertNotNull(SecurityContextHolder.getContext().getAuthentication()); assertEquals("cat", SecurityContextHolder.getContext().getAuthentication().getName()); - assertEquals("N/A", SecurityContextHolder.getContext().getAuthentication().getCredentials()); + assertEquals("N/A", SecurityContextHolder.getContext().getAuthentication().getCredentials()); } @Test @@ -56,28 +58,28 @@ public class RequestHeaderPreAuthenticatedProcessingFilterTests { MockHttpServletResponse response = new MockHttpServletResponse(); MockFilterChain chain = new MockFilterChain(); RequestHeaderPreAuthenticatedProcessingFilter filter = new RequestHeaderPreAuthenticatedProcessingFilter(); - filter.setAuthenticationManager(new MockAuthenticationManager()); + filter.setAuthenticationManager(new MockAuthenticationManager()); filter.setPrincipalRequestHeader("myUsernameHeader"); - + filter.doFilter(request, response, chain); assertNotNull(SecurityContextHolder.getContext().getAuthentication()); assertEquals("wolfman", SecurityContextHolder.getContext().getAuthentication().getName()); } - + @Test public void credentialsAreRetrievedIfHeaderNameIsSet() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(); MockHttpServletResponse response = new MockHttpServletResponse(); MockFilterChain chain = new MockFilterChain(); RequestHeaderPreAuthenticatedProcessingFilter filter = new RequestHeaderPreAuthenticatedProcessingFilter(); - filter.setAuthenticationManager(new MockAuthenticationManager()); + filter.setAuthenticationManager(new MockAuthenticationManager()); filter.setCredentialsRequestHeader("myCredentialsHeader"); request.addHeader("SM_USER", "cat"); request.addHeader("myCredentialsHeader", "catspassword"); - + filter.doFilter(request, response, chain); assertNotNull(SecurityContextHolder.getContext().getAuthentication()); - assertEquals("catspassword", SecurityContextHolder.getContext().getAuthentication().getCredentials()); - } - + assertEquals("catspassword", SecurityContextHolder.getContext().getAuthentication().getCredentials()); + } + } diff --git a/core/src/test/java/org/springframework/security/ui/preauth/j2ee/J2eeBasedPreAuthenticatedWebAuthenticationDetailsSourceTests.java b/web/src/test/java/org/springframework/security/ui/preauth/j2ee/J2eeBasedPreAuthenticatedWebAuthenticationDetailsSourceTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/preauth/j2ee/J2eeBasedPreAuthenticatedWebAuthenticationDetailsSourceTests.java rename to web/src/test/java/org/springframework/security/ui/preauth/j2ee/J2eeBasedPreAuthenticatedWebAuthenticationDetailsSourceTests.java diff --git a/core/src/test/java/org/springframework/security/ui/preauth/j2ee/J2eePreAuthenticatedProcessingFilterTests.java b/web/src/test/java/org/springframework/security/ui/preauth/j2ee/J2eePreAuthenticatedProcessingFilterTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/preauth/j2ee/J2eePreAuthenticatedProcessingFilterTests.java rename to web/src/test/java/org/springframework/security/ui/preauth/j2ee/J2eePreAuthenticatedProcessingFilterTests.java diff --git a/core/src/test/java/org/springframework/security/ui/preauth/j2ee/WebXmlJ2eeDefinedRolesRetrieverTests.java b/web/src/test/java/org/springframework/security/ui/preauth/j2ee/WebXmlJ2eeDefinedRolesRetrieverTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/preauth/j2ee/WebXmlJ2eeDefinedRolesRetrieverTests.java rename to web/src/test/java/org/springframework/security/ui/preauth/j2ee/WebXmlJ2eeDefinedRolesRetrieverTests.java diff --git a/core/src/test/java/org/springframework/security/ui/preauth/x509/SubjectDnX509PrincipalExtractorTests.java b/web/src/test/java/org/springframework/security/ui/preauth/x509/SubjectDnX509PrincipalExtractorTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/preauth/x509/SubjectDnX509PrincipalExtractorTests.java rename to web/src/test/java/org/springframework/security/ui/preauth/x509/SubjectDnX509PrincipalExtractorTests.java diff --git a/core/src/test/java/org/springframework/security/ui/preauth/x509/X509TestUtils.java b/web/src/test/java/org/springframework/security/ui/preauth/x509/X509TestUtils.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/preauth/x509/X509TestUtils.java rename to web/src/test/java/org/springframework/security/ui/preauth/x509/X509TestUtils.java diff --git a/core/src/test/java/org/springframework/security/ui/rememberme/AbstractRememberMeServicesTests.java b/web/src/test/java/org/springframework/security/ui/rememberme/AbstractRememberMeServicesTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/rememberme/AbstractRememberMeServicesTests.java rename to web/src/test/java/org/springframework/security/ui/rememberme/AbstractRememberMeServicesTests.java diff --git a/core/src/test/java/org/springframework/security/ui/rememberme/JdbcTokenRepositoryImplTests.java b/web/src/test/java/org/springframework/security/ui/rememberme/JdbcTokenRepositoryImplTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/rememberme/JdbcTokenRepositoryImplTests.java rename to web/src/test/java/org/springframework/security/ui/rememberme/JdbcTokenRepositoryImplTests.java diff --git a/core/src/test/java/org/springframework/security/ui/rememberme/NullRememberMeServicesTests.java b/web/src/test/java/org/springframework/security/ui/rememberme/NullRememberMeServicesTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/rememberme/NullRememberMeServicesTests.java rename to web/src/test/java/org/springframework/security/ui/rememberme/NullRememberMeServicesTests.java diff --git a/core/src/test/java/org/springframework/security/ui/rememberme/PersistentTokenBasedRememberMeServicesTests.java b/web/src/test/java/org/springframework/security/ui/rememberme/PersistentTokenBasedRememberMeServicesTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/rememberme/PersistentTokenBasedRememberMeServicesTests.java rename to web/src/test/java/org/springframework/security/ui/rememberme/PersistentTokenBasedRememberMeServicesTests.java diff --git a/core/src/test/java/org/springframework/security/ui/rememberme/RememberMeProcessingFilterTests.java b/web/src/test/java/org/springframework/security/ui/rememberme/RememberMeProcessingFilterTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/rememberme/RememberMeProcessingFilterTests.java rename to web/src/test/java/org/springframework/security/ui/rememberme/RememberMeProcessingFilterTests.java diff --git a/core/src/test/java/org/springframework/security/ui/rememberme/TokenBasedRememberMeServicesTests.java b/web/src/test/java/org/springframework/security/ui/rememberme/TokenBasedRememberMeServicesTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/rememberme/TokenBasedRememberMeServicesTests.java rename to web/src/test/java/org/springframework/security/ui/rememberme/TokenBasedRememberMeServicesTests.java diff --git a/core/src/test/java/org/springframework/security/ui/savedrequest/SavedCookieTests.java b/web/src/test/java/org/springframework/security/ui/savedrequest/SavedCookieTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/savedrequest/SavedCookieTests.java rename to web/src/test/java/org/springframework/security/ui/savedrequest/SavedCookieTests.java diff --git a/core/src/test/java/org/springframework/security/ui/savedrequest/SavedRequestTests.java b/web/src/test/java/org/springframework/security/ui/savedrequest/SavedRequestTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/savedrequest/SavedRequestTests.java rename to web/src/test/java/org/springframework/security/ui/savedrequest/SavedRequestTests.java diff --git a/core/src/test/java/org/springframework/security/ui/session/HttpSessionEventPublisherTests.java b/web/src/test/java/org/springframework/security/ui/session/HttpSessionEventPublisherTests.java similarity index 86% rename from core/src/test/java/org/springframework/security/ui/session/HttpSessionEventPublisherTests.java rename to web/src/test/java/org/springframework/security/ui/session/HttpSessionEventPublisherTests.java index f2d0697175..207327688c 100644 --- a/core/src/test/java/org/springframework/security/ui/session/HttpSessionEventPublisherTests.java +++ b/web/src/test/java/org/springframework/security/ui/session/HttpSessionEventPublisherTests.java @@ -15,13 +15,15 @@ package org.springframework.security.ui.session; -import junit.framework.TestCase; +import static org.junit.Assert.*; + +import javax.servlet.http.HttpSessionEvent; + +import org.junit.Test; import org.springframework.mock.web.MockHttpSession; import org.springframework.mock.web.MockServletContext; import org.springframework.web.context.support.StaticWebApplicationContext; -import javax.servlet.http.HttpSessionEvent; - /** * The HttpSessionEventPublisher tests @@ -29,13 +31,14 @@ import javax.servlet.http.HttpSessionEvent; * @author Ray Krueger * @version $Id$ */ -public class HttpSessionEventPublisherTests extends TestCase { +public class HttpSessionEventPublisherTests { //~ Methods ======================================================================================================== - /** + /** * It's not that complicated so we'll just run it straight through here. */ - public void testPublisher() { + @Test + public void publishedEventIsReceivedbyListener() { HttpSessionEventPublisher publisher = new HttpSessionEventPublisher(); StaticWebApplicationContext context = new StaticWebApplicationContext(); @@ -44,11 +47,11 @@ public class HttpSessionEventPublisherTests extends TestCase { servletContext.setAttribute(StaticWebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, context); context.setServletContext(servletContext); - context.registerSingleton("listener", TestListener.class, null); + context.registerSingleton("listener", MockApplicationListener.class, null); context.refresh(); MockHttpSession session = new MockHttpSession(servletContext); - TestListener listener = (TestListener) context.getBean("listener"); + MockApplicationListener listener = (MockApplicationListener) context.getBean("listener"); HttpSessionEvent event = new HttpSessionEvent(session); @@ -65,6 +68,5 @@ public class HttpSessionEventPublisherTests extends TestCase { assertNotNull(listener.getDestroyedEvent()); assertNull(listener.getCreatedEvent()); assertEquals(session, listener.getDestroyedEvent().getSession()); - } } diff --git a/core/src/test/java/org/springframework/security/ui/session/TestListener.java b/web/src/test/java/org/springframework/security/ui/session/MockApplicationListener.java similarity index 96% rename from core/src/test/java/org/springframework/security/ui/session/TestListener.java rename to web/src/test/java/org/springframework/security/ui/session/MockApplicationListener.java index fc3f7abce2..86a7c88ee8 100644 --- a/core/src/test/java/org/springframework/security/ui/session/TestListener.java +++ b/web/src/test/java/org/springframework/security/ui/session/MockApplicationListener.java @@ -24,7 +24,7 @@ import org.springframework.context.ApplicationListener; * * @author Ray Krueger */ -public class TestListener implements ApplicationListener { +public class MockApplicationListener implements ApplicationListener { //~ Instance fields ================================================================================================ private HttpSessionCreatedEvent createdEvent; diff --git a/core/src/test/java/org/springframework/security/ui/switchuser/SwitchUserProcessingFilterTests.java b/web/src/test/java/org/springframework/security/ui/switchuser/SwitchUserProcessingFilterTests.java similarity index 92% rename from core/src/test/java/org/springframework/security/ui/switchuser/SwitchUserProcessingFilterTests.java rename to web/src/test/java/org/springframework/security/ui/switchuser/SwitchUserProcessingFilterTests.java index 52a904f109..a52c5c5bb4 100644 --- a/core/src/test/java/org/springframework/security/ui/switchuser/SwitchUserProcessingFilterTests.java +++ b/web/src/test/java/org/springframework/security/ui/switchuser/SwitchUserProcessingFilterTests.java @@ -16,10 +16,13 @@ package org.springframework.security.ui.switchuser; import static org.junit.Assert.*; +import static org.mockito.Mockito.*; import java.util.ArrayList; import java.util.List; +import javax.servlet.FilterChain; + import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -41,7 +44,6 @@ import org.springframework.security.userdetails.UserDetailsService; import org.springframework.security.userdetails.UsernameNotFoundException; import org.springframework.security.util.AuthorityUtils; import org.springframework.security.util.FieldUtils; -import org.springframework.security.util.MockFilterChain; /** @@ -155,7 +157,9 @@ public class SwitchUserProcessingFilterTests { filter.afterPropertiesSet(); // Check it with no url set (should get a text response) - filter.doFilterHttp(request, response, new MockFilterChain(false)); + FilterChain chain = mock(FilterChain.class); + filter.doFilterHttp(request, response, chain); + verify(chain, never()).doFilter(request, response); assertEquals("Authentication Failed: User is disabled", response.getErrorMessage()); @@ -169,7 +173,9 @@ public class SwitchUserProcessingFilterTests { filter.afterPropertiesSet(); response = new MockHttpServletResponse(); - filter.doFilterHttp(request, response, new MockFilterChain(true)); + chain = mock(FilterChain.class); + filter.doFilterHttp(request, response, chain); + verify(chain, never()).doFilter(request, response); assertEquals("/mywebapp/switchfailed", response.getRedirectedUrl()); assertEquals("/switchfailed", FieldUtils.getFieldValue(filter, "switchFailureUrl")); @@ -227,7 +233,11 @@ public class SwitchUserProcessingFilterTests { filter.setSuccessHandler(new SimpleUrlAuthenticationSuccessHandler("/webapp/someOtherUrl")); // run 'exit' - filter.doFilter(request, new MockHttpServletResponse(), new MockFilterChain(false)); + FilterChain chain = mock(FilterChain.class); + MockHttpServletResponse response = new MockHttpServletResponse(); + filter.doFilter(request, response, chain); + + verify(chain, never()).doFilter(request, response); // check current user, should be back to original user (dano) Authentication targetAuth = SecurityContextHolder.getContext().getAuthentication(); @@ -249,7 +259,11 @@ public class SwitchUserProcessingFilterTests { filter.setExitUserUrl("/j_spring_security_exit_user"); // run 'exit', expect fail due to no current user - filter.doFilter(request, new MockHttpServletResponse(), new MockFilterChain(false)); + FilterChain chain = mock(FilterChain.class); + MockHttpServletResponse response = new MockHttpServletResponse(); + filter.doFilter(request, response, chain); + + verify(chain, never()).doFilter(request, response); } @Test @@ -259,14 +273,17 @@ public class SwitchUserProcessingFilterTests { request.addParameter(SwitchUserProcessingFilter.SPRING_SECURITY_SWITCH_USERNAME_KEY, "jacklord"); request.setRequestURI("/webapp/j_spring_security_switch_user"); - MockHttpServletResponse response = new MockHttpServletResponse(); - SwitchUserProcessingFilter filter = new SwitchUserProcessingFilter(); filter.setSwitchUserUrl("/j_spring_security_switch_user"); filter.setSuccessHandler(new SimpleUrlAuthenticationSuccessHandler("/someOtherUrl")); filter.setUserDetailsService(new MockUserDetailsService()); - filter.doFilter(request, response, new MockFilterChain(false)); + FilterChain chain = mock(FilterChain.class); + MockHttpServletResponse response = new MockHttpServletResponse(); + filter.doFilter(request, response, chain); + + verify(chain, never()).doFilter(request, response); + assertEquals("/webapp/someOtherUrl", response.getRedirectedUrl()); } @@ -282,8 +299,6 @@ public class SwitchUserProcessingFilterTests { request.addParameter(SwitchUserProcessingFilter.SPRING_SECURITY_SWITCH_USERNAME_KEY, "jacklord"); request.setRequestURI("/webapp/j_spring_security_switch_user"); - MockHttpServletResponse response = new MockHttpServletResponse(); - SwitchUserProcessingFilter filter = new SwitchUserProcessingFilter(); filter.setSwitchUserUrl("/j_spring_security_switch_user"); SimpleUrlAuthenticationSuccessHandler switchSuccessHandler = @@ -292,7 +307,13 @@ public class SwitchUserProcessingFilterTests { filter.setSuccessHandler(switchSuccessHandler); filter.setUserDetailsService(new MockUserDetailsService()); - filter.doFilter(request, response, new MockFilterChain(false)); + FilterChain chain = mock(FilterChain.class); + MockHttpServletResponse response = new MockHttpServletResponse(); + + filter.doFilter(request, response, chain); + + verify(chain, never()).doFilter(request, response); + assertEquals("/someOtherUrl", response.getRedirectedUrl()); } @@ -317,10 +338,11 @@ public class SwitchUserProcessingFilterTests { filter.setSwitchUserUrl("/j_spring_security_switch_user"); filter.setSuccessHandler(new SimpleUrlAuthenticationSuccessHandler("/webapp/someOtherUrl")); - MockFilterChain chain = new MockFilterChain(true); + FilterChain chain = mock(FilterChain.class); // test updates user token and context filter.doFilter(request, response, chain); + verify(chain, never()).doFilter(request, response); // check current user Authentication targetAuth = SecurityContextHolder.getContext().getAuthentication(); diff --git a/core/src/test/java/org/springframework/security/ui/webapp/AuthenticationProcessingFilterEntryPointTests.java b/web/src/test/java/org/springframework/security/ui/webapp/AuthenticationProcessingFilterEntryPointTests.java similarity index 99% rename from core/src/test/java/org/springframework/security/ui/webapp/AuthenticationProcessingFilterEntryPointTests.java rename to web/src/test/java/org/springframework/security/ui/webapp/AuthenticationProcessingFilterEntryPointTests.java index 0523d85bdb..bd78514e8f 100644 --- a/core/src/test/java/org/springframework/security/ui/webapp/AuthenticationProcessingFilterEntryPointTests.java +++ b/web/src/test/java/org/springframework/security/ui/webapp/AuthenticationProcessingFilterEntryPointTests.java @@ -19,7 +19,7 @@ import junit.framework.TestCase; import org.springframework.security.MockPortResolver; -import org.springframework.security.util.PortMapperImpl; +import org.springframework.security.web.util.PortMapperImpl; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; diff --git a/core/src/test/java/org/springframework/security/ui/webapp/AuthenticationProcessingFilterTests.java b/web/src/test/java/org/springframework/security/ui/webapp/AuthenticationProcessingFilterTests.java similarity index 100% rename from core/src/test/java/org/springframework/security/ui/webapp/AuthenticationProcessingFilterTests.java rename to web/src/test/java/org/springframework/security/ui/webapp/AuthenticationProcessingFilterTests.java diff --git a/core/src/test/java/org/springframework/security/ui/webapp/DefaultLoginPageGeneratingFilterTests.java b/web/src/test/java/org/springframework/security/ui/webapp/DefaultLoginPageGeneratingFilterTests.java similarity index 88% rename from core/src/test/java/org/springframework/security/ui/webapp/DefaultLoginPageGeneratingFilterTests.java rename to web/src/test/java/org/springframework/security/ui/webapp/DefaultLoginPageGeneratingFilterTests.java index bf7c06653e..f7e7d7d7fc 100644 --- a/core/src/test/java/org/springframework/security/ui/webapp/DefaultLoginPageGeneratingFilterTests.java +++ b/web/src/test/java/org/springframework/security/ui/webapp/DefaultLoginPageGeneratingFilterTests.java @@ -1,5 +1,8 @@ package org.springframework.security.ui.webapp; +import static org.mockito.Mockito.mock; + +import javax.servlet.FilterChain; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -10,7 +13,6 @@ import org.springframework.security.Authentication; import org.springframework.security.AuthenticationException; import org.springframework.security.ui.AbstractProcessingFilter; import org.springframework.security.ui.FilterChainOrder; -import org.springframework.security.util.MockFilterChain; /** * @@ -19,19 +21,20 @@ import org.springframework.security.util.MockFilterChain; * @since 2.5 */ public class DefaultLoginPageGeneratingFilterTests { + FilterChain chain = mock(FilterChain.class); @Test public void generatingPageWithAuthenticationProcessingFilterOnlyIsSuccessFul() throws Exception { DefaultLoginPageGeneratingFilter filter = new DefaultLoginPageGeneratingFilter(new AuthenticationProcessingFilter()); - filter.doFilter(new MockHttpServletRequest("GET", "/spring_security_login"), new MockHttpServletResponse(), new MockFilterChain(false)); - filter.doFilter(new MockHttpServletRequest("GET", "/spring_security_login;pathparam=unused"), new MockHttpServletResponse(), new MockFilterChain(false)); + filter.doFilter(new MockHttpServletRequest("GET", "/spring_security_login"), new MockHttpServletResponse(), chain); + filter.doFilter(new MockHttpServletRequest("GET", "/spring_security_login;pathparam=unused"), new MockHttpServletResponse(), chain); } @Test public void generatingPageWithOpenIdFilterOnlyIsSuccessFul() throws Exception { DefaultLoginPageGeneratingFilter filter = new DefaultLoginPageGeneratingFilter(new MockProcessingFilter()); - filter.doFilter(new MockHttpServletRequest("GET", "/spring_security_login"), new MockHttpServletResponse(), new MockFilterChain(false)); + filter.doFilter(new MockHttpServletRequest("GET", "/spring_security_login"), new MockHttpServletResponse(), chain); } // Fake OpenID filter (since it's not in this module diff --git a/core/src/test/java/org/springframework/security/util/MockFilter.java b/web/src/test/java/org/springframework/security/util/MockFilter.java similarity index 100% rename from core/src/test/java/org/springframework/security/util/MockFilter.java rename to web/src/test/java/org/springframework/security/util/MockFilter.java diff --git a/core/src/test/java/org/springframework/security/util/PortMapperImplTests.java b/web/src/test/java/org/springframework/security/util/PortMapperImplTests.java similarity index 98% rename from core/src/test/java/org/springframework/security/util/PortMapperImplTests.java rename to web/src/test/java/org/springframework/security/util/PortMapperImplTests.java index 26d9e275fd..2e98419707 100644 --- a/core/src/test/java/org/springframework/security/util/PortMapperImplTests.java +++ b/web/src/test/java/org/springframework/security/util/PortMapperImplTests.java @@ -20,6 +20,8 @@ import junit.framework.TestCase; import java.util.HashMap; import java.util.Map; +import org.springframework.security.web.util.PortMapperImpl; + /** * Tests {@link PortMapperImpl}. diff --git a/core/src/test/java/org/springframework/security/util/PortResolverImplTests.java b/web/src/test/java/org/springframework/security/util/PortResolverImplTests.java similarity index 96% rename from core/src/test/java/org/springframework/security/util/PortResolverImplTests.java rename to web/src/test/java/org/springframework/security/util/PortResolverImplTests.java index c78fd00fe0..b225152e04 100644 --- a/core/src/test/java/org/springframework/security/util/PortResolverImplTests.java +++ b/web/src/test/java/org/springframework/security/util/PortResolverImplTests.java @@ -18,6 +18,8 @@ package org.springframework.security.util; import junit.framework.TestCase; import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.security.web.util.PortMapperImpl; +import org.springframework.security.web.util.PortResolverImpl; /** diff --git a/core/src/test/java/org/springframework/security/wrapper/SavedRequestAwareWrapperTests.java b/web/src/test/java/org/springframework/security/wrapper/SavedRequestAwareWrapperTests.java similarity index 99% rename from core/src/test/java/org/springframework/security/wrapper/SavedRequestAwareWrapperTests.java rename to web/src/test/java/org/springframework/security/wrapper/SavedRequestAwareWrapperTests.java index 00b5fd0a03..cd19ac145b 100644 --- a/core/src/test/java/org/springframework/security/wrapper/SavedRequestAwareWrapperTests.java +++ b/web/src/test/java/org/springframework/security/wrapper/SavedRequestAwareWrapperTests.java @@ -13,7 +13,7 @@ import org.junit.Test; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.security.ui.savedrequest.FastHttpDateFormat; import org.springframework.security.ui.savedrequest.SavedRequest; -import org.springframework.security.util.PortResolverImpl; +import org.springframework.security.web.util.PortResolverImpl; public class SavedRequestAwareWrapperTests { diff --git a/core/src/test/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestFilterTests.java b/web/src/test/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestFilterTests.java similarity index 97% rename from core/src/test/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestFilterTests.java rename to web/src/test/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestFilterTests.java index 49009fc9b9..98ea22f67e 100644 --- a/core/src/test/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestFilterTests.java +++ b/web/src/test/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestFilterTests.java @@ -25,7 +25,7 @@ import org.jmock.integration.junit4.JUnit4Mockery; import org.junit.Test; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; -import org.springframework.security.util.PortResolverImpl; +import org.springframework.security.web.util.PortResolverImpl; /** diff --git a/core/src/test/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestWrapperTests.java b/web/src/test/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestWrapperTests.java similarity index 98% rename from core/src/test/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestWrapperTests.java rename to web/src/test/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestWrapperTests.java index 3727561966..4f0f2b27ce 100644 --- a/core/src/test/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestWrapperTests.java +++ b/web/src/test/java/org/springframework/security/wrapper/SecurityContextHolderAwareRequestWrapperTests.java @@ -23,7 +23,7 @@ import org.springframework.security.context.SecurityContextHolder; import org.springframework.security.providers.TestingAuthenticationToken; import org.springframework.security.userdetails.User; import org.springframework.security.util.AuthorityUtils; -import org.springframework.security.util.PortResolverImpl; +import org.springframework.security.web.util.PortResolverImpl; /**