preserve the original path/filename (no encoding/decoding) for proxy

This commit is contained in:
Sachin Joshi 2019-07-12 21:02:55 +05:45 committed by Ariadne Conill
parent ccafecf9be
commit 1e5d889aec
2 changed files with 5 additions and 18 deletions

View file

@ -28,12 +28,7 @@ defmodule Pleroma.Web.MediaProxy.MediaProxyController do
end
def filename_matches(has_filename, path, url) do
filename =
url
|> MediaProxy.filename()
|> URI.decode()
path = URI.decode(path)
filename = url |> MediaProxy.filename()
if has_filename && filename && does_not_match(path, filename) do
{:wrong_filename, filename}

View file

@ -96,10 +96,10 @@ defmodule Pleroma.MediaProxyTest do
assert decode_url(sig, base64) == {:error, :invalid_signature}
end
test "filename_matches matches url encoded paths" do
test "filename_matches preserves the encoded or decoded path" do
assert MediaProxyController.filename_matches(
true,
"/Hello%20world.jpg",
"/Hello world.jpg",
"http://pleroma.social/Hello world.jpg"
) == :ok
@ -108,19 +108,11 @@ defmodule Pleroma.MediaProxyTest do
"/Hello%20world.jpg",
"http://pleroma.social/Hello%20world.jpg"
) == :ok
end
test "filename_matches matches non-url encoded paths" do
assert MediaProxyController.filename_matches(
true,
"/Hello world.jpg",
"http://pleroma.social/Hello%20world.jpg"
) == :ok
assert MediaProxyController.filename_matches(
true,
"/Hello world.jpg",
"http://pleroma.social/Hello world.jpg"
"/my%2Flong%2Furl%2F2019%2F07%2FS.jpg",
"http://pleroma.social/my%2Flong%2Furl%2F2019%2F07%2FS.jpg"
) == :ok
end