code: public static Authenticator getAuthenticator(final LdapAuthenticationProperties l) {
          if (l.getType() == LdapAuthenticationProperties.AuthenticationTypes.AD) {
              LOGGER.debug("Creating active directory authenticator for {}", l.getLdapUrl());
              return getActiveDirectoryAuthenticator(l);
          }
          if (l.getType() == LdapAuthenticationProperties.AuthenticationTypes.DIRECT) {
              LOGGER.debug("Creating direct-bind authenticator for {}", l.getLdapUrl());
              return getDirectBindAuthenticator(l);
          }
          if (l.getType() == LdapAuthenticationProperties.AuthenticationTypes.SASL) {
              LOGGER.debug("Creating SASL authenticator for {}", l.getLdapUrl());
              return getSaslAuthenticator(l);
          }
          if (l.getType() == LdapAuthenticationProperties.AuthenticationTypes.AUTHENTICATED) {
              LOGGER.debug("Creating authenticated authenticator for {}", l.getLdapUrl());
              return getAuthenticatedOrAnonSearchAuthenticator(l);
          }
  
          LOGGER.debug("Creating anonymous authenticator for {}", l.getLdapUrl());
          return getAuthenticatedOrAnonSearchAuthenticator(l);
      }
docs: /*
  ####################################################################################################################################
  ####################################################################################################################################
  From the LdapAuthenticationConfiguration class:
  ####################################################################################################################################
  ####################################################################################################################################