fix /inbox for Relay
This commit is contained in:
parent
399ca9133b
commit
8dc6a6b210
4 changed files with 17 additions and 7 deletions
|
@ -117,9 +117,7 @@ defp maybe_date_fetch(headers, date) do
|
||||||
def fetch_and_contain_remote_object_from_id(id) when is_binary(id) do
|
def fetch_and_contain_remote_object_from_id(id) when is_binary(id) do
|
||||||
Logger.info("Fetching object #{id} via AP")
|
Logger.info("Fetching object #{id} via AP")
|
||||||
|
|
||||||
date =
|
date = Pleroma.Signature.signed_date()
|
||||||
NaiveDateTime.utc_now()
|
|
||||||
|> Timex.format!("{WDshort}, {0D} {Mshort} {YYYY} {h24}:{m}:{s} GMT")
|
|
||||||
|
|
||||||
headers =
|
headers =
|
||||||
[{:Accept, "application/activity+json"}]
|
[{:Accept, "application/activity+json"}]
|
||||||
|
|
|
@ -53,4 +53,10 @@ def sign(%User{} = user, headers) do
|
||||||
HTTPSignatures.sign(private_key, user.ap_id <> "#main-key", headers)
|
HTTPSignatures.sign(private_key, user.ap_id <> "#main-key", headers)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def signed_date, do: signed_date(NaiveDateTime.utc_now())
|
||||||
|
|
||||||
|
def signed_date(%NaiveDateTime{} = date) do
|
||||||
|
Timex.format!(date, "{WDshort}, {0D} {Mshort} {YYYY} {h24}:{m}:{s} GMT")
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -50,9 +50,7 @@ def publish_one(%{inbox: inbox, json: json, actor: %User{} = actor, id: id} = pa
|
||||||
|
|
||||||
digest = "SHA-256=" <> (:crypto.hash(:sha256, json) |> Base.encode64())
|
digest = "SHA-256=" <> (:crypto.hash(:sha256, json) |> Base.encode64())
|
||||||
|
|
||||||
date =
|
date = Pleroma.Signature.signed_date()
|
||||||
NaiveDateTime.utc_now()
|
|
||||||
|> Timex.format!("{WDshort}, {0D} {Mshort} {YYYY} {h24}:{m}:{s} GMT")
|
|
||||||
|
|
||||||
signature =
|
signature =
|
||||||
Pleroma.Signature.sign(actor, %{
|
Pleroma.Signature.sign(actor, %{
|
||||||
|
|
|
@ -133,6 +133,10 @@ defmodule Pleroma.Web.Router do
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
|
pipeline :http_signature do
|
||||||
|
plug(Pleroma.Web.Plugs.HTTPSignaturePlug)
|
||||||
|
end
|
||||||
|
|
||||||
scope "/api/pleroma", Pleroma.Web.TwitterAPI do
|
scope "/api/pleroma", Pleroma.Web.TwitterAPI do
|
||||||
pipe_through(:pleroma_api)
|
pipe_through(:pleroma_api)
|
||||||
|
|
||||||
|
@ -686,7 +690,11 @@ defmodule Pleroma.Web.Router do
|
||||||
pipe_through(:ap_service_actor)
|
pipe_through(:ap_service_actor)
|
||||||
|
|
||||||
get("/", ActivityPubController, :relay)
|
get("/", ActivityPubController, :relay)
|
||||||
post("/inbox", ActivityPubController, :inbox)
|
|
||||||
|
scope [] do
|
||||||
|
pipe_through(:http_signature)
|
||||||
|
post("/inbox", ActivityPubController, :inbox)
|
||||||
|
end
|
||||||
|
|
||||||
get("/following", ActivityPubController, :following, assigns: %{relay: true})
|
get("/following", ActivityPubController, :following, assigns: %{relay: true})
|
||||||
get("/followers", ActivityPubController, :followers, assigns: %{relay: true})
|
get("/followers", ActivityPubController, :followers, assigns: %{relay: true})
|
||||||
|
|
Loading…
Reference in a new issue