Add /error to ignored paths for security autoconfig

Protecting /error doesn't make a great deal of sense and if it is
protected you don't get the ErrorPageFilter for the attempt at loading
it, so Tomcat renders its own HTML error page (when deployed as WAR).

Fixes gh-1548
pull/1588/head
Dave Syer 10 years ago
parent bf0c8fc8bb
commit 437fb75424

@ -74,7 +74,7 @@ public class ManagementSecurityAutoConfigurationTests {
this.context.refresh(); this.context.refresh();
assertNotNull(this.context.getBean(AuthenticationManagerBuilder.class)); assertNotNull(this.context.getBean(AuthenticationManagerBuilder.class));
// 6 for static resources, one for management endpoints and one for the rest // 6 for static resources, one for management endpoints and one for the rest
assertEquals(8, this.context.getBean(FilterChainProxy.class).getFilterChains() assertEquals(9, this.context.getBean(FilterChainProxy.class).getFilterChains()
.size()); .size());
} }
@ -144,7 +144,7 @@ public class ManagementSecurityAutoConfigurationTests {
this.context.refresh(); this.context.refresh();
// Just the management endpoints (one filter) and ignores now plus the backup // Just the management endpoints (one filter) and ignores now plus the backup
// filter on app endpoints // filter on app endpoints
assertEquals(8, this.context.getBean(FilterChainProxy.class).getFilterChains() assertEquals(9, this.context.getBean(FilterChainProxy.class).getFilterChains()
.size()); .size());
} }

@ -86,7 +86,7 @@ import org.springframework.web.servlet.support.RequestDataValueProcessor;
public class SpringBootWebSecurityConfiguration { public class SpringBootWebSecurityConfiguration {
private static List<String> DEFAULT_IGNORED = Arrays.asList("/css/**", "/js/**", private static List<String> DEFAULT_IGNORED = Arrays.asList("/css/**", "/js/**",
"/images/**", "/**/favicon.ico"); "/images/**", "/**/favicon.ico", "/error");
@Bean @Bean
@ConditionalOnMissingBean({ IgnoredPathsWebSecurityConfigurerAdapter.class }) @ConditionalOnMissingBean({ IgnoredPathsWebSecurityConfigurerAdapter.class })

@ -68,10 +68,10 @@ public class SecurityAutoConfigurationTests {
PropertyPlaceholderAutoConfiguration.class); PropertyPlaceholderAutoConfiguration.class);
this.context.refresh(); this.context.refresh();
assertNotNull(this.context.getBean(AuthenticationManagerBuilder.class)); assertNotNull(this.context.getBean(AuthenticationManagerBuilder.class));
// 4 for static resources and one for the rest // 5 for static resources and one for the rest
List<SecurityFilterChain> filterChains = this.context.getBean( List<SecurityFilterChain> filterChains = this.context.getBean(
FilterChainProxy.class).getFilterChains(); FilterChainProxy.class).getFilterChains();
assertEquals(5, filterChains.size()); assertEquals(6, filterChains.size());
} }
@Test @Test

@ -0,0 +1,34 @@
/*
* Copyright 2012-2014 the original author or authors.
*
* 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.boot.autoconfigure.security;
import org.junit.Test;
import static org.junit.Assert.assertTrue;
/**
* @author Dave Syer
*/
public class SpringBootWebSecurityConfigurationTests {
@Test
public void testDefaultIgnores() {
assertTrue(SpringBootWebSecurityConfiguration
.getIgnored(new SecurityProperties()).contains("/error"));
}
}
Loading…
Cancel
Save