@Override
    public void configureTicketCatalog(final TicketCatalog plan,
                                       final CasConfigurationProperties casProperties) throws Throwable {
        LOGGER.trace("Registering OAuth protocol ticket definitions...");
        buildAndRegisterOAuthCodeDefinition(plan, buildTicketDefinition(plan, OAuth20Code.PREFIX,
            OAuth20Code.class, OAuth20DefaultCode.class, Ordered.HIGHEST_PRECEDENCE), casProperties);
        buildAndRegisterAccessTokenDefinition(plan, buildTicketDefinition(plan,
            OAuth20AccessToken.PREFIX, OAuth20AccessToken.class, OAuth20DefaultAccessToken.class,
            Ordered.HIGHEST_PRECEDENCE), casProperties);
        buildAndRegisterRefreshTokenDefinition(plan, buildTicketDefinition(plan, OAuth20RefreshToken.PREFIX,
            OAuth20RefreshToken.class, OAuth20DefaultRefreshToken.class, Ordered.HIGHEST_PRECEDENCE), casProperties);
        buildAndRegisterDeviceTokenDefinition(plan, buildTicketDefinition(plan, OAuth20DeviceToken.PREFIX,
            OAuth20DefaultDeviceToken.class, OAuth20DeviceToken.class), casProperties);
        buildAndRegisterDeviceUserCodeDefinition(plan, buildTicketDefinition(plan, OAuth20DeviceUserCode.PREFIX,
            OAuth20DefaultDeviceUserCode.class, OAuth20DeviceUserCode.class), casProperties);
    }
This is {@link OAuth20TicketCatalogConfigurer}.

@author Misagh Moayyed
@since 7.1.0
support/cas-server-support-oauth-core-api/src/main/java/org/apereo/cas/ticket/OAuth20TicketCatalogConfigurer.java