From 3a831820f6d4f74cf533334daeb8830d7b446f5b Mon Sep 17 00:00:00 2001 From: Josh Cummings Date: Wed, 7 Aug 2019 14:37:46 -0600 Subject: [PATCH] Polish LdapUserDetailsManagerModifyPasswordTests Issue gh-3392 --- ...UserDetailsManagerModifyPasswordTests.java | 44 ++++++------------- 1 file changed, 14 insertions(+), 30 deletions(-) diff --git a/ldap/src/integration-test/java/org/springframework/security/ldap/userdetails/LdapUserDetailsManagerModifyPasswordTests.java b/ldap/src/integration-test/java/org/springframework/security/ldap/userdetails/LdapUserDetailsManagerModifyPasswordTests.java index de4df1a612..72f2b7a109 100644 --- a/ldap/src/integration-test/java/org/springframework/security/ldap/userdetails/LdapUserDetailsManagerModifyPasswordTests.java +++ b/ldap/src/integration-test/java/org/springframework/security/ldap/userdetails/LdapUserDetailsManagerModifyPasswordTests.java @@ -17,14 +17,11 @@ package org.springframework.security.ldap.userdetails; import javax.annotation.PreDestroy; -import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.ldap.core.ContextSource; @@ -33,9 +30,9 @@ import org.springframework.security.ldap.DefaultLdapUsernameToDnMapper; import org.springframework.security.ldap.DefaultSpringSecurityContextSource; import org.springframework.security.ldap.SpringSecurityLdapTemplate; import org.springframework.security.ldap.server.UnboundIdContainer; -import org.springframework.security.test.context.annotation.SecurityTestExecutionListeners; import org.springframework.security.test.context.support.WithMockUser; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringRunner; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatCode; @@ -46,30 +43,22 @@ import static org.assertj.core.api.Assertions.assertThatCode; * * @author Josh Cummings */ -@RunWith(SpringJUnit4ClassRunner.class) -@SecurityTestExecutionListeners +@RunWith(SpringRunner.class) +@ContextConfiguration(classes=LdapUserDetailsManagerModifyPasswordTests.UnboundIdContainerConfiguration.class) public class LdapUserDetailsManagerModifyPasswordTests { - ConfigurableApplicationContext context; - LdapUserDetailsManager userDetailsManager; + + @Autowired ContextSource contextSource; @Before public void setup() { - this.context = new AnnotationConfigApplicationContext(ContainerConfiguration.class, LdapConfiguration.class); - this.contextSource = this.context.getBean(ContextSource.class); - this.userDetailsManager = new LdapUserDetailsManager(this.contextSource); this.userDetailsManager.setUsePasswordModifyExtensionOperation(true); this.userDetailsManager.setUsernameMapper(new DefaultLdapUsernameToDnMapper("ou=people", "uid")); } - @After - public void teardown() { - this.context.close(); - } - @Test @WithMockUser(username="bob", password="bobspassword", authorities="ROLE_USER") public void changePasswordWhenOldPasswordIsIncorrectThenThrowsException() { @@ -91,19 +80,8 @@ public class LdapUserDetailsManagerModifyPasswordTests { } @Configuration - static class LdapConfiguration { - @Autowired UnboundIdContainer container; - - @Bean - ContextSource contextSource() throws Exception { - return new DefaultSpringSecurityContextSource("ldap://127.0.0.1:" - + this.container.getPort() + "/dc=springframework,dc=org"); - } - } - - @Configuration - static class ContainerConfiguration { - UnboundIdContainer container = new UnboundIdContainer("dc=springframework,dc=org", + static class UnboundIdContainerConfiguration { + private UnboundIdContainer container = new UnboundIdContainer("dc=springframework,dc=org", "classpath:test-server.ldif"); @Bean @@ -112,6 +90,12 @@ public class LdapUserDetailsManagerModifyPasswordTests { return this.container; } + @Bean + ContextSource contextSource(UnboundIdContainer container) { + return new DefaultSpringSecurityContextSource("ldap://127.0.0.1:" + + container.getPort() + "/dc=springframework,dc=org"); + } + @PreDestroy void shutdown() { this.container.stop();