request.headers['Signature'].present?
end
+ def signature_verification_failure_reason
+ return @signature_verification_failure_reason if defined?(@signature_verification_failure_reason)
+ end
+
def signed_request_account
return @signed_request_account if defined?(@signed_request_account)
unless signed_request?
+ @signature_verification_failure_reason = 'Request not signed'
@signed_request_account = nil
return
end
end
if incompatible_signature?(signature_params)
+ @signature_verification_failure_reason = 'Incompatible request signature'
@signed_request_account = nil
return
end
account = account_from_key_id(signature_params['keyId'])
if account.nil?
+ @signature_verification_failure_reason = "Public key not found for key #{signature_params['keyId']}"
@signed_request_account = nil
return
end
@signed_request_account = account
@signed_request_account
else
+ @signed_verification_failure_reason = "Verification failed for #{account.username}@#{account.domain} #{account.uri}"
@signed_request_account = nil
end
else
+ @signed_verification_failure_reason = "Verification failed for #{account.username}@#{account.domain} #{account.uri}"
@signed_request_account = nil
end
end
post :update, params: { id: account.id }
end
- it 'returns http success' do
- expect(response).to have_http_status(202)
+ it 'returns http client error' do
+ expect(response).to have_http_status(400)
end
end
end