@ConditionalOnMissingBean(name = "syncopeAuthenticationHandlers")
    @Bean
    @RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)
    public BeanContainer<AuthenticationHandler> syncopeAuthenticationHandlers(
        final CasConfigurationProperties casProperties,
        final ConfigurableApplicationContext applicationContext,
        @Qualifier("syncopePrincipalFactory")
        final PrincipalFactory syncopePrincipalFactory,
        @Qualifier("syncopePasswordPolicyConfiguration")
        final PasswordPolicyContext syncopePasswordPolicyConfiguration,
        @Qualifier(ServicesManager.BEAN_NAME)
        final ServicesManager servicesManager) {
        val syncope = casProperties.getAuthn().getSyncope();
        val handlers = SyncopeUtils.newAuthenticationHandlers(syncope, applicationContext,
            syncopePrincipalFactory, servicesManager, syncopePasswordPolicyConfiguration);
        return BeanContainer.of(handlers);
    }
This is {@link SyncopeAuthenticationConfiguration}.

@author Misagh Moayyed
@since 5.3.0
support/cas-server-support-syncope-authentication/src/main/java/org/apereo/cas/config/SyncopeAuthenticationConfiguration.java