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:
parent
bb04a9be52
commit
17c591ffba
17 changed files with 546 additions and 26 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue