Replace custom WebFinger implementation by Probe::getWebfingerArray in APContact::fetchWebfingerData

- This implementation didn't support separate domains for the address and the final account
This commit is contained in:
Hypolite Petovan 2023-01-26 00:03:57 -05:00
parent 91d8cd2c87
commit 79dc5c177e
2 changed files with 7 additions and 14 deletions

View File

@ -71,21 +71,14 @@ class APContact
return $data; return $data;
} }
$data = ['addr' => $addr]; $webfinger = Probe::getWebfingerArray($addr);
$template = 'https://' . $addr_parts[1] . '/.well-known/webfinger?resource=acct:' . urlencode($addr); if (empty($webfinger['webfinger']['links'])) {
$webfinger = Probe::webfinger(str_replace('{uri}', urlencode($addr), $template), HttpClientAccept::JRD_JSON); return [];
if (empty($webfinger['links'])) {
$template = 'http://' . $addr_parts[1] . '/.well-known/webfinger?resource=acct:' . urlencode($addr);
$webfinger = Probe::webfinger(str_replace('{uri}', urlencode($addr), $template), HttpClientAccept::JRD_JSON);
if (empty($webfinger['links'])) {
return [];
}
$data['baseurl'] = 'http://' . $addr_parts[1];
} else {
$data['baseurl'] = 'https://' . $addr_parts[1];
} }
foreach ($webfinger['links'] as $link) { $data['baseurl'] = $webfinger['baseurl'];
foreach ($webfinger['webfinger']['links'] as $link) {
if (empty($link['rel'])) { if (empty($link['rel'])) {
continue; continue;
} }

View File

@ -519,7 +519,7 @@ class Probe
* @return array Webfinger data * @return array Webfinger data
* @throws HTTPException\InternalServerErrorException * @throws HTTPException\InternalServerErrorException
*/ */
private static function getWebfingerArray(string $uri): array public static function getWebfingerArray(string $uri): array
{ {
$parts = parse_url($uri); $parts = parse_url($uri);