protected AbstractAuthenticationHandler createAuthenticationHandler(final Settings settings) {
        try {
            final Class<?> clazz = Class.forName(settings.authentication.authenticationHandler);
            AbstractAuthenticationHandler aah;
            // the three arg constructor is the new form as a handler may need the authorizer in some cases
            final Class<?>[] threeArgForm = new Class[]{Authenticator.class, Authorizer.class, Settings.class};
            final Constructor<?> threeArgConstructor = clazz.getDeclaredConstructor(threeArgForm);
            return (AbstractAuthenticationHandler) threeArgConstructor.newInstance(authenticator, authorizer, settings);
        } catch (Exception ex) {
            logger.warn(ex.getMessage());
            throw new IllegalStateException(String.format("Could not create/configure AuthenticationHandler %s", settings.authentication.authenticationHandler), ex);
        }
    }
It is best not to override this method as it sets up some core parts to the server. Prefer implementing the
{@link #configure(ChannelPipeline)} methods to alter the pipeline.
gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/AbstractChannelizer.java