1 defmodule Pleroma.Web.Plugs.HTTPSignaturePlug do
2 alias Pleroma.Web.HTTPSignatures
10 def call(%{assigns: %{valid_signature: true}} = conn, opts) do
14 def call(conn, opts) do
15 user = conn.params["actor"]
16 Logger.debug("Checking sig for #{user}")
17 [signature | _] = get_req_header(conn, "signature")
20 signature && String.contains?(signature, user) ->
25 String.downcase("#{conn.method}") <> " #{conn.request_path}"
28 assign(conn, :valid_signature, HTTPSignatures.validate_conn(conn))
31 Logger.debug("Signature not from actor")
32 assign(conn, :valid_signature, false)
35 Logger.debug("No signature header!")