summaryrefslogtreecommitdiff
path: root/packages/backend/src
diff options
context:
space:
mode:
authorsyuilo <4439005+syuilo@users.noreply.github.com>2025-03-17 13:27:47 +0900
committersyuilo <4439005+syuilo@users.noreply.github.com>2025-03-17 13:27:47 +0900
commit474155b6778a1046feb32df437d7d352d8ed9651 (patch)
treea636d75f8ff643119a4aa2a83ac5ccc4b4f99d18 /packages/backend/src
parentfix(backend): 連合無しモードでも外部から照会可能だった問... (diff)
downloadsharkey-474155b6778a1046feb32df437d7d352d8ed9651.tar.gz
sharkey-474155b6778a1046feb32df437d7d352d8ed9651.tar.bz2
sharkey-474155b6778a1046feb32df437d7d352d8ed9651.zip
follow up of 6c8f21b608eb6e9e7691983c7e57f1cbe0a28fc1
Diffstat (limited to 'packages/backend/src')
-rw-r--r--packages/backend/src/server/WellKnownServerService.ts25
1 files changed, 24 insertions, 1 deletions
diff --git a/packages/backend/src/server/WellKnownServerService.ts b/packages/backend/src/server/WellKnownServerService.ts
index 8e326da89a..d106be5bc8 100644
--- a/packages/backend/src/server/WellKnownServerService.ts
+++ b/packages/backend/src/server/WellKnownServerService.ts
@@ -8,7 +8,7 @@ import { IsNull } from 'typeorm';
import vary from 'vary';
import fastifyAccepts from '@fastify/accepts';
import { DI } from '@/di-symbols.js';
-import type { UsersRepository } from '@/models/_.js';
+import type { MiMeta, UsersRepository } from '@/models/_.js';
import type { Config } from '@/config.js';
import { escapeAttribute, escapeValue } from '@/misc/prelude/xml.js';
import type { MiUser } from '@/models/User.js';
@@ -26,6 +26,9 @@ export class WellKnownServerService {
@Inject(DI.config)
private config: Config,
+ @Inject(DI.meta)
+ private meta: MiMeta,
+
@Inject(DI.usersRepository)
private usersRepository: UsersRepository,
@@ -66,6 +69,11 @@ export class WellKnownServerService {
});
fastify.get('/.well-known/host-meta', async (request, reply) => {
+ if (this.meta.federation === 'none') {
+ reply.code(403);
+ return;
+ }
+
reply.header('Content-Type', xrd);
return XRD({ element: 'Link', attributes: {
rel: 'lrdd',
@@ -75,6 +83,11 @@ export class WellKnownServerService {
});
fastify.get('/.well-known/host-meta.json', async (request, reply) => {
+ if (this.meta.federation === 'none') {
+ reply.code(403);
+ return;
+ }
+
reply.header('Content-Type', 'application/json');
return {
links: [{
@@ -86,6 +99,11 @@ export class WellKnownServerService {
});
fastify.get('/.well-known/nodeinfo', async (request, reply) => {
+ if (this.meta.federation === 'none') {
+ reply.code(403);
+ return;
+ }
+
return { links: this.nodeinfoServerService.getLinks() };
});
@@ -99,6 +117,11 @@ fastify.get('/.well-known/change-password', async (request, reply) => {
*/
fastify.get<{ Querystring: { resource: string } }>(webFingerPath, async (request, reply) => {
+ if (this.meta.federation === 'none') {
+ reply.code(403);
+ return;
+ }
+
const fromId = (id: MiUser['id']): FindOptionsWhere<MiUser> => ({
id,
host: IsNull(),