mirror of https://github.com/Chocobozzz/PeerTube
Don't log error on actor delete signature error
parent
0bc1b31d60
commit
75ba887d10
|
@ -14,7 +14,7 @@ import {
|
|||
videosCustomGetValidator,
|
||||
videosShareValidator
|
||||
} from '../../middlewares'
|
||||
import { getAccountVideoRateValidator, videoCommentGetValidator } from '../../middlewares/validators'
|
||||
import { getAccountVideoRateValidatorFactory, videoCommentGetValidator } from '../../middlewares/validators'
|
||||
import { AccountModel } from '../../models/account/account'
|
||||
import { ActorFollowModel } from '../../models/activitypub/actor-follow'
|
||||
import { VideoModel } from '../../models/video/video'
|
||||
|
@ -63,13 +63,13 @@ activityPubClientRouter.get('/accounts?/:name/playlists',
|
|||
)
|
||||
activityPubClientRouter.get('/accounts?/:name/likes/:videoId',
|
||||
executeIfActivityPub,
|
||||
asyncMiddleware(getAccountVideoRateValidator('like')),
|
||||
getAccountVideoRate('like')
|
||||
asyncMiddleware(getAccountVideoRateValidatorFactory('like')),
|
||||
getAccountVideoRateFactory('like')
|
||||
)
|
||||
activityPubClientRouter.get('/accounts?/:name/dislikes/:videoId',
|
||||
executeIfActivityPub,
|
||||
asyncMiddleware(getAccountVideoRateValidator('dislike')),
|
||||
getAccountVideoRate('dislike')
|
||||
asyncMiddleware(getAccountVideoRateValidatorFactory('dislike')),
|
||||
getAccountVideoRateFactory('dislike')
|
||||
)
|
||||
|
||||
activityPubClientRouter.get('/videos/watch/:id',
|
||||
|
@ -192,7 +192,7 @@ async function accountPlaylistsController (req: express.Request, res: express.Re
|
|||
return activityPubResponse(activityPubContextify(activityPubResult), res)
|
||||
}
|
||||
|
||||
function getAccountVideoRate (rateType: VideoRateType) {
|
||||
function getAccountVideoRateFactory (rateType: VideoRateType) {
|
||||
return (req: express.Request, res: express.Response) => {
|
||||
const accountVideoRate = res.locals.accountVideoRate
|
||||
|
||||
|
|
|
@ -50,7 +50,7 @@ const inboxQueue = queue<QueueParam, Error>((task, cb) => {
|
|||
|
||||
function inboxController (req: express.Request, res: express.Response) {
|
||||
const rootActivity: RootActivity = req.body
|
||||
let activities: Activity[] = []
|
||||
let activities: Activity[]
|
||||
|
||||
if ([ 'Collection', 'CollectionPage' ].indexOf(rootActivity.type) !== -1) {
|
||||
activities = (rootActivity as ActivityPubCollection).items
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
import { NextFunction, Request, Response } from 'express'
|
||||
import { ActivityPubSignature } from '../../shared'
|
||||
import { ActivityDelete, ActivityPubSignature } from '../../shared'
|
||||
import { logger } from '../helpers/logger'
|
||||
import { isHTTPSignatureVerified, isJsonLDSignatureVerified, parseHTTPSignature } from '../helpers/peertube-crypto'
|
||||
import { ACCEPT_HEADERS, ACTIVITY_PUB, HTTP_SIGNATURE } from '../initializers/constants'
|
||||
import { getOrCreateActorAndServerAndModel } from '../lib/activitypub'
|
||||
import { loadActorUrlOrGetFromWebfinger } from '../helpers/webfinger'
|
||||
import { isActorDeleteActivityValid } from '@server/helpers/custom-validators/activitypub/actor'
|
||||
|
||||
async function checkSignature (req: Request, res: Response, next: NextFunction) {
|
||||
try {
|
||||
|
@ -23,7 +24,13 @@ async function checkSignature (req: Request, res: Response, next: NextFunction)
|
|||
|
||||
return next()
|
||||
} catch (err) {
|
||||
logger.warn('Error in ActivityPub signature checker.', err)
|
||||
const activity: ActivityDelete = req.body
|
||||
if (isActorDeleteActivityValid(activity) && activity.object === activity.actor) {
|
||||
logger.debug('Handling signature error on actor delete activity', { err })
|
||||
return res.sendStatus(204)
|
||||
}
|
||||
|
||||
logger.warn('Error in ActivityPub signature checker.', { err })
|
||||
return res.sendStatus(403)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -24,7 +24,7 @@ const videoUpdateRateValidator = [
|
|||
}
|
||||
]
|
||||
|
||||
const getAccountVideoRateValidator = function (rateType: VideoRateType) {
|
||||
const getAccountVideoRateValidatorFactory = function (rateType: VideoRateType) {
|
||||
return [
|
||||
param('name').custom(isAccountNameValid).withMessage('Should have a valid account name'),
|
||||
param('videoId').custom(isIdOrUUIDValid).not().isEmpty().withMessage('Should have a valid videoId'),
|
||||
|
@ -64,6 +64,6 @@ const videoRatingValidator = [
|
|||
|
||||
export {
|
||||
videoUpdateRateValidator,
|
||||
getAccountVideoRateValidator,
|
||||
getAccountVideoRateValidatorFactory,
|
||||
videoRatingValidator
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue