From 6bf1bea325608be51d5823f5d94af56fd576198a Mon Sep 17 00:00:00 2001 From: a Date: Mon, 5 Dec 2022 14:05:15 -0600 Subject: [PATCH] Fix: Use correct Content-Type over ActivityPub This was causing federation issues --- app/Http/Controllers/FederationController.php | 2 +- app/Http/Controllers/InstanceActorController.php | 4 ++-- app/Http/Controllers/ProfileController.php | 2 +- app/Http/Controllers/StatusController.php | 2 +- app/Jobs/RemoteFollowPipeline/RemoteFollowPipeline.php | 2 +- app/Jobs/StoryPipeline/StoryFetch.php | 2 +- app/Services/ActivityPubFetchService.php | 2 +- app/Util/ActivityPub/HttpSignature.php | 2 +- 8 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/FederationController.php b/app/Http/Controllers/FederationController.php index e78ac6287..0f1f5b853 100644 --- a/app/Http/Controllers/FederationController.php +++ b/app/Http/Controllers/FederationController.php @@ -133,7 +133,7 @@ class FederationController extends Controller // }); $res = []; - return response(json_encode($res, JSON_UNESCAPED_SLASHES))->header('Content-Type', 'application/activity+json'); + return response(json_encode($res, JSON_UNESCAPED_SLASHES))->header('Content-Type', 'application/ld+json; profile="http://www.w3.org/ns/activitystreams"'); } public function userInbox(Request $request, $username) diff --git a/app/Http/Controllers/InstanceActorController.php b/app/Http/Controllers/InstanceActorController.php index 0eb796732..318ab317f 100644 --- a/app/Http/Controllers/InstanceActorController.php +++ b/app/Http/Controllers/InstanceActorController.php @@ -14,7 +14,7 @@ class InstanceActorController extends Controller $res = (new InstanceActor())->first()->getActor(); return json_encode($res, JSON_UNESCAPED_SLASHES); }); - return response($res)->header('Content-Type', 'application/activity+json'); + return response($res)->header('Content-Type', 'application/ld+json; profile="http://www.w3.org/ns/activitystreams"'); } public function inbox() @@ -32,6 +32,6 @@ class InstanceActorController extends Controller 'first' => config('app.url') . '/i/actor/outbox?page=true', 'last' => config('app.url') . '/i/actor/outbox?min_id=0page=true' ], JSON_UNESCAPED_SLASHES); - return response($res)->header('Content-Type', 'application/activity+json'); + return response($res)->header('Content-Type', 'application/ld+json; profile="http://www.w3.org/ns/activitystreams"'); } } diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index 3f6795d5b..0031fc580 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -191,7 +191,7 @@ class ProfileController extends Controller $fractal = new Fractal\Manager(); $resource = new Fractal\Resource\Item($user, new ProfileTransformer); $res = $fractal->createData($resource)->toArray(); - return response(json_encode($res['data']))->header('Content-Type', 'application/activity+json'); + return response(json_encode($res['data']))->header('Content-Type', 'application/ld+json; profile="http://www.w3.org/ns/activitystreams"'); }); } diff --git a/app/Http/Controllers/StatusController.php b/app/Http/Controllers/StatusController.php index 117124bb9..a7bb36694 100644 --- a/app/Http/Controllers/StatusController.php +++ b/app/Http/Controllers/StatusController.php @@ -293,7 +293,7 @@ class StatusController extends Controller $resource = new Fractal\Resource\Item($status, $object); $res = $fractal->createData($resource)->toArray(); - return response()->json($res['data'], 200, ['Content-Type' => 'application/activity+json'], JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES); + return response()->json($res['data'], 200, ['Content-Type' => 'application/ld+json; profile="http://www.w3.org/ns/activitystreams"'], JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES); } public function edit(Request $request, $username, $id) diff --git a/app/Jobs/RemoteFollowPipeline/RemoteFollowPipeline.php b/app/Jobs/RemoteFollowPipeline/RemoteFollowPipeline.php index 92e5f8de0..483772bd8 100644 --- a/app/Jobs/RemoteFollowPipeline/RemoteFollowPipeline.php +++ b/app/Jobs/RemoteFollowPipeline/RemoteFollowPipeline.php @@ -97,7 +97,7 @@ class RemoteFollowPipeline implements ShouldQueue $res = $this->response; $url = $res['inbox']; - $activity = Zttp::withHeaders(['Content-Type' => 'application/activity+json'])->post($url, [ + $activity = Zttp::withHeaders(['Content-Type' => 'application/ld+json; profile="http://www.w3.org/ns/activitystreams"'])->post($url, [ 'type' => 'Follow', 'object' => $this->follower->url(), ]); diff --git a/app/Jobs/StoryPipeline/StoryFetch.php b/app/Jobs/StoryPipeline/StoryFetch.php index 771ed9a31..9032bbbf7 100644 --- a/app/Jobs/StoryPipeline/StoryFetch.php +++ b/app/Jobs/StoryPipeline/StoryFetch.php @@ -69,7 +69,7 @@ class StoryFetch implements ShouldQueue $version = config('pixelfed.version'); $appUrl = config('app.url'); $headers = [ - 'Accept' => 'application/json', + 'Accept' => 'application/ld+json; profile="http://www.w3.org/ns/activitystreams"', 'Authorization' => 'Bearer ' . $token, 'User-Agent' => "(Pixelfed/{$version}; +{$appUrl})", ]; diff --git a/app/Services/ActivityPubFetchService.php b/app/Services/ActivityPubFetchService.php index b137e7bb6..fd9dc68e5 100644 --- a/app/Services/ActivityPubFetchService.php +++ b/app/Services/ActivityPubFetchService.php @@ -17,7 +17,7 @@ class ActivityPubFetchService } $headers = HttpSignature::instanceActorSign($url, false); - $headers['Accept'] = 'application/activity+json, application/json'; + $headers['Accept'] = 'application/activity+json, application/ld+json; profile="http://www.w3.org/ns/activitystreams"'; $headers['User-Agent'] = '(Pixelfed/'.config('pixelfed.version').'; +'.config('app.url').')'; try { diff --git a/app/Util/ActivityPub/HttpSignature.php b/app/Util/ActivityPub/HttpSignature.php index 792762b10..c5f5823d0 100644 --- a/app/Util/ActivityPub/HttpSignature.php +++ b/app/Util/ActivityPub/HttpSignature.php @@ -132,7 +132,7 @@ class HttpSignature { '(request-target)' => 'post '.parse_url($url, PHP_URL_PATH), 'Date' => $date->format('D, d M Y H:i:s \G\M\T'), 'Host' => parse_url($url, PHP_URL_HOST), - 'Accept' => 'application/activity+json, application/json', + 'Accept' => 'application/activity+json, application/ld+json; profile="http://www.w3.org/ns/activitystreams"', ]; if($digest) {