@ConditionalOnMissingBean(name = "samlArtifactTicketFactory")
        @Bean
        @RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)
        public SamlArtifactTicketFactory samlArtifactTicketFactory(
            @Qualifier("samlArtifactTicketExpirationPolicy")
            final ExpirationPolicyBuilder samlArtifactTicketExpirationPolicy,
            @Qualifier(OpenSamlConfigBean.DEFAULT_BEAN_NAME)
            final OpenSamlConfigBean openSamlConfigBean,
            @Qualifier("samlIdPServiceFactory")
            final ServiceFactory samlIdPServiceFactory,
            @Qualifier(TicketTrackingPolicy.BEAN_NAME_DESCENDANT_TICKET_TRACKING)
            final TicketTrackingPolicy descendantTicketsTrackingPolicy) {
            return new DefaultSamlArtifactTicketFactory(samlArtifactTicketExpirationPolicy,
                openSamlConfigBean, samlIdPServiceFactory, descendantTicketsTrackingPolicy);
        }
The {@link SamlIdPConfiguration}.

@author Misagh Moayyed
@since 5.0.0
support/cas-server-support-saml-idp/src/main/java/org/apereo/cas/config/SamlIdPConfiguration.java