Browse Source

UnboundIdContainer Disables Pauses for Ephemeral Port

Closes gh-17543
pull/17223/merge
Rob Winch 5 months ago
parent
commit
23cf29ba17
No known key found for this signature in database
  1. 3
      ldap/src/integration-test/java/org/springframework/security/ldap/DefaultSpringSecurityContextSourceTests.java
  2. 3
      ldap/src/integration-test/java/org/springframework/security/ldap/SpringSecurityLdapTemplateITests.java
  3. 3
      ldap/src/integration-test/java/org/springframework/security/ldap/authentication/BindAuthenticatorTests.java
  4. 3
      ldap/src/integration-test/java/org/springframework/security/ldap/authentication/PasswordComparisonAuthenticatorTests.java
  5. 3
      ldap/src/integration-test/java/org/springframework/security/ldap/search/FilterBasedLdapUserSearchTests.java
  6. 3
      ldap/src/integration-test/java/org/springframework/security/ldap/userdetails/DefaultLdapAuthoritiesPopulatorTests.java
  7. 3
      ldap/src/integration-test/java/org/springframework/security/ldap/userdetails/LdapUserDetailsManagerTests.java
  8. 3
      ldap/src/integration-test/java/org/springframework/security/ldap/userdetails/NestedLdapAuthoritiesPopulatorTests.java
  9. 11
      ldap/src/main/java/org/springframework/security/ldap/server/UnboundIdContainer.java

3
ldap/src/integration-test/java/org/springframework/security/ldap/DefaultSpringSecurityContextSourceTests.java

@ -26,7 +26,6 @@ import org.junit.jupiter.api.extension.ExtendWith; @@ -26,7 +26,6 @@ import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ldap.AuthenticationException;
import org.springframework.ldap.core.support.AbstractContextSource;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
@ -40,8 +39,6 @@ import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException @@ -40,8 +39,6 @@ import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException
*/
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = UnboundIdContainerConfig.class)
// FIXME: See https://github.com/spring-projects/spring-security/issues/17543
@DirtiesContext
public class DefaultSpringSecurityContextSourceTests {
@Autowired

3
ldap/src/integration-test/java/org/springframework/security/ldap/SpringSecurityLdapTemplateITests.java

@ -34,7 +34,6 @@ import org.springframework.beans.factory.annotation.Autowired; @@ -34,7 +34,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ldap.UncategorizedLdapException;
import org.springframework.ldap.core.ContextExecutor;
import org.springframework.security.crypto.codec.Utf8;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
@ -47,8 +46,6 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType; @@ -47,8 +46,6 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
*/
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = UnboundIdContainerConfig.class)
// FIXME: See https://github.com/spring-projects/spring-security/issues/17543
@DirtiesContext
public class SpringSecurityLdapTemplateITests {
@Autowired

3
ldap/src/integration-test/java/org/springframework/security/ldap/authentication/BindAuthenticatorTests.java

@ -36,7 +36,6 @@ import org.springframework.security.core.SpringSecurityMessageSource; @@ -36,7 +36,6 @@ import org.springframework.security.core.SpringSecurityMessageSource;
import org.springframework.security.ldap.DefaultSpringSecurityContextSource;
import org.springframework.security.ldap.UnboundIdContainerConfig;
import org.springframework.security.ldap.search.FilterBasedLdapUserSearch;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
@ -55,8 +54,6 @@ import static org.mockito.Mockito.spy; @@ -55,8 +54,6 @@ import static org.mockito.Mockito.spy;
*/
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = UnboundIdContainerConfig.class)
// FIXME: See https://github.com/spring-projects/spring-security/issues/17543
@DirtiesContext
public class BindAuthenticatorTests {
@Autowired

3
ldap/src/integration-test/java/org/springframework/security/ldap/authentication/PasswordComparisonAuthenticatorTests.java

@ -32,7 +32,6 @@ import org.springframework.security.crypto.password.LdapShaPasswordEncoder; @@ -32,7 +32,6 @@ import org.springframework.security.crypto.password.LdapShaPasswordEncoder;
import org.springframework.security.crypto.password.NoOpPasswordEncoder;
import org.springframework.security.ldap.DefaultSpringSecurityContextSource;
import org.springframework.security.ldap.UnboundIdContainerConfig;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
@ -48,8 +47,6 @@ import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException @@ -48,8 +47,6 @@ import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException
*/
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = UnboundIdContainerConfig.class)
// FIXME: See https://github.com/spring-projects/spring-security/issues/17543
@DirtiesContext
public class PasswordComparisonAuthenticatorTests {
@Autowired

3
ldap/src/integration-test/java/org/springframework/security/ldap/search/FilterBasedLdapUserSearchTests.java

@ -27,7 +27,6 @@ import org.springframework.ldap.core.DirContextOperations; @@ -27,7 +27,6 @@ import org.springframework.ldap.core.DirContextOperations;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.ldap.DefaultSpringSecurityContextSource;
import org.springframework.security.ldap.UnboundIdContainerConfig;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
@ -42,8 +41,6 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType; @@ -42,8 +41,6 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
*/
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = UnboundIdContainerConfig.class)
// FIXME: See https://github.com/spring-projects/spring-security/issues/17543
@DirtiesContext
public class FilterBasedLdapUserSearchTests {
@Autowired

3
ldap/src/integration-test/java/org/springframework/security/ldap/userdetails/DefaultLdapAuthoritiesPopulatorTests.java

@ -33,7 +33,6 @@ import org.springframework.security.core.GrantedAuthority; @@ -33,7 +33,6 @@ import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.AuthorityUtils;
import org.springframework.security.ldap.SpringSecurityLdapTemplate;
import org.springframework.security.ldap.UnboundIdContainerConfig;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
@ -46,8 +45,6 @@ import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException @@ -46,8 +45,6 @@ import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException
*/
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = UnboundIdContainerConfig.class)
// FIXME: See https://github.com/spring-projects/spring-security/issues/17543
@DirtiesContext
@SuppressWarnings({ "deprecation" })
public class DefaultLdapAuthoritiesPopulatorTests {

3
ldap/src/integration-test/java/org/springframework/security/ldap/userdetails/LdapUserDetailsManagerTests.java

@ -37,7 +37,6 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException; @@ -37,7 +37,6 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.ldap.DefaultLdapUsernameToDnMapper;
import org.springframework.security.ldap.SpringSecurityLdapTemplate;
import org.springframework.security.ldap.UnboundIdContainerConfig;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
@ -54,8 +53,6 @@ import static org.mockito.Mockito.verify; @@ -54,8 +53,6 @@ import static org.mockito.Mockito.verify;
*/
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = UnboundIdContainerConfig.class)
// FIXME: See https://github.com/spring-projects/spring-security/issues/17543
@DirtiesContext
public class LdapUserDetailsManagerTests {
@Autowired

3
ldap/src/integration-test/java/org/springframework/security/ldap/userdetails/NestedLdapAuthoritiesPopulatorTests.java

@ -29,7 +29,6 @@ import org.springframework.ldap.core.ContextSource; @@ -29,7 +29,6 @@ import org.springframework.ldap.core.ContextSource;
import org.springframework.ldap.core.DirContextAdapter;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.ldap.UnboundIdContainerConfig;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
@ -41,8 +40,6 @@ import static org.assertj.core.api.Assertions.assertThat; @@ -41,8 +40,6 @@ import static org.assertj.core.api.Assertions.assertThat;
*/
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = UnboundIdContainerConfig.class)
// FIXME: See https://github.com/spring-projects/spring-security/issues/17543
@DirtiesContext
public class NestedLdapAuthoritiesPopulatorTests {
@Autowired

11
ldap/src/main/java/org/springframework/security/ldap/server/UnboundIdContainer.java

@ -31,6 +31,7 @@ import org.springframework.beans.factory.DisposableBean; @@ -31,6 +31,7 @@ import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.Lifecycle;
import org.springframework.core.io.Resource;
import org.springframework.lang.NonNull;
@ -48,7 +49,9 @@ public class UnboundIdContainer @@ -48,7 +49,9 @@ public class UnboundIdContainer
private int port = 53389;
private ApplicationContext context;
private boolean isEphemeral;
private ConfigurableApplicationContext context;
private boolean running;
@ -67,6 +70,7 @@ public class UnboundIdContainer @@ -67,6 +70,7 @@ public class UnboundIdContainer
@Override
public void setPort(int port) {
this.port = port;
this.isEphemeral = port == 0;
}
@Override
@ -81,7 +85,7 @@ public class UnboundIdContainer @@ -81,7 +85,7 @@ public class UnboundIdContainer
@Override
public void setApplicationContext(@NonNull ApplicationContext applicationContext) throws BeansException {
this.context = applicationContext;
this.context = (ConfigurableApplicationContext) applicationContext;
}
@Override
@ -133,6 +137,9 @@ public class UnboundIdContainer @@ -133,6 +137,9 @@ public class UnboundIdContainer
@Override
public void stop() {
if (this.isEphemeral && this.context != null && !this.context.isClosed()) {
return;
}
this.directoryServer.shutDown(true);
this.running = false;
}

Loading…
Cancel
Save