diff --git a/config/src/test/groovy/org/springframework/security/config/annotation/authentication/PasswordEncoderConfigurerTests.groovy b/config/src/test/groovy/org/springframework/security/config/annotation/authentication/PasswordEncoderConfigurerTests.groovy deleted file mode 100644 index ee003e43e6..0000000000 --- a/config/src/test/groovy/org/springframework/security/config/annotation/authentication/PasswordEncoderConfigurerTests.groovy +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Copyright 2002-2016 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.security.config.annotation.authentication - -import org.springframework.security.authentication.AuthenticationManager -import org.springframework.security.authentication.UsernamePasswordAuthenticationToken -import org.springframework.security.config.annotation.BaseSpringSpec - -import static org.springframework.security.config.annotation.authentication.PasswordEncoderConfigurerConfigs.PasswordEncoderConfig -import static org.springframework.security.config.annotation.authentication.PasswordEncoderConfigurerConfigs.PasswordEncoderNoAuthManagerLoadsConfig; - -/** - * - * @author Rob Winch - * - */ -class PasswordEncoderConfigurerTests extends BaseSpringSpec { - def "password-encoder@ref with No AuthenticationManager Bean"() { - when: - loadConfig(PasswordEncoderNoAuthManagerLoadsConfig) - then: - noExceptionThrown() - } - - def "password-encoder@ref with AuthenticationManagerBuilder"() { - when: - loadConfig(PasswordEncoderConfig) - AuthenticationManager authMgr = authenticationManager() - then: - authMgr.authenticate(new UsernamePasswordAuthenticationToken("user", "password")) - } -} diff --git a/config/src/test/groovy/org/springframework/security/config/annotation/authentication/PasswordEncoderConfigurerConfigs.java b/config/src/test/java/org/springframework/security/config/annotation/authentication/PasswordEncoderConfigurerTests.java similarity index 67% rename from config/src/test/groovy/org/springframework/security/config/annotation/authentication/PasswordEncoderConfigurerConfigs.java rename to config/src/test/java/org/springframework/security/config/annotation/authentication/PasswordEncoderConfigurerTests.java index 0e3a077fcb..ea658aebb4 100644 --- a/config/src/test/groovy/org/springframework/security/config/annotation/authentication/PasswordEncoderConfigurerConfigs.java +++ b/config/src/test/java/org/springframework/security/config/annotation/authentication/PasswordEncoderConfigurerTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 the original author or authors. + * Copyright 2002-2018 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. @@ -13,26 +13,39 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.security.config.annotation.authentication; +import org.junit.Rule; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.config.test.SpringTestRule; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.test.web.servlet.MockMvc; + +import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestBuilders.formLogin; +import static org.springframework.security.test.web.servlet.response.SecurityMockMvcResultMatchers.authenticated; /** - * Class Containing the {@link Configuration} for {@link PasswordEncoderConfigurerTests}. - * Separate to ensure the configuration compiles in Java (i.e. we are not using hidden - * methods). - * * @author Rob Winch - * @since 3.2 */ -public class PasswordEncoderConfigurerConfigs { +public class PasswordEncoderConfigurerTests { + + @Rule + public final SpringTestRule spring = new SpringTestRule(); + + @Autowired + private MockMvc mockMvc; + + @Test + public void passwordEncoderRefWhenNoAuthenticationManagerBeanThenNoExceptionThrown() { + this.spring.register(PasswordEncoderConfig.class).autowire(); + } @EnableWebSecurity static class PasswordEncoderConfig extends WebSecurityConfigurerAdapter { @@ -46,12 +59,6 @@ public class PasswordEncoderConfigurerConfigs { } // @formatter:on - @Bean - @Override - public AuthenticationManager authenticationManagerBean() throws Exception { - return super.authenticationManagerBean(); - } - @Override protected void configure(HttpSecurity http) throws Exception { } @@ -62,9 +69,17 @@ public class PasswordEncoderConfigurerConfigs { } } + @Test + public void passwordEncoderRefWhenAuthenticationManagerBuilderThenAuthenticationSuccess() throws Exception { + this.spring.register(PasswordEncoderNoAuthManagerLoadsConfig.class).autowire(); + + this.mockMvc.perform(formLogin()) + .andExpect(authenticated()); + } + @EnableWebSecurity static class PasswordEncoderNoAuthManagerLoadsConfig extends - WebSecurityConfigurerAdapter { + WebSecurityConfigurerAdapter { // @formatter:off protected void configure(AuthenticationManagerBuilder auth) throws Exception { BCryptPasswordEncoder encoder = passwordEncoder();