浏览代码

Merge pull request #3992 from pixelfed/fix-response-type

Fix: Use correct response type and remove Accept from http signature
daniel 2 年之前
父节点
当前提交
ba965a79e5

+ 1 - 1
app/Http/Controllers/FederationController.php

@@ -131,7 +131,7 @@ class FederationController extends Controller
 			'orderedItems' => []
 		];
 
-		return response(json_encode($res, JSON_UNESCAPED_SLASHES))->header('Content-Type', 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"');
+		return response(json_encode($res, JSON_UNESCAPED_SLASHES))->header('Content-Type', 'application/activity+json');
 	}
 
 	public function userInbox(Request $request, $username)

+ 2 - 2
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/ld+json; profile="https://www.w3.org/ns/activitystreams"');
+		return response($res)->header('Content-Type', 'application/activity+json');
 	}
 
 	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/ld+json; profile="https://www.w3.org/ns/activitystreams"');
+		return response($res)->header('Content-Type', 'application/activity+json');
 	}
 }

+ 1 - 1
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/ld+json; profile="https://www.w3.org/ns/activitystreams"');
+			return response(json_encode($res['data']))->header('Content-Type', 'application/activity+json');
 		});
 	}
 

+ 1 - 1
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/ld+json; profile="https://www.w3.org/ns/activitystreams"'], JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES);
+		return response()->json($res['data'], 200, ['Content-Type' => 'application/activity+json'], JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES);
 	}
 
 	public function edit(Request $request, $username, $id)

+ 1 - 1
app/Services/ActivityPubFetchService.php

@@ -17,7 +17,7 @@ class ActivityPubFetchService
 		}
 
 		$headers = HttpSignature::instanceActorSign($url, false);
-		$headers['Accept'] = 'application/activity+json, application/ld+json; profile="https://www.w3.org/ns/activitystreams"';
+		$headers['Accept'] = 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"';
 		$headers['User-Agent'] = '(Pixelfed/'.config('pixelfed.version').'; +'.config('app.url').')';
 
 		try {

+ 3 - 1
app/Services/WebfingerService.php

@@ -48,9 +48,11 @@ class WebfingerService
 		$link = collect($webfinger['links'])
 			->filter(function($link) {
 				return $link &&
+					isset($link['rel']) &&
 					isset($link['type']) &&
 					isset($link['href']) &&
-					$link['type'] == 'application/activity+json';
+					$link['rel'] == 'self' &&
+					$link['type'] == 'application/activity+json' || $link['type'] == 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"';
 			})
 			->pluck('href')
 			->first();

+ 0 - 1
app/Util/ActivityPub/HttpSignature.php

@@ -132,7 +132,6 @@ 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/ld+json; profile="https://www.w3.org/ns/activitystreams"',
     ];
 
     if($digest) {