forked from asonix/mastodon
* Make host_meta/webfinger replies cacheable (fixes #6100) Drop common code for handling users and sessions as webfinger queries are very basic, public APIs. Also explicitly mark results as cacheable with “expires_in”. * Add “Vary: Accept” header for caching since content-negociation is used
19 lines
425 B
Ruby
19 lines
425 B
Ruby
# frozen_string_literal: true
|
|
|
|
module WellKnown
|
|
class HostMetaController < ActionController::Base
|
|
include RoutingHelper
|
|
|
|
before_action { response.headers['Vary'] = 'Accept' }
|
|
|
|
def show
|
|
@webfinger_template = "#{webfinger_url}?resource={uri}"
|
|
|
|
respond_to do |format|
|
|
format.xml { render content_type: 'application/xrd+xml' }
|
|
end
|
|
|
|
expires_in(3.days, public: true)
|
|
end
|
|
end
|
|
end
|