diff --git a/lib/pleroma/web/plugs/http_signature_plug.ex b/lib/pleroma/web/plugs/http_signature_plug.ex index b68b4cd64..79030be5f 100644 --- a/lib/pleroma/web/plugs/http_signature_plug.ex +++ b/lib/pleroma/web/plugs/http_signature_plug.ex @@ -27,7 +27,7 @@ defmodule Pleroma.Web.Plugs.HTTPSignaturePlug do end end - defp route_aliases(%{path_info: ["objects", id]} = conn) do + def route_aliases(%{path_info: ["objects", id]} = conn) do ap_id = Router.Helpers.o_status_url(Pleroma.Web.Endpoint, :object, id) with %Activity{} = activity <- Activity.get_by_object_ap_id_with_object(ap_id) do @@ -37,7 +37,7 @@ defmodule Pleroma.Web.Plugs.HTTPSignaturePlug do end end - defp route_aliases(_), do: [] + def route_aliases(_), do: [] defp assign_valid_signature_on_route_aliases(conn, []), do: conn diff --git a/test/pleroma/web/plugs/http_signature_plug_test.exs b/test/pleroma/web/plugs/http_signature_plug_test.exs index 56ef6b06f..02e8b3092 100644 --- a/test/pleroma/web/plugs/http_signature_plug_test.exs +++ b/test/pleroma/web/plugs/http_signature_plug_test.exs @@ -4,6 +4,7 @@ defmodule Pleroma.Web.Plugs.HTTPSignaturePlugTest do use Pleroma.Web.ConnCase + import Pleroma.Factory alias Pleroma.Web.Plugs.HTTPSignaturePlug import Plug.Conn @@ -81,5 +82,14 @@ defmodule Pleroma.Web.Plugs.HTTPSignaturePlugTest do assert conn.state == :sent assert conn.resp_body == "Request not signed" end + + test "aliases redirected /object endpoints", _ do + obj = insert(:note) + act = insert(:note_activity, note: obj) + params = %{"actor" => "http://mastodon.example.org/users/admin"} + path = URI.parse(obj.data["id"]).path + conn = build_conn(:get, path, params) + assert ["/notice/#{act.id}"] == HTTPSignaturePlug.route_aliases(conn) + end end end