From df0440ea9786e6c905187aa58290fcedad021e8d Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 25 May 2024 18:58:48 +0000 Subject: [PATCH] Issue 14175: Fix problems with upper case host names --- src/Model/APContact.php | 10 +++------- src/Util/HTTPSignature.php | 4 ++-- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/src/Model/APContact.php b/src/Model/APContact.php index dd778ef373..618304605d 100644 --- a/src/Model/APContact.php +++ b/src/Model/APContact.php @@ -84,13 +84,9 @@ class APContact if (!empty($link['template']) && ($link['rel'] == ActivityNamespace::OSTATUSSUB)) { $data['subscribe'] = $link['template']; - } - - if (!empty($link['href']) && !empty($link['type']) && ($link['rel'] == 'self') && ($link['type'] == 'application/activity+json')) { + } elseif (!empty($link['href']) && !empty($link['type']) && ($link['rel'] == 'self') && ($link['type'] == 'application/activity+json')) { $data['url'] = $link['href']; - } - - if (!empty($link['href']) && !empty($link['type']) && ($link['rel'] == ActivityNamespace::WEBFINGERPROFILE) && ($link['type'] == 'text/html')) { + } elseif (!empty($link['href']) && !empty($link['type']) && ($link['rel'] == ActivityNamespace::WEBFINGERPROFILE) && ($link['type'] == 'text/html')) { $data['alias'] = $link['href']; } } @@ -199,7 +195,7 @@ class APContact $failed = empty($curlResult) || empty($curlResult->getBodyString()) || (!$curlResult->isSuccess() && ($curlResult->getReturnCode() != 410)); - if (!$failed) { + if (!$failed) { $data = json_decode($curlResult->getBodyString(), true); $failed = empty($data) || !is_array($data); } diff --git a/src/Util/HTTPSignature.php b/src/Util/HTTPSignature.php index 82ee1981f1..2cb224ef6f 100644 --- a/src/Util/HTTPSignature.php +++ b/src/Util/HTTPSignature.php @@ -281,7 +281,7 @@ class HTTPSignature $content = json_encode($data, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE); // Header data that is about to be signed. - $host = parse_url($target, PHP_URL_HOST); + $host = strtolower(parse_url($target, PHP_URL_HOST)); $path = parse_url($target, PHP_URL_PATH); $digest = 'SHA-256=' . base64_encode(hash('sha256', $content, true)); $content_length = strlen($content); @@ -502,7 +502,7 @@ class HTTPSignature if (!empty($owner['uprvkey'])) { // Header data that is about to be signed. - $host = parse_url($request, PHP_URL_HOST); + $host = strtolower(parse_url($request, PHP_URL_HOST)); $path = parse_url($request, PHP_URL_PATH); $date = DateTimeFormat::utcNow(DateTimeFormat::HTTP);