mirror of
https://github.com/LemmyNet/lemmy.git
synced 2025-06-05 16:08:54 +00:00
better webfinger handling
This commit is contained in:
parent
cabcf3877f
commit
88f9b14ff3
1 changed files with 17 additions and 13 deletions
|
@ -38,9 +38,9 @@ async fn get_webfinger_response(
|
||||||
) -> Result<HttpResponse, LemmyError> {
|
) -> Result<HttpResponse, LemmyError> {
|
||||||
let name = extract_webfinger_name(&info.resource, &context)?;
|
let name = extract_webfinger_name(&info.resource, &context)?;
|
||||||
|
|
||||||
let links = if name == context.domain() {
|
let links = if name == context.settings().hostname {
|
||||||
// webfinger response for instance actor (required for mastodon authorized fetch)
|
// webfinger response for instance actor (required for mastodon authorized fetch)
|
||||||
let url = Url::parse(&format!("https://{name}"))?;
|
let url = Url::parse(&context.settings().get_protocol_and_hostname())?;
|
||||||
vec![webfinger_link_for_actor(Some(url), "none", &context)]
|
vec![webfinger_link_for_actor(Some(url), "none", &context)]
|
||||||
} else {
|
} else {
|
||||||
// webfinger response for user/community
|
// webfinger response for user/community
|
||||||
|
@ -69,8 +69,11 @@ async fn get_webfinger_response(
|
||||||
}
|
}
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.flatten()
|
.flatten()
|
||||||
.collect();
|
.collect::<Vec<_>>();
|
||||||
|
|
||||||
|
if links.is_empty() {
|
||||||
|
Ok(HttpResponse::NotFound().finish())
|
||||||
|
} else {
|
||||||
let json = Webfinger {
|
let json = Webfinger {
|
||||||
subject: info.resource.clone(),
|
subject: info.resource.clone(),
|
||||||
links,
|
links,
|
||||||
|
@ -82,6 +85,7 @@ async fn get_webfinger_response(
|
||||||
.content_type(&WEBFINGER_CONTENT_TYPE)
|
.content_type(&WEBFINGER_CONTENT_TYPE)
|
||||||
.json(json),
|
.json(json),
|
||||||
)
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn webfinger_link_for_actor(
|
fn webfinger_link_for_actor(
|
||||||
|
|
Loading…
Reference in a new issue