Browse Source

Add Content-Type and User-Agent for activity delivery

noellabo 3 years ago
parent
commit
74cc41d4fa

+ 6 - 1
app/Jobs/DeletePipeline/FanoutDeletePipeline.php

@@ -63,7 +63,12 @@ class FanoutDeletePipeline implements ShouldQueue
 
         $requests = function($audience) use ($client, $activity, $profile, $payload) {
             foreach($audience as $url) {
-                $headers = HttpSignature::sign($profile, $url, $activity);
+				$version = config('pixelfed.version');
+				$appUrl = config('app.url');
+				$headers = HttpSignature::sign($profile, $url, $activity, [
+					'Content-Type'	=> 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"',
+					'User-Agent'	=> "(Pixelfed/{$version}; +{$appUrl})",
+				]);
                 yield function() use ($client, $url, $headers, $payload) {
                     return $client->postAsync($url, [
                         'curl' => [

+ 6 - 1
app/Jobs/SharePipeline/SharePipeline.php

@@ -129,7 +129,12 @@ class SharePipeline implements ShouldQueue
 
 		$requests = function($audience) use ($client, $activity, $profile, $payload) {
 			foreach($audience as $url) {
-				$headers = HttpSignature::sign($profile, $url, $activity);
+				$version = config('pixelfed.version');
+				$appUrl = config('app.url');
+				$headers = HttpSignature::sign($profile, $url, $activity, [
+					'Content-Type'	=> 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"',
+					'User-Agent'	=> "(Pixelfed/{$version}; +{$appUrl})",
+				]);
 				yield function() use ($client, $url, $headers, $payload) {
 					return $client->postAsync($url, [
 						'curl' => [

+ 6 - 1
app/Jobs/SharePipeline/UndoSharePipeline.php

@@ -92,7 +92,12 @@ class UndoSharePipeline implements ShouldQueue
 
 		$requests = function($audience) use ($client, $activity, $profile, $payload) {
 			foreach($audience as $url) {
-				$headers = HttpSignature::sign($profile, $url, $activity);
+				$version = config('pixelfed.version');
+				$appUrl = config('app.url');
+				$headers = HttpSignature::sign($profile, $url, $activity, [
+					'Content-Type'	=> 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"',
+					'User-Agent'	=> "(Pixelfed/{$version}; +{$appUrl})",
+				]);
 				yield function() use ($client, $url, $headers, $payload) {
 					return $client->postAsync($url, [
 						'curl' => [

+ 6 - 1
app/Jobs/StatusPipeline/StatusActivityPubDeliver.php

@@ -87,7 +87,12 @@ class StatusActivityPubDeliver implements ShouldQueue
 
 		$requests = function($audience) use ($client, $activity, $profile, $payload) {
 			foreach($audience as $url) {
-				$headers = HttpSignature::sign($profile, $url, $activity);
+				$version = config('pixelfed.version');
+				$appUrl = config('app.url');
+				$headers = HttpSignature::sign($profile, $url, $activity, [
+					'Content-Type'	=> 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"',
+					'User-Agent'	=> "(Pixelfed/{$version}; +{$appUrl})",
+				]);
 				yield function() use ($client, $url, $headers, $payload) {
 					return $client->postAsync($url, [
 						'curl' => [

+ 6 - 1
app/Jobs/StatusPipeline/StatusDelete.php

@@ -144,7 +144,12 @@ class StatusDelete implements ShouldQueue
 
 		$requests = function($audience) use ($client, $activity, $profile, $payload) {
 			foreach($audience as $url) {
-				$headers = HttpSignature::sign($profile, $url, $activity);
+				$version = config('pixelfed.version');
+				$appUrl = config('app.url');
+				$headers = HttpSignature::sign($profile, $url, $activity, [
+					'Content-Type'	=> 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"',
+					'User-Agent'	=> "(Pixelfed/{$version}; +{$appUrl})",
+				]);
 				yield function() use ($client, $url, $headers, $payload) {
 					return $client->postAsync($url, [
 						'curl' => [

+ 6 - 1
app/Jobs/StoryPipeline/StoryDelete.php

@@ -108,7 +108,12 @@ class StoryDelete implements ShouldQueue
 
 		$requests = function($audience) use ($client, $activity, $profile, $payload) {
 			foreach($audience as $url) {
-				$headers = HttpSignature::sign($profile, $url, $activity);
+				$version = config('pixelfed.version');
+				$appUrl = config('app.url');
+				$headers = HttpSignature::sign($profile, $url, $activity, [
+					'Content-Type'	=> 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"',
+					'User-Agent'	=> "(Pixelfed/{$version}; +{$appUrl})",
+				]);
 				yield function() use ($client, $url, $headers, $payload) {
 					return $client->postAsync($url, [
 						'curl' => [

+ 6 - 1
app/Jobs/StoryPipeline/StoryExpire.php

@@ -125,7 +125,12 @@ class StoryExpire implements ShouldQueue
 
 		$requests = function($audience) use ($client, $activity, $profile, $payload) {
 			foreach($audience as $url) {
-				$headers = HttpSignature::sign($profile, $url, $activity);
+				$version = config('pixelfed.version');
+				$appUrl = config('app.url');
+				$headers = HttpSignature::sign($profile, $url, $activity, [
+					'Content-Type'	=> 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"',
+					'User-Agent'	=> "(Pixelfed/{$version}; +{$appUrl})",
+				]);
 				yield function() use ($client, $url, $headers, $payload) {
 					return $client->postAsync($url, [
 						'curl' => [

+ 7 - 1
app/Jobs/StoryPipeline/StoryFanout.php

@@ -79,7 +79,13 @@ class StoryFanout implements ShouldQueue
 
 		$requests = function($audience) use ($client, $activity, $profile, $payload) {
 			foreach($audience as $url) {
-				$headers = HttpSignature::sign($profile, $url, $activity);
+				$version = config('pixelfed.version');
+				$appUrl = config('app.url');
+				$proxy = config('');
+				$headers = HttpSignature::sign($profile, $url, $activity, [
+					'Content-Type'	=> 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"',
+					'User-Agent'	=> "(Pixelfed/{$version}; +{$appUrl})",
+				]);
 				yield function() use ($client, $url, $headers, $payload) {
 					return $client->postAsync($url, [
 						'curl' => [

+ 6 - 1
app/Services/ActivityPubDeliveryService.php

@@ -49,7 +49,12 @@ class ActivityPubDeliveryService
 
 		$body = $this->payload;
 		$payload = json_encode($body);
-		$headers = HttpSignature::sign($this->sender, $this->to, $body);
+		$version = config('pixelfed.version');
+		$appUrl = config('app.url');
+		$headers = HttpSignature::sign($this->sender, $this->to, $body, [
+			'Content-Type'	=> 'application/ld+json; profile="https://www.w3.org/ns/activitystreams"',
+			'User-Agent'	=> "(Pixelfed/{$version}; +{$appUrl})",
+		]);
 
 		$ch = curl_init($this->to);
 		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);