Browse Source

[TEST] Reset LDAP processing delay after test (#80250)

The in memory LDAP server supports a "processing delay" which we use
to test our timeout handling. The test did not reset this delay back
to zero at the end of procesing, and this could sometimes interfere
with test cleanup

Resolves: #80239
Tim Vernum 4 years ago
parent
commit
5a4a7446dd

+ 20 - 17
x-pack/plugin/security/src/test/java/org/elasticsearch/xpack/security/authc/ldap/SearchGroupsResolverInMemoryTests.java

@@ -57,24 +57,27 @@ public class SearchGroupsResolverInMemoryTests extends LdapTestCase {
      */
      */
     public void testSearchTimeoutIsFailure() throws Exception {
     public void testSearchTimeoutIsFailure() throws Exception {
         ldapServers[0].setProcessingDelayMillis(500);
         ldapServers[0].setProcessingDelayMillis(500);
+        try {
+            final LDAPConnectionOptions options = new LDAPConnectionOptions();
+            options.setConnectTimeoutMillis(1500);
+            options.setResponseTimeoutMillis(5);
+            connect(options);
 
 
-        final LDAPConnectionOptions options = new LDAPConnectionOptions();
-        options.setConnectTimeoutMillis(1500);
-        options.setResponseTimeoutMillis(5);
-        connect(options);
-
-        final Settings settings = Settings.builder()
-            .put(getFullSettingKey(REALM_IDENTIFIER, SearchGroupsResolverSettings.BASE_DN), "ou=groups,o=sevenSeas")
-            .put(getFullSettingKey(REALM_IDENTIFIER, SearchGroupsResolverSettings.SCOPE), LdapSearchScope.SUB_TREE)
-            .build();
-        final SearchGroupsResolver resolver = new SearchGroupsResolver(getConfig(settings));
-        final PlainActionFuture<List<String>> future = new PlainActionFuture<>();
-        resolver.resolve(connection, WILLIAM_BUSH, TimeValue.timeValueSeconds(30), logger, null, future);
-
-        final ExecutionException exception = expectThrows(ExecutionException.class, future::get);
-        final Throwable cause = exception.getCause();
-        assertThat(cause, instanceOf(LDAPException.class));
-        assertThat(((LDAPException) cause).getResultCode(), is(ResultCode.TIMEOUT));
+            final Settings settings = Settings.builder()
+                .put(getFullSettingKey(REALM_IDENTIFIER, SearchGroupsResolverSettings.BASE_DN), "ou=groups,o=sevenSeas")
+                .put(getFullSettingKey(REALM_IDENTIFIER, SearchGroupsResolverSettings.SCOPE), LdapSearchScope.SUB_TREE)
+                .build();
+            final SearchGroupsResolver resolver = new SearchGroupsResolver(getConfig(settings));
+            final PlainActionFuture<List<String>> future = new PlainActionFuture<>();
+            resolver.resolve(connection, WILLIAM_BUSH, TimeValue.timeValueSeconds(30), logger, null, future);
+
+            final ExecutionException exception = expectThrows(ExecutionException.class, future::get);
+            final Throwable cause = exception.getCause();
+            assertThat(cause, instanceOf(LDAPException.class));
+            assertThat(((LDAPException) cause).getResultCode(), is(ResultCode.TIMEOUT));
+        } finally {
+            ldapServers[0].setProcessingDelayMillis(0);
+        }
     }
     }
 
 
     /**
     /**