FIX: Invalid URLs could raise exceptions when calling UrlHelper.rails_route_from_url (#10782)

Upload.secure_media_url? raised an exceptions when the URL was invalid,
which was a issue in some situations where secure media URLs must be
removed.

For example, sending digests used PrettyText.strip_secure_media,
which used Upload.secure_media_url? to replace secure media with
placeholders. If the URL was invalid, then an exception would be raised
and left unhandled.

Now instead in UrlHelper.rails_route_from_url we return nil if there is something wrong with the URL.

Co-authored-by: Bianca Nenciu <nenciu.bianca@gmail.com>
This commit is contained in:
Martin Brennan
2020-09-30 15:20:00 +10:00
committed by GitHub
parent a0bbc346cb
commit 39b2fb8649
4 changed files with 18 additions and 0 deletions

View File

@@ -70,6 +70,8 @@ class UrlHelper
def self.rails_route_from_url(url)
path = URI.parse(encode(url)).path
Rails.application.routes.recognize_path(path)
rescue Addressable::URI::InvalidURIError
nil
end
def self.s3_presigned_url?(url)