code: public static Authenticator newLdaptiveAuthenticator(final AbstractLdapAuthenticationProperties l) {
          switch (l.getType()) {
              case AD:
                  LOGGER.debug("Creating active directory authenticator for [{}]", l.getLdapUrl());
                  return getActiveDirectoryAuthenticator(l);
              case DIRECT:
                  LOGGER.debug("Creating direct-bind authenticator for [{}]", l.getLdapUrl());
                  return getDirectBindAuthenticator(l);
              case AUTHENTICATED:
                  LOGGER.debug("Creating authenticated authenticator for [{}]", l.getLdapUrl());
                  return getAuthenticatedOrAnonSearchAuthenticator(l);
              default:
                  LOGGER.debug("Creating anonymous authenticator for [{}]", l.getLdapUrl());
                  return getAuthenticatedOrAnonSearchAuthenticator(l);
          }
      }
docs: New ldap authenticator.
  
  @param l the ldap settings.
  @return the authenticator