docs: @Override
      public X509Certificate[] extract(final HttpServletRequest request) {
          val certHeaderValue = getCertFromHeader(request);
          if (StringUtils.isBlank(certHeaderValue)) {
              LOGGER.debug("No header [{}] found in request (or value was null)", sslClientCertHeader);
              return null;
          }
  
          if (certHeaderValue.length() < X509_HEADER.length()) {
              LOGGER.debug("Header [{}] found but it is too short to parse. Header value: [{}]", sslClientCertHeader, certHeaderValue);
              return null;
          }
  
          val body = sanitizeCertificateBody(certHeaderValue);
          try (InputStream input = new ByteArrayInputStream(body.getBytes(StandardCharsets.ISO_8859_1))) {
              val cert = CertUtils.readCertificate(input);
              LOGGER.debug("Certificate extracted from header [{}] with subject: [{}]", sslClientCertHeader, cert.getSubjectDN());
              return new X509Certificate[]{cert};
          } catch (final Exception e) {
              LOGGER.warn("Error parsing the certificate in header: [{}] value: [{}] with error msg: [{}]", sslClientCertHeader, body, e.getMessage());
              LOGGER.debug("Error parsing the certificate in header: [{}] value: [{}]", sslClientCertHeader, body, e);
          }
          return null;
      }