From b002d905cb5079002cd9f5d09aedfb25ac527b68 Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Tue, 23 Mar 2021 19:28:19 +0100 Subject: [PATCH] Handle calling .well-known/host-meta with "application/xrd+xml" accept header Signed-off-by: Thomas Citharel --- config/config.exs | 3 ++- lib/web/router.ex | 11 ++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/config/config.exs b/config/config.exs index 3d0c6ac3d..038cd81cf 100644 --- a/config/config.exs +++ b/config/config.exs @@ -59,7 +59,8 @@ config :mobilizon, Mobilizon.Web.Endpoint, config :mime, :types, %{ "application/activity+json" => ["activity-json"], "application/ld+json" => ["activity-json"], - "application/jrd+json" => ["jrd-json"] + "application/jrd+json" => ["jrd-json"], + "application/xrd+xml" => ["xrd-xml"] } # Upload configuration diff --git a/lib/web/router.ex b/lib/web/router.ex index a74a84bfd..54287a012 100644 --- a/lib/web/router.ex +++ b/lib/web/router.ex @@ -9,6 +9,10 @@ defmodule Mobilizon.Web.Router do plug(Mobilizon.Web.Auth.Pipeline) end + pipeline :host_meta do + plug(:accepts, ["xrd-xml"]) + end + pipeline :well_known do plug(:accepts, ["json", "jrd-json"]) end @@ -67,9 +71,14 @@ defmodule Mobilizon.Web.Router do end scope "/.well-known", Mobilizon.Web do - pipe_through(:well_known) + pipe_through(:host_meta) get("/host-meta", WebFingerController, :host_meta) + end + + scope "/.well-known", Mobilizon.Web do + pipe_through(:well_known) + get("/webfinger", WebFingerController, :webfinger) get("/nodeinfo", NodeInfoController, :schemas) get("/nodeinfo/:version", NodeInfoController, :nodeinfo)