X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fcontrollers%2Fwell-known.ts;h=bb9acfb372bbb5b98d7c9f6b940bbc3e7faf3c86;hb=5f3505ba78bc05fc61aeca44d95f9a954934c0fc;hp=f467bd629835e2299b922b8d7a6c6a14899b0f35;hpb=ea8107bff8e544594716a76d30ff372fc80d755c;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/controllers/well-known.ts b/server/controllers/well-known.ts index f467bd629..bb9acfb37 100644 --- a/server/controllers/well-known.ts +++ b/server/controllers/well-known.ts @@ -1,6 +1,7 @@ import cors from 'cors' import express from 'express' import { join } from 'path' +import { asyncMiddleware, handleStaticError, webfingerValidator } from '@server/middlewares' import { root } from '@shared/core-utils' import { CONFIG } from '../initializers/config' import { ROUTE_CACHE_LIFETIME, WEBSERVER } from '../initializers/constants' @@ -10,6 +11,11 @@ const wellKnownRouter = express.Router() wellKnownRouter.use(cors()) +wellKnownRouter.get('/.well-known/webfinger', + asyncMiddleware(webfingerValidator), + webfingerController +) + wellKnownRouter.get('/.well-known/security.txt', cacheRoute(ROUTE_CACHE_LIFETIME.SECURITYTXT), (_, res: express.Response) => { @@ -69,8 +75,38 @@ wellKnownRouter.use('/.well-known/host-meta', } ) +wellKnownRouter.use('/.well-known/', + cacheRoute(ROUTE_CACHE_LIFETIME.WELL_KNOWN), + express.static(CONFIG.STORAGE.WELL_KNOWN_DIR, { fallthrough: false }), + handleStaticError +) + // --------------------------------------------------------------------------- export { wellKnownRouter } + +// --------------------------------------------------------------------------- + +function webfingerController (req: express.Request, res: express.Response) { + const actor = res.locals.actorUrl + + const json = { + subject: req.query.resource, + aliases: [ actor.url ], + links: [ + { + rel: 'self', + type: 'application/activity+json', + href: actor.url + }, + { + rel: 'http://ostatus.org/schema/1.0/subscribe', + template: WEBSERVER.URL + '/remote-interaction?uri={uri}' + } + ] + } + + return res.json(json) +}