code: protected String generateAccessTokenHash(final AccessToken accessTokenId,
                                               final OidcRegisteredService service) {
          val alg = getConfigurationContext().getIdTokenSigningAndEncryptionService().getJsonWebKeySigningAlgorithm(service);
          val tokenBytes = accessTokenId.getId().getBytes(StandardCharsets.UTF_8);
          if (AlgorithmIdentifiers.NONE.equalsIgnoreCase(alg)) {
              LOGGER.debug("Signing algorithm specified by service [{}] is unspecified", service.getServiceId());
              return EncodingUtils.encodeUrlSafeBase64(tokenBytes);
          }
  
          val hashAlg = getSigningHashAlgorithm(service);
          LOGGER.debug("Digesting access token hash via algorithm [{}]", hashAlg);
          val digested = DigestUtils.rawDigest(hashAlg, tokenBytes);
          val hashBytesLeftHalf = Arrays.copyOf(digested, digested.length / 2);
          return EncodingUtils.encodeUrlSafeBase64(hashBytesLeftHalf);
      }
docs: Generate access token hash string.
  
  @param accessTokenId the access token id
  @param service       the service
  @return the string