diff options
author | Matt Jankowski <mjankowski@thoughtbot.com> | 2017-04-17 13:58:03 -0400 |
---|---|---|
committer | Eugen <eugen@zeonfederated.com> | 2017-04-17 19:58:03 +0200 |
commit | 21a767dcfa2fba35a6bd641d7d7933f8734d41ee (patch) | |
tree | 5d1e9e18bf5338a99996d6a54ac9f9fdf50d2652 /app/controllers/well_known | |
parent | 3399dd7a666d755288cabf55fbb71b7276f6ffb7 (diff) |
Improve handling of HTTP_ACCEPT for webfinger (#2008)
This change includes: - Improve the spec coverage for incoming request to the webfinger action - For requests without an accept header (ie, what a browser might look like), return a JSON response. - For requests with an explicit format of xml or json, return that format. - For requests using an accept header, return that format. Also adds failing spec showing webfinger does not return xml, which covers the issue described in: https://github.com/tootsuite/mastodon/issues/1983
Diffstat (limited to 'app/controllers/well_known')
-rw-r--r-- | app/controllers/well_known/webfinger_controller.rb | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/app/controllers/well_known/webfinger_controller.rb b/app/controllers/well_known/webfinger_controller.rb index 1a8ef5f90..4a521d102 100644 --- a/app/controllers/well_known/webfinger_controller.rb +++ b/app/controllers/well_known/webfinger_controller.rb @@ -8,8 +8,13 @@ module WellKnown @magic_key = pem_to_magic_key(@account.keypair.public_key) respond_to do |format| - format.xml { render content_type: 'application/xrd+xml' } - format.json { render content_type: 'application/jrd+json' } + format.any(:json, :html) do + render formats: :json, content_type: 'application/jrd+json' + end + + format.xml do + render content_type: 'application/xrd+xml' + end end rescue ActiveRecord::RecordNotFound head 404 |