Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ## TEST
- require 'test_helper'
- class IncomingMailsControllerTest < ActionController::TestCase
- MESSAGE = "Received: by eye13 with SMTP id 13so2098559eye.3
- for <15982f12290be92775e6@cloudmailin.net>; Tue, 10 May 2011 10:36:42 -0700 (PDT)
- Received: by 10.14.127.68 with SMTP id c44mr3781562eei.68.1305049002556;
- Tue, 10 May 2011 10:36:42 -0700 (PDT)
- Return-Path: <email@alexandersandstrom.se>
- Received: from [192.168.1.4] (c213-89-138-211.bredband.comhem.se [213.89.138.211])
- by mx.google.com with ESMTPS id s1sm4472878ees.3.2011.05.10.10.36.40
- (version=TLSv1/SSLv3 cipher=OTHER);
- Tue, 10 May 2011 10:36:41 -0700 (PDT)
- Sender: =?UTF-8?Q?Alexander_Sandstr=C3=B6m?= <alexander.sandstrom@alexandersandstrom.se>
- From: =?iso-8859-1?Q?Alexander_Sandstr=F6m?= <email@alexandersandstrom.se>
- Content-Type: text/plain; charset=us-ascii
- Content-Transfer-Encoding: 7bit
- Subject: Herro
- Date: Tue, 10 May 2011 19:36:39 +0200
- Message-Id: <D50A1FAC-E1B4-4CAA-A72E-EF10BFA15BC2@alexandersandstrom.se>
- To: 15982f12290be92775e6@cloudmailin.net
- Mime-Version: 1.0 (Apple Message framework v1084)
- X-Mailer: Apple Mail (2.1084)
- Herrrroooo!!
- Alexander"
- PLAIN = "Herrrroooo!!
- Alexander"
- test "a simple mail get verified" do
- params = {
- "disposable" => "",
- "from" => "email@alexandersandstrom.se",
- "html" => "",
- "message" => MESSAGE,
- "plain" => PLAIN,
- "signature" => "4f16954e1f093e533f2460adcf837ca6",
- "subject" => "Herro",
- "to" => "<15982f12290be92775e6@cloudmailin.net>",
- "x_cc_header" => "",
- "x_sender" => "alexander.sandstrom@alexandersandstrom.se",
- "x_to_header" => ["15982f12290be92775e6@cloudmailin.net"],
- }
- post :create, params
- assert_response :success, response.body
- end
- end
- ## TEST RESULT
- test_a_simple_mail_get_verified(IncomingMailsControllerTest) [/test/functional/incoming_mails_controller_test.rb:50]:
- Signature mismatch. Provided: 4f16954e1f093e533f2460adcf837ca6 Calculated: 205f9c368276ce012b212d27128f67f4.
- Expected response to be a <:success>, but was <403>
- ## VERIFICATION CODE
- def verify_signature
- secret = '0051382ff7e83632fedc' # MOVE TO SETTINGS
- provided = request.request_parameters.delete(:signature)
- signature = Digest::MD5.hexdigest(request.request_parameters.sort.map{ |k, v| v }.join + secret)
- if provided != signature
- render :text => "Signature mismatch. Provided: #{provided} Calculated: #{signature}", :status => 403
- return false
- end
- end
Add Comment
Please, Sign In to add comment