@Test
public void shouldApplyFilterToAuthenticatedUserWithAdditionallyConfiguredBaseDn() throws IOException, ServletException, GeneralSecurityException, LDAPException {
final LdapProperties ldapProperties = ldapProperties("someHost", 389, asList("exceptionBaseDn", "successBaseDn"), null, "someRdnIdentifier", singletonList("/internal"), StartTLS, WHITELISTED_PATH);
final LdapConnectionFactory connectionFactory = mock(LdapConnectionFactory.class);
final LDAPConnection ldapConnection = someLdapConnectionReturningSuccessOrThrowingBindException("successBaseDn", "exceptionBaseDn");
when(connectionFactory.buildLdapConnection()).thenReturn(ldapConnection);
testee = new LdapAuthenticationFilter(ldapProperties, connectionFactory);
final HttpServletRequest request = requestWithAuthorizationHeader();
when(request.getServletPath()).thenReturn("/foo");
final FilterChain filterChain = mock(FilterChain.class);
testee.doFilter(request, response, filterChain);
verify(ldapConnection).bind(contains("exceptionBaseDn"), anyString());
verify(ldapConnection).bind(contains("successBaseDn"), anyString());
verify(filterChain).doFilter(any(HttpServletRequest.class), any(HttpServletResponse.class));
}