From a500b3964d1f66a3fc306e1490b43db5a5a5715b Mon Sep 17 00:00:00 2001 From: Laura Hausmann Date: Mon, 9 Sep 2024 21:14:32 +0200 Subject: [PATCH] [backend/federation] If present, use ASActor.WebfingerAddress for user resolution (FEP-2c59) --- .../Core/Federation/ActivityPub/UserResolver.cs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Iceshrimp.Backend/Core/Federation/ActivityPub/UserResolver.cs b/Iceshrimp.Backend/Core/Federation/ActivityPub/UserResolver.cs index e98cc106..0a8c7044 100644 --- a/Iceshrimp.Backend/Core/Federation/ActivityPub/UserResolver.cs +++ b/Iceshrimp.Backend/Core/Federation/ActivityPub/UserResolver.cs @@ -74,7 +74,10 @@ public class UserResolver( actor.Normalize(query); var domain = new Uri(actor.Id).Host; var username = actor.Username!; - return await WebFingerAsync($"acct:{username}@{domain}", false, actor.Id); + var wfaddr = actor.WebfingerAddress != null && !actor.WebfingerAddress.StartsWith("acct:") + ? "acct:" + actor.WebfingerAddress + : actor.WebfingerAddress; + return await WebFingerAsync(wfaddr ?? $"acct:{username}@{domain}", false, actor.Id); } catch (Exception e) { @@ -124,7 +127,11 @@ public class UserResolver( actor.Normalize(apUri); var domain = new Uri(actor.Id).Host; var username = new Uri(actor.Username!).Host; - return await WebFingerAsync($"acct:{username}@{domain}", false, apUri, responses); + var wfaddr = actor.WebfingerAddress != null && !actor.WebfingerAddress.StartsWith("acct:") + ? "acct:" + actor.WebfingerAddress + : actor.WebfingerAddress; + + return await WebFingerAsync(wfaddr ?? $"acct:{username}@{domain}", false, apUri, responses); } catch (Exception e) {