preserve the original path/filename (no encoding/decoding) for proxy
authorSachin Joshi <satchin.joshi@gmail.com>
Fri, 12 Jul 2019 15:17:55 +0000 (21:02 +0545)
committerSachin Joshi <satchin.joshi@gmail.com>
Fri, 12 Jul 2019 15:20:01 +0000 (21:05 +0545)
lib/pleroma/web/media_proxy/controller.ex
test/media_proxy_test.exs

index c0552d89f4bd98ea09d2ad047ba974c02f8b3846..ea33d7685752fd05edcc64c5e91e556a088e97c0 100644 (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 && Path.basename(path) != filename do
       {:wrong_filename, filename}
index 1d6d170b72e02d4986ad087fb3a090c7cb59a391..fbf2009310382a3f4cd70da33b0b5166006689a2 100644 (file)
@@ -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