@GetMapping({
        '/' + OidcConstants.BASE_OIDC_URL + '/' + OidcConstants.CIBA_URL + "/{clientId}/{requestId}",
        "/**/" + OidcConstants.CIBA_URL + "/{clientId}/{requestId}"
    })
    @Operation(summary = "Initialize backchannel verification request",
        parameters = {
            @Parameter(name = "clientId", in = ParameterIn.PATH, description = "Client ID"),
            @Parameter(name = "requestId", in = ParameterIn.PATH, description = "Request ID")
        })
    public Object initializeBackchannelVerificationRequest(
        @PathVariable("clientId")
        final String clientId,
        @PathVariable("requestId")
        final String requestId) {
        try {
            val registeredService = findRegisteredService(clientId);
            val cibaRequest = fetchOidcCibaRequest(requestId);
            val model = new LinkedHashMap<String, Object>();
            model.put("registeredService", registeredService);
            model.put("cibaRequest", cibaRequest);
            val attributes = cibaRequest.getAuthentication().getAttributes();
            if (attributes.containsKey(OidcConstants.BINDING_MESSAGE)) {
                val bindingMessage = attributes.get(OidcConstants.BINDING_MESSAGE).getFirst();
                model.put("bindingMessage", bindingMessage);
            }
            model.put("userCodeRequired", cibaRequest.getAuthentication().containsAttribute(OidcConstants.USER_CODE));
            return new ModelAndView(OidcConstants.CIBA_VERIFICATION_VIEW, model);
        } catch (final Exception e) {
            LoggingUtils.error(LOGGER, e);
            return ResponseEntity.status(HttpStatus.BAD_REQUEST).build();
        }
    }
Initialize backchannel verification request model and view.

@param clientId  the client id
@param requestId the request id
@return the model and view
support/cas-server-support-oidc-core-api/src/main/java/org/apereo/cas/oidc/web/controllers/ciba/OidcCibaController.java