@Override
    public OidcCibaRequest create(final CibaRequestContext holder) throws Throwable {
        val id = idGenerator.getNewTicketId(OidcCibaRequest.PREFIX);
        val expirationPolicy = holder.getRequestedExpiry() > 0
            ? new HardTimeoutExpirationPolicy(holder.getRequestedExpiry())
            : expirationPolicyBuilder.buildTicketExpirationPolicy();

        val authenticationBuilder = new DefaultAuthenticationBuilder(holder.getPrincipal())
            .addAttribute(OAuth20Constants.SCOPE, holder.getScope())
            .addAttribute(OAuth20Constants.CLIENT_ID, holder.getClientId());
        
        FunctionUtils.doIfNotBlank(holder.getUserCode(),
            userCode -> authenticationBuilder.addAttribute(OidcConstants.USER_CODE, userCode));
        FunctionUtils.doIfNotBlank(holder.getClientNotificationToken(),
            token -> authenticationBuilder.addAttribute(OidcConstants.CLIENT_NOTIFICATION_TOKEN, token));
        FunctionUtils.doIfNotBlank(holder.getBindingMessage(),
            bindingMessage -> authenticationBuilder.addAttribute(OidcConstants.BINDING_MESSAGE, bindingMessage));
        
        val authentication = authenticationBuilder.build();
        val request = new OidcDefaultCibaRequest(id, authentication, expirationPolicy,
            holder.getScope(), holder.getClientId(), encodeCibaRequestId(id));
        request.setTenantId(holder.getTenant());
        return request;
    }
Default instance for the ticket id generator.
support/cas-server-support-oidc-core-api/src/main/java/org/apereo/cas/oidc/ticket/OidcDefaultCibaRequestFactory.java