docs: @PostMapping(value = "/v1/tickets/{tgtId:.+}", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE)
      public ResponseEntity<String> createServiceTicket(final HttpServletRequest httpServletRequest,
                                                        @RequestBody(required = false) final MultiValueMap<String, String> requestBody,
                                                        @PathVariable("tgtId") final String tgtId) {
          try {
              val authn = this.ticketRegistrySupport.getAuthenticationFrom(tgtId);
              AuthenticationCredentialsThreadLocalBinder.bindCurrent(authn);
              if (authn == null) {
                  throw new InvalidTicketException(tgtId);
              }
              val service = this.argumentExtractor.extractService(httpServletRequest);
              if (service == null) {
                  throw new IllegalArgumentException("Target service/application is unspecified or unrecognized in the request");
              }
              if (BooleanUtils.toBoolean(httpServletRequest.getParameter(CasProtocolConstants.PARAMETER_RENEW))) {
                  val credential = this.credentialFactory.fromRequest(httpServletRequest, requestBody);
                  if (credential == null || credential.isEmpty()) {
                      throw new BadRestRequestException("No credentials are provided or extracted to authenticate the REST request");
                  }
                  val authenticationResult =
                      authenticationSystemSupport.handleAndFinalizeSingleAuthenticationTransaction(service, credential);
  
                  return this.serviceTicketResourceEntityResponseFactory.build(tgtId, service, authenticationResult);
              } else {
                  val builder = new DefaultAuthenticationResultBuilder();
                  val authenticationResult = builder
                      .collect(authn)
                      .build(this.authenticationSystemSupport.getPrincipalElectionStrategy(), service);
                  return this.serviceTicketResourceEntityResponseFactory.build(tgtId, service, authenticationResult);
              }
          } catch (final InvalidTicketException e) {
              return new ResponseEntity<>(tgtId + " could not be found or is considered invalid", HttpStatus.NOT_FOUND);
          } catch (final AuthenticationException e) {
              return RestResourceUtils.createResponseEntityForAuthnFailure(e, httpServletRequest, applicationContext);
          } catch (final BadRestRequestException e) {
              LOGGER.error(e.getMessage(), e);
              return new ResponseEntity<>(e.getMessage(), HttpStatus.BAD_REQUEST);
          } catch (final Exception e) {
              LOGGER.error(e.getMessage(), e);
              return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
          } finally {
              AuthenticationCredentialsThreadLocalBinder.clear();
          }
      }