|
|
|
@ -6,6 +6,7 @@ import org.springframework.security.intercept.web.FilterInvocationDefinitionSour |
|
|
|
import org.springframework.security.intercept.web.FilterInvocation; |
|
|
|
import org.springframework.security.intercept.web.FilterInvocation; |
|
|
|
import org.springframework.security.securechannel.ChannelProcessingFilter; |
|
|
|
import org.springframework.security.securechannel.ChannelProcessingFilter; |
|
|
|
import org.springframework.security.ui.ExceptionTranslationFilter; |
|
|
|
import org.springframework.security.ui.ExceptionTranslationFilter; |
|
|
|
|
|
|
|
import org.springframework.security.ui.SessionFixationProtectionFilter; |
|
|
|
import org.springframework.security.ui.preauth.x509.X509PreAuthenticatedProcessingFilter; |
|
|
|
import org.springframework.security.ui.preauth.x509.X509PreAuthenticatedProcessingFilter; |
|
|
|
import org.springframework.security.ui.basicauth.BasicProcessingFilter; |
|
|
|
import org.springframework.security.ui.basicauth.BasicProcessingFilter; |
|
|
|
import org.springframework.security.ui.logout.LogoutFilter; |
|
|
|
import org.springframework.security.ui.logout.LogoutFilter; |
|
|
|
@ -56,7 +57,7 @@ public class HttpSecurityBeanDefinitionParserTests { |
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
@Test |
|
|
|
public void httpAutoConfigSetsUpCorrectFilterList() { |
|
|
|
public void httpAutoConfigSetsUpCorrectFilterList() { |
|
|
|
setContext("<http auto-config='true'/>" + AUTH_PROVIDER_XML); |
|
|
|
setContext("<http auto-config='true' />" + AUTH_PROVIDER_XML); |
|
|
|
|
|
|
|
|
|
|
|
FilterChainProxy filterChainProxy = getFilterChainProxy(); |
|
|
|
FilterChainProxy filterChainProxy = getFilterChainProxy(); |
|
|
|
|
|
|
|
|
|
|
|
@ -66,11 +67,12 @@ public class HttpSecurityBeanDefinitionParserTests { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void checkAutoConfigFilters(List filterList) { |
|
|
|
private void checkAutoConfigFilters(List filterList) { |
|
|
|
assertEquals("Expected 10 filters in chain", 10, filterList.size()); |
|
|
|
assertEquals("Expected 11 filters in chain", 11, filterList.size()); |
|
|
|
|
|
|
|
|
|
|
|
Iterator filters = filterList.iterator(); |
|
|
|
Iterator filters = filterList.iterator(); |
|
|
|
|
|
|
|
|
|
|
|
assertTrue(filters.next() instanceof HttpSessionContextIntegrationFilter); |
|
|
|
assertTrue(filters.next() instanceof HttpSessionContextIntegrationFilter); |
|
|
|
|
|
|
|
assertTrue(filters.next() instanceof SessionFixationProtectionFilter); |
|
|
|
assertTrue(filters.next() instanceof LogoutFilter); |
|
|
|
assertTrue(filters.next() instanceof LogoutFilter); |
|
|
|
assertTrue(filters.next() instanceof AuthenticationProcessingFilter); |
|
|
|
assertTrue(filters.next() instanceof AuthenticationProcessingFilter); |
|
|
|
assertTrue(filters.next() instanceof DefaultLoginPageGeneratingFilter); |
|
|
|
assertTrue(filters.next() instanceof DefaultLoginPageGeneratingFilter); |
|
|
|
@ -185,7 +187,7 @@ public class HttpSecurityBeanDefinitionParserTests { |
|
|
|
|
|
|
|
|
|
|
|
List filters = filterChainProxy.getFilters("/someurl"); |
|
|
|
List filters = filterChainProxy.getFilters("/someurl"); |
|
|
|
|
|
|
|
|
|
|
|
assertEquals("Expected 11 filters in chain", 11, filters.size()); |
|
|
|
assertEquals("Expected 12 filters in chain", 12, filters.size()); |
|
|
|
|
|
|
|
|
|
|
|
assertTrue(filters.get(0) instanceof ChannelProcessingFilter); |
|
|
|
assertTrue(filters.get(0) instanceof ChannelProcessingFilter); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -216,7 +218,7 @@ public class HttpSecurityBeanDefinitionParserTests { |
|
|
|
"<b:bean id='userFilter2' class='org.springframework.security.util.MockFilter'/>"); |
|
|
|
"<b:bean id='userFilter2' class='org.springframework.security.util.MockFilter'/>"); |
|
|
|
List filters = getFilterChainProxy().getFilters("/someurl"); |
|
|
|
List filters = getFilterChainProxy().getFilters("/someurl"); |
|
|
|
|
|
|
|
|
|
|
|
assertEquals(11, filters.size()); |
|
|
|
assertEquals(12, filters.size()); |
|
|
|
assertTrue(filters.get(1) instanceof OrderedFilterBeanDefinitionDecorator.OrderedFilterDecorator); |
|
|
|
assertTrue(filters.get(1) instanceof OrderedFilterBeanDefinitionDecorator.OrderedFilterDecorator); |
|
|
|
assertEquals("userFilter", ((OrderedFilterBeanDefinitionDecorator.OrderedFilterDecorator)filters.get(1)).getBeanName()); |
|
|
|
assertEquals("userFilter", ((OrderedFilterBeanDefinitionDecorator.OrderedFilterDecorator)filters.get(1)).getBeanName()); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -242,7 +244,16 @@ public class HttpSecurityBeanDefinitionParserTests { |
|
|
|
"</http>" + AUTH_PROVIDER_XML); |
|
|
|
"</http>" + AUTH_PROVIDER_XML); |
|
|
|
List filters = getFilterChainProxy().getFilters("/someurl"); |
|
|
|
List filters = getFilterChainProxy().getFilters("/someurl"); |
|
|
|
|
|
|
|
|
|
|
|
assertTrue(filters.get(2) instanceof X509PreAuthenticatedProcessingFilter); |
|
|
|
assertTrue(filters.get(3) instanceof X509PreAuthenticatedProcessingFilter); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
|
|
|
public void disablingSessionProtectionRemovesFilter() throws Exception { |
|
|
|
|
|
|
|
setContext( |
|
|
|
|
|
|
|
"<http auto-config='true' session-fixation-protection='none'/>" + AUTH_PROVIDER_XML); |
|
|
|
|
|
|
|
List filters = getFilterChainProxy().getFilters("/someurl"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
assertFalse(filters.get(1) instanceof SessionFixationProtectionFilter); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void setContext(String context) { |
|
|
|
private void setContext(String context) { |
|
|
|
|