public static AuthenticationHandler newAuthenticationHandler(final BaseJdbcAuthenticationProperties properties,
                                                                 final ConfigurableApplicationContext applicationContext,
                                                                 final PrincipalFactory jdbcPrincipalFactory,
                                                                 final ServicesManager servicesManager,
                                                                 final PasswordPolicyContext passwordPolicyContext) {
        return switch (properties) {
            case QueryJdbcAuthenticationProperties query -> newAuthenticationHandler(query, applicationContext, jdbcPrincipalFactory,
                servicesManager, passwordPolicyContext);
            case QueryEncodeJdbcAuthenticationProperties queryEncode -> newAuthenticationHandler(queryEncode, applicationContext, jdbcPrincipalFactory,
                servicesManager, passwordPolicyContext);
            case ProcedureJdbcAuthenticationProperties procedure -> newAuthenticationHandler(procedure, applicationContext, jdbcPrincipalFactory,
                servicesManager, passwordPolicyContext);
            case SearchJdbcAuthenticationProperties search -> newAuthenticationHandler(search, applicationContext, jdbcPrincipalFactory,
                servicesManager, passwordPolicyContext);
            case BindJdbcAuthenticationProperties bind -> newAuthenticationHandler(bind, applicationContext, jdbcPrincipalFactory,
                servicesManager, passwordPolicyContext);
            default -> throw new IllegalStateException("Unexpected value: " + properties.getClass().getName());
        };
    }
New authentication handler.

@param properties            the properties
@param applicationContext    the application context
@param jdbcPrincipalFactory  the jdbc principal factory
@param servicesManager       the services manager
@param passwordPolicyContext the search mode password policy configuration
@return the authentication handler
support/cas-server-support-jdbc-authentication/src/main/java/org/apereo/cas/jdbc/JdbcAuthenticationUtils.java