Polish DefaultFilters,Issue55Tests

Formatted HttpSecurity and WebSecurity configuration stacks
Removed unnecessary code

Issue gh-4939
This commit is contained in:
Josh Cummings 2019-09-16 13:56:17 -06:00
parent 950e6422a1
commit 1176d0cfdb
No known key found for this signature in database
GPG Key ID: 49EF60DD7FF83443
2 changed files with 34 additions and 29 deletions

View File

@ -15,8 +15,15 @@
*/ */
package org.springframework.security.config.annotation.web.configurers; package org.springframework.security.config.annotation.web.configurers;
import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;
import javax.servlet.Filter;
import javax.servlet.ServletException;
import org.junit.Rule; import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
@ -52,12 +59,6 @@ import org.springframework.security.web.servletapi.SecurityContextHolderAwareReq
import org.springframework.security.web.session.SessionManagementFilter; import org.springframework.security.web.session.SessionManagementFilter;
import org.springframework.security.web.util.matcher.AnyRequestMatcher; import org.springframework.security.web.util.matcher.AnyRequestMatcher;
import javax.servlet.Filter;
import javax.servlet.ServletException;
import java.io.IOException;
import java.util.List;
import java.util.stream.Collectors;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
/** /**
@ -79,9 +80,11 @@ public class DefaultFiltersTests {
static class FilterChainProxyBuilderMissingConfig { static class FilterChainProxyBuilderMissingConfig {
@Autowired @Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
// @formatter:off
auth auth
.inMemoryAuthentication() .inMemoryAuthentication()
.withUser("user").password("password").roles("USER"); .withUser("user").password("password").roles("USER");
// @formatter:on
} }
} }
@ -146,17 +149,21 @@ public class DefaultFiltersTests {
@EnableWebSecurity @EnableWebSecurity
static class FilterChainProxyBuilderIgnoringConfig extends WebSecurityConfigurerAdapter { static class FilterChainProxyBuilderIgnoringConfig extends WebSecurityConfigurerAdapter {
@Override @Override
public void configure(WebSecurity builder) throws Exception { public void configure(WebSecurity web) throws Exception {
builder // @formatter:off
web
.ignoring() .ignoring()
.antMatchers("/resources/**"); .antMatchers("/resources/**");
// @formatter:on
} }
@Override @Override
protected void configure(HttpSecurity http) throws Exception { protected void configure(HttpSecurity http) throws Exception {
// @formatter:off
http http
.authorizeRequests() .authorizeRequests()
.anyRequest().hasRole("USER"); .anyRequest().hasRole("USER");
// @formatter:on
} }
} }

View File

@ -15,8 +15,13 @@
*/ */
package org.springframework.security.config.annotation.web.configurers; package org.springframework.security.config.annotation.web.configurers;
import java.lang.reflect.InvocationTargetException;
import java.util.List;
import javax.servlet.Filter;
import org.junit.Rule; import org.junit.Rule;
import org.junit.Test; import org.junit.Test;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order; import org.springframework.core.annotation.Order;
@ -31,14 +36,8 @@ import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.FilterChainProxy; import org.springframework.security.web.FilterChainProxy;
import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.access.intercept.FilterSecurityInterceptor; import org.springframework.security.web.access.intercept.FilterSecurityInterceptor;
import org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.servlet.Filter;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.List;
import static org.assertj.core.api.Java6Assertions.assertThat; import static org.assertj.core.api.Java6Assertions.assertThat;
/** /**
@ -68,9 +67,11 @@ public class Issue55Tests {
@Override @Override
protected void configure(HttpSecurity http) throws Exception { protected void configure(HttpSecurity http) throws Exception {
// @formatter:off
http http
.authorizeRequests() .authorizeRequests()
.anyRequest().hasRole("USER"); .anyRequest().hasRole("USER");
// @formatter:on
} }
} }
@ -96,12 +97,6 @@ public class Issue55Tests {
assertThat(secondFilter.getAuthenticationManager().authenticate(token)).isEqualTo(CustomAuthenticationManager.RESULT); assertThat(secondFilter.getAuthenticationManager().authenticate(token)).isEqualTo(CustomAuthenticationManager.RESULT);
} }
private AuthenticationManager getAuthManager(AbstractAuthenticationProcessingFilter filter) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException {
final Method getAuthenticationManager = filter.getClass().getDeclaredMethod("getAuthenticationManager");
getAuthenticationManager.setAccessible(true);
return (AuthenticationManager) getAuthenticationManager.invoke(filter);
}
@EnableWebSecurity @EnableWebSecurity
static class MultiWebSecurityConfigurerAdapterDefaultsAuthManagerConfig { static class MultiWebSecurityConfigurerAdapterDefaultsAuthManagerConfig {
@Component @Component
@ -109,10 +104,11 @@ public class Issue55Tests {
public static class ApiWebSecurityAdapter extends WebSecurityConfigurerAdapter { public static class ApiWebSecurityAdapter extends WebSecurityConfigurerAdapter {
@Override @Override
protected void configure(HttpSecurity http) throws Exception { protected void configure(HttpSecurity http) throws Exception {
http // @formatter:off
.antMatcher("/api/**") http.antMatcher("/api/**")
.authorizeRequests() .authorizeRequests()
.anyRequest().hasRole("USER"); .anyRequest().hasRole("USER");
// @formatter:on
} }
} }
@ -120,9 +116,11 @@ public class Issue55Tests {
public static class WebSecurityAdapter extends WebSecurityConfigurerAdapter { public static class WebSecurityAdapter extends WebSecurityConfigurerAdapter {
@Override @Override
protected void configure(HttpSecurity http) throws Exception { protected void configure(HttpSecurity http) throws Exception {
// @formatter:off
http http
.authorizeRequests() .authorizeRequests()
.anyRequest().hasRole("USER"); .anyRequest().hasRole("USER");
// @formatter:on
} }
} }
@ -143,7 +141,7 @@ public class Issue55Tests {
} }
} }
protected Filter findFilter(Class<?> filter, int index) { Filter findFilter(Class<?> filter, int index) {
List<Filter> filters = filterChain(index).getFilters(); List<Filter> filters = filterChain(index).getFilters();
for (Filter it : filters) { for (Filter it : filters) {
if (filter.isAssignableFrom(it.getClass())) { if (filter.isAssignableFrom(it.getClass())) {