From 2f621201f89ce2f40ae3e98675bcf97b2a1627f7 Mon Sep 17 00:00:00 2001 From: silverpill Date: Sun, 19 Feb 2023 21:47:12 +0000 Subject: [PATCH] Accept webfinger requests where "resource" is instance actor ID --- CHANGELOG.md | 1 + src/webfinger/views.rs | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 65e2565..f4e7a37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Support `authorization_code` OAuth grant type. - Documented `http_cors_allowlist` configuration parameter. - Added `/api/v1/statuses/{status_id}/thread` API endpoint (replaces `/api/v1/statuses/{status_id}/context`). +- Accept webfinger requests where `resource` is instance actor ID. ### Changed diff --git a/src/webfinger/views.rs b/src/webfinger/views.rs index 318ca16..453b438 100644 --- a/src/webfinger/views.rs +++ b/src/webfinger/views.rs @@ -38,10 +38,11 @@ async fn get_jrd( parse_acct_uri(resource)? } else { // Actor ID? (reverse webfinger) - let username = parse_local_actor_id( - &instance.url(), - resource, - )?; + let username = if resource == local_instance_actor_id(&instance.url()) { + instance.hostname() + } else { + parse_local_actor_id(&instance.url(), resource)? + }; ActorAddress { username, hostname: instance.hostname() } }; if actor_address.hostname != instance.hostname() {