import { eachSeries } from 'async'
import { NextFunction, Request, RequestHandler, Response } from 'express'
import { ActivityPubSignature } from '../../shared'
-import { isSignatureVerified, logger } from '../helpers'
+import { logger } from '../helpers/logger'
+import { isSignatureVerified } from '../helpers/peertube-crypto'
import { ACCEPT_HEADERS, ACTIVITY_PUB } from '../initializers'
import { getOrCreateActorAndServerAndModel } from '../lib/activitypub'
import { ActorModel } from '../models/activitypub/actor'
async function checkSignature (req: Request, res: Response, next: NextFunction) {
const signatureObject: ActivityPubSignature = req.body.signature
- logger.debug('Checking signature of actor %s...', signatureObject.creator)
+ const [ creator ] = signatureObject.creator.split('#')
+
+ logger.debug('Checking signature of actor %s...', creator)
let actor: ActorModel
try {
- actor = await getOrCreateActorAndServerAndModel(signatureObject.creator)
+ actor = await getOrCreateActorAndServerAndModel(creator)
} catch (err) {
- logger.error('Cannot create remote actor and check signature.', err)
+ logger.warn('Cannot create remote actor %s and check signature.', creator, { err })
return res.sendStatus(403)
}