From 2ca51f752daa718e0f8e0fb913e42a34d4856f7a Mon Sep 17 00:00:00 2001 From: Michael Date: Wed, 30 Mar 2022 14:39:53 +0000 Subject: [PATCH] Use appropriate "accept" values --- mod/redir.php | 2 +- src/Model/Profile.php | 2 +- src/Network/HTTPClient/Client/HttpClient.php | 27 ++++++++++---------- src/Network/Probe.php | 2 +- src/Protocol/Salmon.php | 2 +- 5 files changed, 18 insertions(+), 17 deletions(-) diff --git a/mod/redir.php b/mod/redir.php index 5a707d229..dc086ae19 100644 --- a/mod/redir.php +++ b/mod/redir.php @@ -144,7 +144,7 @@ function redir_magic($a, $cid, $url) } // Test for magic auth on the target system - $serverret = DI::httpClient()->get($basepath . '/magic', [HttpClientOptions::ACCEPT_CONTENT => HttpClient::ACCEPT_DEFAULT]); + $serverret = DI::httpClient()->head($basepath . '/magic', [HttpClientOptions::ACCEPT_CONTENT => HttpClient::ACCEPT_HTML]); if ($serverret->isSuccess()) { $separator = strpos($target_url, '?') ? '&' : '?'; $target_url .= $separator . 'zrl=' . urlencode($visitor) . '&addr=' . urlencode($contact_url); diff --git a/src/Model/Profile.php b/src/Model/Profile.php index 3a453cc87..85af20300 100644 --- a/src/Model/Profile.php +++ b/src/Model/Profile.php @@ -751,7 +751,7 @@ class Profile $magic_path = $basepath . '/magic' . '?owa=1&dest=' . $dest . '&' . $addr_request; // We have to check if the remote server does understand /magic without invoking something - $serverret = DI::httpClient()->get($basepath . '/magic', [HttpClientOptions::ACCEPT_CONTENT => HttpClient::ACCEPT_DEFAULT]); + $serverret = DI::httpClient()->head($basepath . '/magic', [HttpClientOptions::ACCEPT_CONTENT => HttpClient::ACCEPT_HTML]); if ($serverret->isSuccess()) { Logger::info('Doing magic auth for visitor ' . $my_url . ' to ' . $magic_path); System::externalRedirect($magic_path); diff --git a/src/Network/HTTPClient/Client/HttpClient.php b/src/Network/HTTPClient/Client/HttpClient.php index e8e77a6b0..8cb2d9cb6 100644 --- a/src/Network/HTTPClient/Client/HttpClient.php +++ b/src/Network/HTTPClient/Client/HttpClient.php @@ -44,19 +44,20 @@ use Psr\Log\LoggerInterface; class HttpClient implements ICanSendHttpRequests { /** @var string Default value for "Accept" header */ - const ACCEPT_DEFAULT = '*/*'; - const ACCEPT_ATOM_XML = 'application/atom+xml,text/xml;q=0.9,*/*;q=0.8'; - const ACCEPT_FEED_XML = 'application/atom+xml,application/rss+xml;q=0.9,application/rdf+xml;q=0.8,text/xml;q=0.7,*/*;q=0.6'; - const ACCEPT_HTML = 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'; - const ACCEPT_IMAGE = 'image/png,image/jpeg,image/gif,image/*;q=0.9,*/*;q=0.8'; - const ACCEPT_JRD_JSON = 'application/jrd+json,application/json;q=0.9'; - const ACCEPT_JSON = 'application/json,*/*;q=0.9'; - const ACCEPT_JSON_AS = 'application/activity+json, application/ld+json; profile="https://www.w3.org/ns/activitystreams"'; - const ACCEPT_MAGIC = 'application/magic-envelope+xml'; - const ACCEPT_RSS_XML = 'application/rss+xml,text/xml;q=0.9,*/*;q=0.8'; - const ACCEPT_TEXT = 'text/plain,text/*;q=0.9,*/*;q=0.8'; - const ACCEPT_VIDEO = 'video/mp4,video/*;q=0.9,*/*;q=0.8'; - const ACCEPT_XRD_XML = 'application/xrd+xml,text/xml;q=0.9,*/*;q=0.8'; + const ACCEPT_DEFAULT = '*/*'; + const ACCEPT_ATOM_XML = 'application/atom+xml,text/xml;q=0.9,*/*;q=0.8'; + const ACCEPT_FEED_XML = 'application/atom+xml,application/rss+xml;q=0.9,application/rdf+xml;q=0.8,text/xml;q=0.7,*/*;q=0.6'; + const ACCEPT_HTML = 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'; + const ACCEPT_IMAGE = 'image/png,image/jpeg,image/gif,image/*;q=0.9,*/*;q=0.8'; + const ACCEPT_JRD_JSON = 'application/jrd+json,application/json;q=0.9'; + const ACCEPT_JSON = 'application/json,*/*;q=0.9'; + const ACCEPT_JSON_AS = 'application/activity+json, application/ld+json; profile="https://www.w3.org/ns/activitystreams"'; + const ACCEPT_MAGIC = 'application/magic-envelope+xml'; + const ACCEPT_MAGIC_KEY = 'application/magic-public-key'; + const ACCEPT_RSS_XML = 'application/rss+xml,text/xml;q=0.9,*/*;q=0.8'; + const ACCEPT_TEXT = 'text/plain,text/*;q=0.9,*/*;q=0.8'; + const ACCEPT_VIDEO = 'video/mp4,video/*;q=0.9,*/*;q=0.8'; + const ACCEPT_XRD_XML = 'application/xrd+xml,text/xml;q=0.9,*/*;q=0.8'; /** @var LoggerInterface */ private $logger; diff --git a/src/Network/Probe.php b/src/Network/Probe.php index b347f235a..51fb84261 100644 --- a/src/Network/Probe.php +++ b/src/Network/Probe.php @@ -1527,7 +1527,7 @@ class Probe $pubkey = substr($pubkey, 5); } } elseif (Strings::normaliseLink($pubkey) == 'http://') { - $curlResult = DI::httpClient()->get($pubkey, [HttpClientOptions::ACCEPT_CONTENT => HttpClient::ACCEPT_DEFAULT]); + $curlResult = DI::httpClient()->get($pubkey, [HttpClientOptions::ACCEPT_CONTENT => HttpClient::ACCEPT_MAGIC_KEY]); if ($curlResult->isTimeout()) { self::$istimeout = true; return $short ? false : []; diff --git a/src/Protocol/Salmon.php b/src/Protocol/Salmon.php index 4fcef9177..2f12cdf1c 100644 --- a/src/Protocol/Salmon.php +++ b/src/Protocol/Salmon.php @@ -73,7 +73,7 @@ class Salmon $ret[$x] = substr($ret[$x], 5); } } elseif (Strings::normaliseLink($ret[$x]) == 'http://') { - $ret[$x] = DI::httpClient()->fetch($ret[$x], 0, HttpClient::ACCEPT_DEFAULT); + $ret[$x] = DI::httpClient()->fetch($ret[$x], 0, HttpClient::ACCEPT_MAGIC_KEY); Logger::debug('Fetched public key', ['url' => $ret[$x]]); } }