Fix webfinger returning wrong status code on malformed or missing param (#13759)
Fixes #13757
This commit is contained in:
parent
c9dcc2d39f
commit
71fce71c94
4 changed files with 30 additions and 3 deletions
|
@ -8,7 +8,8 @@ module WellKnown
|
|||
before_action :set_account
|
||||
before_action :check_account_suspension
|
||||
|
||||
rescue_from ActiveRecord::RecordNotFound, ActionController::ParameterMissing, with: :not_found
|
||||
rescue_from ActiveRecord::RecordNotFound, with: :not_found
|
||||
rescue_from ActionController::ParameterMissing, WebfingerResource::InvalidRequest, with: :bad_request
|
||||
|
||||
def show
|
||||
expires_in 3.days, public: true
|
||||
|
@ -37,6 +38,10 @@ module WellKnown
|
|||
expires_in(3.minutes, public: true) && gone if @account.suspended?
|
||||
end
|
||||
|
||||
def bad_request
|
||||
head 400
|
||||
end
|
||||
|
||||
def not_found
|
||||
head 404
|
||||
end
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
class WebfingerResource
|
||||
attr_reader :resource
|
||||
|
||||
class InvalidRequest < StandardError; end
|
||||
|
||||
def initialize(resource)
|
||||
@resource = resource
|
||||
end
|
||||
|
@ -14,7 +16,7 @@ class WebfingerResource
|
|||
when /\@/
|
||||
username_from_acct
|
||||
else
|
||||
raise(ActiveRecord::RecordNotFound)
|
||||
raise InvalidRequest
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue