From feb49ea9de073126f483bfb36b029512a6290cb8 Mon Sep 17 00:00:00 2001 From: Josh Cummings Date: Thu, 25 Jun 2020 14:19:34 -0600 Subject: [PATCH] Add Timeout to Ldap Test - The test intentionally points to a non-existent LDAP server; on some machines, this will hang indefinitely without a specified timeout. Issue gh-2884 --- ...ectoryLdapAuthenticationProviderTests.java | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/ldap/src/test/java/org/springframework/security/ldap/authentication/ad/ActiveDirectoryLdapAuthenticationProviderTests.java b/ldap/src/test/java/org/springframework/security/ldap/authentication/ad/ActiveDirectoryLdapAuthenticationProviderTests.java index 7302da3821..27226bd631 100644 --- a/ldap/src/test/java/org/springframework/security/ldap/authentication/ad/ActiveDirectoryLdapAuthenticationProviderTests.java +++ b/ldap/src/test/java/org/springframework/security/ldap/authentication/ad/ActiveDirectoryLdapAuthenticationProviderTests.java @@ -15,6 +15,18 @@ */ package org.springframework.security.ldap.authentication.ad; +import java.util.Collections; +import java.util.Hashtable; +import javax.naming.AuthenticationException; +import javax.naming.CommunicationException; +import javax.naming.Name; +import javax.naming.NameNotFoundException; +import javax.naming.NamingEnumeration; +import javax.naming.NamingException; +import javax.naming.directory.DirContext; +import javax.naming.directory.SearchControls; +import javax.naming.directory.SearchResult; + import org.apache.directory.shared.ldap.util.EmptyEnumeration; import org.hamcrest.BaseMatcher; import org.hamcrest.CoreMatchers; @@ -25,6 +37,7 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import org.mockito.ArgumentCaptor; + import org.springframework.dao.IncorrectResultSizeDataAccessException; import org.springframework.ldap.core.DirContextAdapter; import org.springframework.ldap.core.DistinguishedName; @@ -37,21 +50,13 @@ import org.springframework.security.authentication.LockedException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; -import javax.naming.AuthenticationException; -import javax.naming.CommunicationException; -import javax.naming.Name; -import javax.naming.NameNotFoundException; -import javax.naming.NamingEnumeration; -import javax.naming.NamingException; -import javax.naming.directory.DirContext; -import javax.naming.directory.SearchControls; -import javax.naming.directory.SearchResult; - -import java.util.Hashtable; - import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.fail; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import static org.springframework.security.ldap.authentication.ad.ActiveDirectoryLdapAuthenticationProvider.ContextFactory; /** @@ -398,6 +403,8 @@ public class ActiveDirectoryLdapAuthenticationProviderTests { public void connectionExceptionIsWrappedInInternalException() throws Exception { ActiveDirectoryLdapAuthenticationProvider noneReachableProvider = new ActiveDirectoryLdapAuthenticationProvider( "mydomain.eu", NON_EXISTING_LDAP_PROVIDER, "dc=ad,dc=eu,dc=mydomain"); + noneReachableProvider.setContextEnvironmentProperties( + Collections.singletonMap("com.sun.jndi.ldap.connect.timeout", "5")); noneReachableProvider.doAuthentication(joe); }