logo

pleroma

My custom branche(s) on git.pleroma.social/pleroma/pleroma git clone https://anongit.hacktivis.me/git/pleroma.git/
commit: e9d972463793c1e3bba78ee4607fd00c271d468b
parent f70d1a436b343f010b3b8d638151d746b889c01b
Author: Lain Soykaf <lain@lain.com>
Date:   Sun, 21 Dec 2025 17:46:39 +0400

WebFinger: Tighten the requirements.

Diffstat:

Mlib/pleroma/web/web_finger.ex18+++++++++++++++---
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