Punycode URI normalization (#2370)
* Fix #2119 - Whenever about to send a HTTP request, normalize the URI * Add test for IDN request in FetchLinkCardService * Perform IDN normalization on domains before they are stored in the DB
This commit is contained in:
@ -64,6 +64,12 @@ class TagManager
|
||||
domain.nil? || domain.gsub(/[\/]/, '').casecmp(Rails.configuration.x.local_domain).zero?
|
||||
end
|
||||
|
||||
def normalize_domain(domain)
|
||||
uri = Addressable::URI.new
|
||||
uri.host = domain
|
||||
uri.normalize.host
|
||||
end
|
||||
|
||||
def same_acct?(canonical, needle)
|
||||
return true if canonical.casecmp(needle).zero?
|
||||
username, domain = needle.split('@')
|
||||
@ -71,7 +77,7 @@ class TagManager
|
||||
end
|
||||
|
||||
def local_url?(url)
|
||||
uri = Addressable::URI.parse(url)
|
||||
uri = Addressable::URI.parse(url).normalize
|
||||
domain = uri.host + (uri.port ? ":#{uri.port}" : '')
|
||||
TagManager.instance.local_domain?(domain)
|
||||
end
|
||||
|
Reference in New Issue
Block a user