@Bean
    @ConditionalOnMissingBean(name = "casCoreServicesComponentSerializationPlanConfigurer")
    @RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)
    public ComponentSerializationPlanConfigurer casCoreServicesComponentSerializationPlanConfigurer() {
        return plan -> {
            plan.registerSerializableClass(CasRegisteredService.class);
            plan.registerSerializableClass(RegisteredServiceLogoutType.class);
            plan.registerSerializableClass(RegisteredServicePublicKeyImpl.class);
            plan.registerSerializableClass(DefaultRegisteredServiceContact.class);
            plan.registerSerializableClass(DefaultRegisteredServiceProperty.class);
            plan.registerSerializableClass(DefaultRegisteredServiceDelegatedAuthenticationPolicy.class);
            plan.registerSerializableClass(ChainingRegisteredServiceDelegatedAuthenticationPolicy.class);
            plan.registerSerializableClass(ChainingRegisteredServiceAttributeReleaseActivationCriteria.class);
            plan.registerSerializableClass(DefaultRegisteredServiceExpirationPolicy.class);
            plan.registerSerializableClass(DefaultRegisteredServiceServiceTicketExpirationPolicy.class);
            plan.registerSerializableClass(DefaultRegisteredServiceProxyTicketExpirationPolicy.class);
            plan.registerSerializableClass(DefaultRegisteredServiceDelegatedAuthenticationPolicy.class);
            plan.registerSerializableClass(DefaultRegisteredServiceAcceptableUsagePolicy.class);
            plan.registerSerializableClass(DefaultRegisteredServiceAuthenticationPolicy.class);
            plan.registerSerializableClass(ShibbolethCompatiblePersistentIdGenerator.class);
            plan.registerSerializableClass(FullRegexRegisteredServiceMatchingStrategy.class);
            plan.registerSerializableClass(PartialRegexRegisteredServiceMatchingStrategy.class);
            plan.registerSerializableClass(LiteralRegisteredServiceMatchingStrategy.class);

            plan.registerSerializableClass(RegexMatchingRegisteredServiceProxyPolicy.class);
            plan.registerSerializableClass(RefuseRegisteredServiceProxyPolicy.class);
            plan.registerSerializableClass(DefaultRegisteredServiceAccessStrategy.class);
            plan.registerSerializableClass(ChainingRegisteredServiceAccessStrategy.class);
            plan.registerSerializableClass(GroovyRegisteredServiceAccessStrategy.class);
            plan.registerSerializableClass(RemoteEndpointServiceAccessStrategy.class);
            plan.registerSerializableClass(TimeBasedRegisteredServiceAccessStrategy.class);
            plan.registerSerializableClass(DefaultRegisteredServiceProxyGrantingTicketExpirationPolicy.class);
            plan.registerSerializableClass(DefaultRegisteredServiceProxyTicketExpirationPolicy.class);
            plan.registerSerializableClass(DefaultRegisteredServiceTicketGrantingTicketExpirationPolicy.class);
            plan.registerSerializableClass(DefaultRegisteredServiceServiceTicketExpirationPolicy.class);
            plan.registerSerializableClass(PrincipalAttributeRegisteredServiceUsernameProvider.class);
            plan.registerSerializableClass(AnonymousRegisteredServiceUsernameAttributeProvider.class);
            plan.registerSerializableClass(StaticRegisteredServiceUsernameProvider.class);
            plan.registerSerializableClass(GroovyRegisteredServiceUsernameProvider.class);
            plan.registerSerializableClass(DefaultRegisteredServiceUsernameProvider.class);
            plan.registerSerializableClass(DefaultRegisteredServiceWebflowInterruptPolicy.class);
            plan.registerSerializableClass(RegisteredServiceRegexAttributeFilter.class);
            plan.registerSerializableClass(RegisteredServiceChainingAttributeFilter.class);
            plan.registerSerializableClass(RegisteredServiceMappedRegexAttributeFilter.class);
            plan.registerSerializableClass(RegisteredServiceScriptedAttributeFilter.class);
            plan.registerSerializableClass(ChainingRegisteredServiceAccessStrategyActivationCriteria.class);
            plan.registerSerializableClass(AttributeBasedRegisteredServiceAccessStrategyActivationCriteria.class);
            plan.registerSerializableClass(AttributeBasedRegisteredServiceSingleSignOnParticipationPolicy.class);
            plan.registerSerializableClass(GroovyRegisteredServiceAccessStrategyActivationCriteria.class);
            plan.registerSerializableClass(GroovyRegisteredServiceAttributeReleaseActivationCriteria.class);
            plan.registerSerializableClass(AttributeBasedRegisteredServiceAttributeReleaseActivationCriteria.class);
            plan.registerSerializableClass(GroovyRegisteredServiceSingleSignOnParticipationPolicy.class);

            plan.registerSerializableClass(ChainingAttributeReleasePolicy.class);
            plan.registerSerializableClass(DenyAllAttributeReleasePolicy.class);
            plan.registerSerializableClass(ReturnAllowedAttributeReleasePolicy.class);
            plan.registerSerializableClass(ReturnAllAttributeReleasePolicy.class);
            plan.registerSerializableClass(ReturnStaticAttributeReleasePolicy.class);
            plan.registerSerializableClass(ReturnMappedAttributeReleasePolicy.class);
            plan.registerSerializableClass(ReturnEnvironmentAttributeReleasePolicy.class);
            plan.registerSerializableClass(GroovyScriptAttributeReleasePolicy.class);
            plan.registerSerializableClass(ReturnRestfulAttributeReleasePolicy.class);
            plan.registerSerializableClass(PatternMatchingAttributeReleasePolicy.class);
            plan.registerSerializableClass(PatternMatchingAttributeReleasePolicy.Rule.class);

            plan.registerSerializableClass(DefaultRegisteredServicePasswordlessPolicy.class);
            plan.registerSerializableClass(DefaultRegisteredServiceSurrogatePolicy.class);
            plan.registerSerializableClass(DefaultRegisteredServiceMultifactorPolicy.class);
            plan.registerSerializableClass(BaseMultifactorAuthenticationProviderProperties.MultifactorAuthenticationProviderFailureModes.class);

            plan.registerSerializableClass(CachingPrincipalAttributesRepository.class);
            plan.registerSerializableClass(DefaultPrincipalAttributesRepository.class);
            plan.registerSerializableClass(PrincipalAttributesCoreProperties.MergingStrategyTypes.class);

            plan.registerSerializableClass(DefaultRegisteredServiceConsentPolicy.class);
            plan.registerSerializableClass(CasProtocolVersions.class);

            plan.registerSerializableClass(AllAuthenticationHandlersRegisteredServiceAuthenticationPolicyCriteria.class);
            plan.registerSerializableClass(AnyAuthenticationHandlerRegisteredServiceAuthenticationPolicyCriteria.class);
            plan.registerSerializableClass(GroovyRegisteredServiceAuthenticationPolicyCriteria.class);
            plan.registerSerializableClass(NotPreventedRegisteredServiceAuthenticationPolicyCriteria.class);
            plan.registerSerializableClass(RestfulRegisteredServiceAuthenticationPolicyCriteria.class);
        };
    }
This is {@link CasCoreServicesComponentSerializationConfiguration}.

@author Misagh Moayyed
@since 6.1.0
core/cas-server-core-services/src/main/java/org/apereo/cas/config/CasCoreServicesComponentSerializationConfiguration.java