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
This commit is contained in:
Dave Syer 2014-09-13 10:55:39 -05:00
parent bf0c8fc8bb
commit 437fb75424
4 changed files with 39 additions and 5 deletions

View File

@ -74,7 +74,7 @@ public class ManagementSecurityAutoConfigurationTests {
this.context.refresh();
assertNotNull(this.context.getBean(AuthenticationManagerBuilder.class));
// 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());
}
@ -144,7 +144,7 @@ public class ManagementSecurityAutoConfigurationTests {
this.context.refresh();
// Just the management endpoints (one filter) and ignores now plus the backup
// filter on app endpoints
assertEquals(8, this.context.getBean(FilterChainProxy.class).getFilterChains()
assertEquals(9, this.context.getBean(FilterChainProxy.class).getFilterChains()
.size());
}

View File

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

View File

@ -68,10 +68,10 @@ public class SecurityAutoConfigurationTests {
PropertyPlaceholderAutoConfiguration.class);
this.context.refresh();
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(
FilterChainProxy.class).getFilterChains();
assertEquals(5, filterChains.size());
assertEquals(6, filterChains.size());
}
@Test

View File

@ -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"));
}
}