summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/ActivityPubServerService.ts
diff options
context:
space:
mode:
authorかっこかり <67428053+kakkokari-gtyih@users.noreply.github.com>2024-01-21 18:14:42 +0900
committerGitHub <noreply@github.com>2024-01-21 18:14:42 +0900
commitfb309f3d4f49b56464e3dd97d6540e092294baf2 (patch)
tree8c83b65587c7c9057a83ee96e1befbb18d7cd19b /packages/backend/src/server/ActivityPubServerService.ts
parentfix(frontend): MkHorizontalSwipeでメニューを閉じるのに2回クリ... (diff)
downloadsharkey-fb309f3d4f49b56464e3dd97d6540e092294baf2.tar.gz
sharkey-fb309f3d4f49b56464e3dd97d6540e092294baf2.tar.bz2
sharkey-fb309f3d4f49b56464e3dd97d6540e092294baf2.zip
return a `Vary: Accept` header for all dual-format endpoints #365 (#13044)
`/users/:user`, `/@:user`, `/notes/:note` return different responses depending on the request's `Accept:` header. If we don't consistently return a `Vary: Accept` header, browsers and caching proxies will get confused, and return AP representations when HTML was requested, or vice versa. Co-authored-by: dakkar <dakkar@thenautilus.net> Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
Diffstat (limited to 'packages/backend/src/server/ActivityPubServerService.ts')
-rw-r--r--packages/backend/src/server/ActivityPubServerService.ts4
1 files changed, 4 insertions, 0 deletions
diff --git a/packages/backend/src/server/ActivityPubServerService.ts b/packages/backend/src/server/ActivityPubServerService.ts
index 68e426b5bc..4fa6b8afee 100644
--- a/packages/backend/src/server/ActivityPubServerService.ts
+++ b/packages/backend/src/server/ActivityPubServerService.ts
@@ -648,6 +648,8 @@ export class ActivityPubServerService {
});
fastify.get<{ Params: { user: string; } }>('/users/:user', { constraints: { apOrHtml: 'ap' } }, async (request, reply) => {
+ vary(reply.raw, 'Accept');
+
const userId = request.params.user;
const user = await this.usersRepository.findOneBy({
@@ -660,6 +662,8 @@ export class ActivityPubServerService {
});
fastify.get<{ Params: { user: string; } }>('/@:user', { constraints: { apOrHtml: 'ap' } }, async (request, reply) => {
+ vary(reply.raw, 'Accept');
+
const user = await this.usersRepository.findOneBy({
usernameLower: request.params.user.toLowerCase(),
host: IsNull(),