Browse Source

fix /inbox for Relay

tags/v1.1.4
Maksim Pechnikov 4 years ago
parent
commit
8dc6a6b210
4 changed files with 17 additions and 7 deletions
  1. +1
    -3
      lib/pleroma/object/fetcher.ex
  2. +6
    -0
      lib/pleroma/signature.ex
  3. +1
    -3
      lib/pleroma/web/activity_pub/publisher.ex
  4. +9
    -1
      lib/pleroma/web/router.ex

+ 1
- 3
lib/pleroma/object/fetcher.ex View File

@@ -117,9 +117,7 @@ defmodule Pleroma.Object.Fetcher do
def fetch_and_contain_remote_object_from_id(id) when is_binary(id) do
Logger.info("Fetching object #{id} via AP")

date =
NaiveDateTime.utc_now()
|> Timex.format!("{WDshort}, {0D} {Mshort} {YYYY} {h24}:{m}:{s} GMT")
date = Pleroma.Signature.signed_date()

headers =
[{:Accept, "application/activity+json"}]


+ 6
- 0
lib/pleroma/signature.ex View File

@@ -53,4 +53,10 @@ defmodule Pleroma.Signature do
HTTPSignatures.sign(private_key, user.ap_id <> "#main-key", headers)
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

+ 1
- 3
lib/pleroma/web/activity_pub/publisher.ex View File

@@ -50,9 +50,7 @@ defmodule Pleroma.Web.ActivityPub.Publisher do

digest = "SHA-256=" <> (:crypto.hash(:sha256, json) |> Base.encode64())

date =
NaiveDateTime.utc_now()
|> Timex.format!("{WDshort}, {0D} {Mshort} {YYYY} {h24}:{m}:{s} GMT")
date = Pleroma.Signature.signed_date()

signature =
Pleroma.Signature.sign(actor, %{


+ 9
- 1
lib/pleroma/web/router.ex View File

@@ -133,6 +133,10 @@ defmodule Pleroma.Web.Router do
})
end

pipeline :http_signature do
plug(Pleroma.Web.Plugs.HTTPSignaturePlug)
end

scope "/api/pleroma", Pleroma.Web.TwitterAPI do
pipe_through(:pleroma_api)

@@ -686,7 +690,11 @@ defmodule Pleroma.Web.Router do
pipe_through(:ap_service_actor)

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("/followers", ActivityPubController, :followers, assigns: %{relay: true})


Loading…
Cancel
Save