@ConditionalOnMissingBean(name = "samlIdPDistributedSessionStore")
        @Bean
        @RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)
        public SessionStore samlIdPDistributedSessionStore(
            final CasConfigurationProperties casProperties,
            @Qualifier("samlIdPDistributedSessionCookieGenerator")
            final CasCookieBuilder samlIdPDistributedSessionCookieGenerator,
            @Qualifier(CipherExecutor.BEAN_NAME_WEBFLOW_CIPHER_EXECUTOR)
            final CipherExecutor webflowCipherExecutor,
            @Qualifier(TicketRegistry.BEAN_NAME)
            final TicketRegistry ticketRegistry,
            @Qualifier(TicketFactory.BEAN_NAME)
            final TicketFactory ticketFactory) {
            val type = casProperties.getAuthn().getSamlIdp().getCore().getSessionStorageType();
            return switch (type) {
                case TICKET_REGISTRY -> new TicketRegistrySessionStore(ticketRegistry, ticketFactory, samlIdPDistributedSessionCookieGenerator);
                case BROWSER_STORAGE -> new BrowserWebStorageSessionStore(webflowCipherExecutor, "SamlIdPSessionStore");
                default -> {
                    val jeeSessionStore = new JEESessionStore();
                    jeeSessionStore.setPrefix("SamlServerSupport");
                    yield jeeSessionStore;
                }
            };
        }
This is {@link SamlIdPEndpointsConfiguration}.

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