@Bean(initMethod = "initialize", destroyMethod = "destroy")
        @RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)
        public SAMLArtifactMap samlArtifactMap(
            @Qualifier(TicketFactory.BEAN_NAME)
            final TicketFactory ticketFactory,
            @Qualifier("samlArtifactTicketExpirationPolicy")
            final ExpirationPolicyBuilder samlArtifactTicketExpirationPolicy,
            @Qualifier(CasCookieBuilder.BEAN_NAME_TICKET_GRANTING_COOKIE_BUILDER)
            final CasCookieBuilder ticketGrantingTicketCookieGenerator,
            @Qualifier(TicketRegistry.BEAN_NAME)
            final TicketRegistry ticketRegistry,
            @Qualifier("samlIdPDistributedSessionStore")
            final SessionStore samlIdPDistributedSessionStore) {
            val map = new CasSamlArtifactMap(ticketRegistry, ticketFactory,
                ticketGrantingTicketCookieGenerator, samlIdPDistributedSessionStore);
            val expirationPolicy = samlArtifactTicketExpirationPolicy.buildTicketExpirationPolicy();
            map.setArtifactLifetime(Duration.ofSeconds(expirationPolicy.getTimeToLive()));
            return map;
        }
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