   aesCryptoServiceUrl = (objectId, objectVersion) ->
     aesUrl() + '/cryptoservice/id/' + objectId + '/' + objectVersion
 
-  aesCryptoServiceCdnUrl = (objectId, objectVersion) ->
-    aesCdnUrl() + '/cryptoservice/id/' + objectId + '/' + objectVersion
+  aesCryptoServiceCdnUrl = (objectId, objectVersion, userId) ->
+    aesCdnUrl() + '/cryptoservice/id/' + objectId + '/' + objectVersion + '/' + userId
 
   #
   # helper functions

        return Promise.resolve(cachedObjectCryptoService)

      Requests.getBlockCiphertextFromUrl(
        aesCryptoServiceUrl(versionedObjectKey.objectId, versionedObjectKey.objectVersion)
      )
      .then (objectCryptoServiceBlockCiphertext) ->
        if objectCryptoServiceBlockCiphertext

      if not validateVersionedObjectKey(versionedObjectKey)
        return Promise.resolve(null)

      userId = getOwnUserId()
      objectCacheId = toCacheId(versionedObjectKey)
      cachedObjectCryptoService = Cache.get(Cache.CRYPTO_SERVICES, objectCacheId)

