Parse http signature for request to objects/activities
authorrinpatch <rinpatch@sdf.org>
Thu, 12 Sep 2019 19:40:53 +0000 (22:40 +0300)
committerrinpatch <rinpatch@sdf.org>
Thu, 12 Sep 2019 20:03:52 +0000 (23:03 +0300)
lib/pleroma/plugs/http_signature.ex
lib/pleroma/web/router.ex

index d87fa52fa521b1df96df165491ddddf9073c7d3c..23d22a712fcf9839490b9d4cf44de3a370c7cf9b 100644 (file)
@@ -15,7 +15,8 @@ defmodule Pleroma.Web.Plugs.HTTPSignaturePlug do
   end
 
   def call(conn, _opts) do
-    [signature | _] = get_req_header(conn, "signature")
+    headers = get_req_header(conn, "signature")
+    signature = Enum.at(headers, 0)
 
     if signature do
       # set (request-target) header to the appropriate value
index 7cd59acb2725d28d4b9ca04b66556a0f24fcaece..badc7e048fb949b6b30942b2b8d0aad716dc144a 100644 (file)
@@ -135,6 +135,7 @@ defmodule Pleroma.Web.Router do
 
   pipeline :http_signature do
     plug(Pleroma.Web.Plugs.HTTPSignaturePlug)
+    plug(Pleroma.Web.Plugs.MappedSignatureToIdentityPlug)
   end
 
   scope "/api/pleroma", Pleroma.Web.TwitterAPI do
@@ -513,6 +514,7 @@ defmodule Pleroma.Web.Router do
 
   scope "/", Pleroma.Web do
     pipe_through(:ostatus)
+    pipe_through(:http_signature)
 
     get("/objects/:uuid", OStatus.OStatusController, :object)
     get("/activities/:uuid", OStatus.OStatusController, :activity)