@Override
  public String getSignedId(String blobId, Map<String, String> metadata) throws RestServiceException {
    try {
      String jsonString = SignedIdSerDe.toJson(blobId, metadata);
      return RestUtils.SIGNED_ID_PREFIX + Base64.encodeBase64URLSafeString(jsonString.getBytes(StandardCharsets.UTF_8));
    } catch (Exception e) {
      throw new RestServiceException("Error serializing signed ID", e, RestServiceErrorCode.InternalServerError);
    }
  }
Reference implementation for an {@link IdSigningService}.
<p>
<b>Warning:</b> This implementation is not secure or tamper-proof, since it does not actually sign the data that it
is passed. A secure implementation would either need to use an authenticated encryption scheme or attach a signature.
ambry-frontend/src/main/java/com/github/ambry/frontend/AmbryIdSigningService.java