From 0405ab52dc0f445b88f8de76e30d6e6719196023 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Tue, 19 Dec 2017 14:21:14 +0100 Subject: [PATCH] Set port if not specified in webfinger --- server/helpers/utils.ts | 18 ++++++++++++++++-- server/middlewares/servers.ts | 16 +--------------- server/middlewares/validators/webfinger.ts | 4 ++-- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/server/helpers/utils.ts b/server/helpers/utils.ts index ef6a878cf..769aa83c6 100644 --- a/server/helpers/utils.ts +++ b/server/helpers/utils.ts @@ -2,13 +2,26 @@ import * as express from 'express' import { Model } from 'sequelize-typescript' import { ResultList } from '../../shared' import { VideoResolution } from '../../shared/models/videos' -import { CONFIG } from '../initializers' +import { CONFIG, REMOTE_SCHEME } from '../initializers' import { UserModel } from '../models/account/user' import { ActorModel } from '../models/activitypub/actor' import { ApplicationModel } from '../models/application/application' import { pseudoRandomBytesPromise } from './core-utils' import { logger } from './logger' +function getHostWithPort (host: string) { + const splitted = host.split(':') + + // The port was not specified + if (splitted.length === 1) { + if (REMOTE_SCHEME.HTTP === 'https') return host + ':443' + + return host + ':80' + } + + return host +} + function badRequest (req: express.Request, res: express.Response, next: express.NextFunction) { return res.type('json').status(400).end() } @@ -108,5 +121,6 @@ export { computeResolutionsToTranscode, resetSequelizeInstance, getServerActor, - SortType + SortType, + getHostWithPort } diff --git a/server/middlewares/servers.ts b/server/middlewares/servers.ts index 488f9c368..87bbe9fd7 100644 --- a/server/middlewares/servers.ts +++ b/server/middlewares/servers.ts @@ -1,5 +1,6 @@ import 'express-validator' import * as express from 'express' +import { getHostWithPort } from '../helpers' import { REMOTE_SCHEME } from '../initializers' @@ -25,18 +26,3 @@ function setBodyHostsPort (req: express.Request, res: express.Response, next: ex export { setBodyHostsPort } - -// --------------------------------------------------------------------------- - -function getHostWithPort (host: string) { - const splitted = host.split(':') - - // The port was not specified - if (splitted.length === 1) { - if (REMOTE_SCHEME.HTTP === 'https') return host + ':443' - - return host + ':80' - } - - return host -} diff --git a/server/middlewares/validators/webfinger.ts b/server/middlewares/validators/webfinger.ts index 2c8351799..894c72498 100644 --- a/server/middlewares/validators/webfinger.ts +++ b/server/middlewares/validators/webfinger.ts @@ -1,6 +1,6 @@ import * as express from 'express' import { query } from 'express-validator/check' -import { logger } from '../../helpers' +import { getHostWithPort, logger } from '../../helpers' import { isWebfingerResourceValid } from '../../helpers/custom-validators/webfinger' import { ActorModel } from '../../models/activitypub/actor' import { areValidationErrors } from './utils' @@ -14,7 +14,7 @@ const webfingerValidator = [ if (areValidationErrors(req, res)) return // Remove 'acct:' from the beginning of the string - const nameWithHost = req.query.resource.substr(5) + const nameWithHost = getHostWithPort(req.query.resource.substr(5)) const [ name ] = nameWithHost.split('@') const actor = await ActorModel.loadLocalByName(name)