Browse Source

Fix response of signature_verification_failure_reason (#6441)

pull/4/head
abcang 6 years ago
committed by Eugen Rochko
parent
commit
cf32f7da5c
3 changed files with 19 additions and 3 deletions
  1. +1
    -1
      app/controllers/activitypub/inboxes_controller.rb
  2. +3
    -1
      app/controllers/api/salmon_controller.rb
  3. +15
    -1
      spec/controllers/api/salmon_controller_spec.rb

+ 1
- 1
app/controllers/activitypub/inboxes_controller.rb View File

@ -11,7 +11,7 @@ class ActivityPub::InboxesController < Api::BaseController
process_payload
head 202
else
[signature_verification_failure_reason, 401]
render plain: signature_verification_failure_reason, status: 401
end
end

+ 3
- 1
app/controllers/api/salmon_controller.rb View File

@ -1,6 +1,8 @@
# frozen_string_literal: true
class Api::SalmonController < Api::BaseController
include SignatureVerification
before_action :set_account
respond_to :txt
@ -9,7 +11,7 @@ class Api::SalmonController < Api::BaseController
process_salmon
head 202
elsif payload.present?
[signature_verification_failure_reason, 401]
render plain: signature_verification_failure_reason, status: 401
else
head 400
end

+ 15
- 1
spec/controllers/api/salmon_controller_spec.rb View File

@ -40,7 +40,7 @@ RSpec.describe Api::SalmonController, type: :controller do
end
end
context 'with invalid post data' do
context 'with empty post data' do
before do
request.env['RAW_POST_DATA'] = ''
post :update, params: { id: account.id }
@ -50,5 +50,19 @@ RSpec.describe Api::SalmonController, type: :controller do
expect(response).to have_http_status(400)
end
end
context 'with invalid post data' do
before do
service = double(call: false)
allow(VerifySalmonService).to receive(:new).and_return(service)
request.env['RAW_POST_DATA'] = File.read(File.join(Rails.root, 'spec', 'fixtures', 'salmon', 'mention.xml'))
post :update, params: { id: account.id }
end
it 'returns http client error' do
expect(response).to have_http_status(401)
end
end
end
end

Loading…
Cancel
Save