@Bean
    @ConditionalOnMissingBean(name = "authorizationPrincipalParser")
    @RefreshScope(proxyMode = ScopedProxyMode.DEFAULT)
    public AuthorizationPrincipalParser authorizationPrincipalParser(
        @Qualifier(AuthenticationSystemSupport.BEAN_NAME)
        final AuthenticationSystemSupport authenticationSystemSupport,
        final CasConfigurationProperties casProperties,
        @Qualifier("oidcTokenSigningAndEncryptionService")
        final ObjectProvider<OAuth20TokenSigningAndEncryptionService> oidcTokenSigningAndEncryptionService,
        @Qualifier(JwtBuilder.ACCESS_TOKEN_JWT_BUILDER_BEAN_NAME)
        final ObjectProvider<JwtBuilder> accessTokenJwtBuilder,
        @Qualifier(TicketRegistry.BEAN_NAME)
        final TicketRegistry ticketRegistry) {
        return new DefaultAuthorizationPrincipalParser(ticketRegistry, casProperties,
            accessTokenJwtBuilder, oidcTokenSigningAndEncryptionService, authenticationSystemSupport);
    }
This is {@link CasHeimdallAutoConfiguration}.

@author Misagh Moayyed
@since 7.2.0
support/cas-server-support-heimdall/src/main/java/org/apereo/cas/config/CasHeimdallAutoConfiguration.java