commit: e9d972463793c1e3bba78ee4607fd00c271d468b
parent f70d1a436b343f010b3b8d638151d746b889c01b
Author: Lain Soykaf <lain@lain.com>
Date: Sun, 21 Dec 2025 17:46:39 +0400
WebFinger: Tighten the requirements.
Diffstat:
1 file changed, 15 insertions(+), 3 deletions(-)
diff --git a/lib/pleroma/web/web_finger.ex b/lib/pleroma/web/web_finger.ex
@@ -265,11 +265,23 @@ defmodule Pleroma.Web.WebFinger do
true
end
- defp resolved_webfinger_matches?(_request_url, _resolved_url, %{"subject" => "acct:" <> acct}) do
- with {:ok, %{"subject" => "acct:" <> new_acct}} <- do_finger(acct, false) do
- acct == new_acct
+ defp resolved_webfinger_matches?(
+ _request_url,
+ _resolved_url,
+ %{"subject" => "acct:" <> acct} = data
+ ) do
+ with {:ok, %{"subject" => "acct:" <> new_acct} = new_data} <- do_finger(acct, false),
+ true <- acct == new_acct,
+ true <- webfinger_data_matches?(data, new_data) do
+ true
else
_ -> false
end
end
+
+ defp webfinger_data_matches?(%{"ap_id" => ap_id}, %{"ap_id" => ap_id}) when ap_id != "" do
+ true
+ end
+
+ defp webfinger_data_matches?(_data, _new_data), do: false
end