@Bean
    @ConditionalOnMissingBean(name = "casCoreAuthenticationComponentSerializationPlanConfigurer")
    @RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)
    public ComponentSerializationPlanConfigurer casCoreAuthenticationComponentSerializationPlanConfigurer() {
        return plan -> {
            plan.registerSerializableClass(SimpleWebApplicationServiceImpl.class);
            plan.registerSerializableClass(BasicCredentialMetadata.class);
            plan.registerSerializableClass(BasicIdentifiableCredential.class);
            plan.registerSerializableClass(DefaultAuthenticationHandlerExecutionResult.class);
            plan.registerSerializableClass(DefaultAuthentication.class);
            plan.registerSerializableClass(UsernamePasswordCredential.class);
            plan.registerSerializableClass(RememberMeUsernamePasswordCredential.class);
            plan.registerSerializableClass(SimplePrincipal.class);
            plan.registerSerializableClass(HttpBasedServiceCredential.class);
            plan.registerSerializableClass(OneTimePasswordCredential.class);
            plan.registerSerializableClass(PublicKeyFactoryBean.class);
            plan.registerSerializableClass(ValidationResponseType.class);

            plan.registerSerializableClass(PreventedException.class);
            plan.registerSerializableClass(AccountDisabledException.class);
            plan.registerSerializableClass(AccountExpiredException.class);
            plan.registerSerializableClass(AccountLockedException.class);
            plan.registerSerializableClass(InvalidLoginLocationException.class);
            plan.registerSerializableClass(InvalidLoginTimeException.class);
            plan.registerSerializableClass(PrincipalException.class);
            plan.registerSerializableClass(MixedPrincipalException.class);
            plan.registerSerializableClass(UnauthorizedServiceException.class);
            plan.registerSerializableClass(UnauthorizedServiceForPrincipalException.class);
            plan.registerSerializableClass(UnauthorizedSsoServiceException.class);

            plan.registerSerializableClass(DefaultMessageDescriptor.class);
            plan.registerSerializableClass(GeoLocationRequest.class);
            plan.registerSerializableClass(GeoLocationResponse.class);
            plan.registerSerializableClass(PasswordExpiringWarningMessageDescriptor.class);
        };
    }
This is {@link CasCoreAuthenticationComponentSerializationConfiguration}.

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