@ -267,7 +267,7 @@ public class HttpSecurityBeanDefinitionParserTests {
@@ -267,7 +267,7 @@ public class HttpSecurityBeanDefinitionParserTests {
assertEquals ( "/access-denied" , FieldUtils . getFieldValue ( etf , "accessDeniedHandler.errorPage" ) ) ;
}
@Test ( expected = BeanDefinitionStore Exception . class )
@Test ( expected = BeanCreation Exception . class )
public void invalidAccessDeniedUrlIsDetected ( ) throws Exception {
setContext ( "<http auto-config='true' access-denied-page='noLeadingSlash'/>" + AUTH_PROVIDER_XML ) ;
}
@ -318,6 +318,16 @@ public class HttpSecurityBeanDefinitionParserTests {
@@ -318,6 +318,16 @@ public class HttpSecurityBeanDefinitionParserTests {
assertEquals ( Integer . valueOf ( 9443 ) , pm . lookupHttpsPort ( 9080 ) ) ;
}
@Test
public void accessDeniedPageWorkWithPlaceholders ( ) throws Exception {
System . setProperty ( "accessDenied" , "/go-away" ) ;
setContext (
" <b:bean id='configurer' class='org.springframework.beans.factory.config.PropertyPlaceholderConfigurer'/>" +
" <http auto-config='true' access-denied-page='${accessDenied}'/>" + AUTH_PROVIDER_XML ) ;
ExceptionTranslationFilter filter = ( ExceptionTranslationFilter ) appContext . getBean ( BeanIds . EXCEPTION_TRANSLATION_FILTER ) ;
assertEquals ( "/go-away" , FieldUtils . getFieldValue ( filter , "accessDeniedHandler.errorPage" ) ) ;
}
@Test
public void externalFiltersAreTreatedCorrectly ( ) throws Exception {
// Decorated user-filters should be added to stack. The others should be ignored.