aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkaniini <ariadne@dereferenced.org>2019-07-12 15:34:00 +0000
committerkaniini <ariadne@dereferenced.org>2019-07-12 15:34:00 +0000
commitb6567c9f4e290ba8ad928c9ed10e72d2589dd89a (patch)
tree25654a6dc259afb81a746926a44366ee5d6c7b2b
parentdb75288b71e7531f8e5033f56fc0b9a7d1d8efb3 (diff)
parent6a6c4d134b7564012d00e89f1236b904261ab5db (diff)
downloadpleroma-b6567c9f4e290ba8ad928c9ed10e72d2589dd89a.tar.gz
Merge branch 'url-parser-proxy' into 'develop'
preserve the original path/filename (no encoding/decoding) for proxy See merge request pleroma/pleroma!1403
-rw-r--r--lib/pleroma/web/media_proxy/controller.ex7
-rw-r--r--test/media_proxy_test.exs16
2 files changed, 5 insertions, 18 deletions
diff --git a/lib/pleroma/web/media_proxy/controller.ex b/lib/pleroma/web/media_proxy/controller.ex
index c0552d89f..ea33d7685 100644
--- a/lib/pleroma/web/media_proxy/controller.ex
+++ b/lib/pleroma/web/media_proxy/controller.ex
@@ -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 && Path.basename(path) != filename do
{:wrong_filename, filename}
diff --git a/test/media_proxy_test.exs b/test/media_proxy_test.exs
index 1d6d170b7..fbf200931 100644
--- a/test/media_proxy_test.exs
+++ b/test/media_proxy_test.exs
@@ -88,10 +88,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
@@ -100,19 +100,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