Skip to content

Commit

Permalink
Merge pull request #6 from winebarrel/support_faraday_015
Browse files Browse the repository at this point in the history
Support faraday >= 0.15
  • Loading branch information
winebarrel committed Sep 30, 2019
2 parents df7ca34 + bbd7502 commit 2904e1d
Show file tree
Hide file tree
Showing 14 changed files with 60 additions and 120 deletions.
9 changes: 2 additions & 7 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,12 @@ sudo: false
language: ruby
cache: bundler
rvm:
- 2.2.10
- 2.3.8
- 2.4.7
- 2.5.6
- 2.6.4
script:
- bundle exec rake
gemfile:
- gemfiles/faraday_0.9.gemfile
- gemfiles/faraday_0.10.gemfile
- gemfiles/faraday_0.11.gemfile
- gemfiles/faraday_0.12.gemfile
- gemfiles/faraday_0.13.gemfile
- gemfiles/faraday_0.14.gemfile
- gemfiles/faraday_0.15.gemfile
- gemfiles/faraday_0.16.gemfile
24 changes: 4 additions & 20 deletions Appraisals
Original file line number Diff line number Diff line change
@@ -1,23 +1,7 @@
appraise 'faraday-0.9' do
gem 'faraday', '~> 0.9.0'
appraise 'faraday-0.15' do
gem 'faraday', '~> 0.15.0'
end

appraise 'faraday-0.10' do
gem 'faraday', '~> 0.10.0'
end

appraise 'faraday-0.11' do
gem 'faraday', '~> 0.11.0'
end

appraise 'faraday-0.12' do
gem 'faraday', '~> 0.12.0'
end

appraise 'faraday-0.13' do
gem 'faraday', '~> 0.13.0'
end

appraise 'faraday-0.14' do
gem 'faraday', '~> 0.14.0'
appraise 'faraday-0.16' do
gem 'faraday', '~> 0.16.0'
end
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@
[![Build Status](https://travis-ci.org/winebarrel/faraday_middleware-aws-sigv4.svg?branch=master)](https://travis-ci.org/winebarrel/faraday_middleware-aws-sigv4)
[![Coverage Status](https://coveralls.io/repos/github/winebarrel/faraday_middleware-aws-sigv4/badge.svg?branch=master)](https://coveralls.io/github/winebarrel/faraday_middleware-aws-sigv4?branch=master)

* `faraday_middleware-aws-sigv4 < 0.3.0`
* `faraday < 0.15`
* `faraday_middleware-aws-sigv4 >= 0.3.0`
* `ruby >= 2.3`
* `faraday >= 0.15`

## Installation

Add this line to your application's Gemfile:
Expand Down Expand Up @@ -62,6 +68,14 @@ pp res.body

If you previously provided the `service_name` option, you need to rename it `service`

## Test

```sh
bundle install
bundle exec appraisal install
bundle exec appraisal faraday-0.16 rake
```

## Related Links

* http://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Sigv4/Signer.html
Expand Down
6 changes: 4 additions & 2 deletions faraday_middleware-aws-sigv4.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)

Gem::Specification.new do |spec|
spec.name = 'faraday_middleware-aws-sigv4'
spec.version = '0.2.5'
spec.version = '0.3.0'
spec.authors = ['Genki Sugawara']
spec.email = ['sugawara@cookpad.com']

Expand All @@ -20,7 +20,9 @@ Gem::Specification.new do |spec|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
spec.require_paths = ['lib']

spec.add_dependency 'faraday', '>= 0.9', '< 0.15'
spec.required_ruby_version = '>= 2.3'

spec.add_dependency 'faraday', '>= 0.15'
spec.add_dependency 'aws-sigv4', '~> 1.0'

spec.add_development_dependency 'faraday_middleware'
Expand Down
7 changes: 0 additions & 7 deletions gemfiles/faraday_0.12.gemfile

This file was deleted.

7 changes: 0 additions & 7 deletions gemfiles/faraday_0.13.gemfile

This file was deleted.

7 changes: 0 additions & 7 deletions gemfiles/faraday_0.14.gemfile

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@

source "https://rubygems.org"

gem "faraday", "~> 0.10.0"
gem "faraday", "~> 0.15.0"

gemspec path: "../"
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@

source "https://rubygems.org"

gem "faraday", "~> 0.11.0"
gem "faraday", "~> 0.16.0"

gemspec path: "../"
7 changes: 0 additions & 7 deletions gemfiles/faraday_0.9.gemfile

This file was deleted.

4 changes: 3 additions & 1 deletion lib/faraday_middleware/request/aws_sigv4.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,9 @@ def sign!(env)
request = build_aws_sigv4_request(env)
signature = @signer.sign_request(request)

env.request_headers.update(signature.headers)
signature.headers.each do |name, value|
env.request_headers[name] = value
end
end

def build_aws_sigv4_request(env)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -81,19 +81,13 @@ def faraday(options = {})
'x-amz-security-token' => 'token1420070400',
)

expect(account_headers.fetch('authorization')).to match Regexp.new(
authz_tmpl % {
access_key_id: 'akid1420070400',
signature: '(' + %w(
df222e9a8c7a0733ccf3a97b28189862c869dbbe6d1c7d2cb502e3d220b71744
dc305e6e5022f6708fec934bf8087d5079460f4aad78b9c7f16de2c474ebfab0
b610edfeeebb18d291fb4955b1dba775892d24cef182df3ab72c1581db326036
b12220aa247ee1dd3f175d7a6416b3888e1f1c60e418180d25cba120a4a41a91
711101701ac9c642f22f99c9d7edf0f92df7885daac11bcce10404bc53e286e3
64c9cc9b5905ebf9d2e5531a5cc5df13f6c1e3154b0d98aa7b9efd2030f7adef
).join('|') + ')',
}
)
expect(account_headers.fetch('authorization')).to match Regexp.new(authz_tmpl % {
access_key_id: 'akid1420070400',
signature: '(' + %w(
8a7679e7f6e14faa3c5bc8e585f16416bba04883767b651169f745e987908c04
0593f7578c038c94d3d463d5b1ed0fa8b4c4f5525c7abb08ae6c095d9df5fb61
).join('|') + ')',
})

# 50 minutes after
Timecop.travel(Time.now + 3000)
Expand All @@ -105,19 +99,13 @@ def faraday(options = {})
'x-amz-security-token' => 'token1420070400',
)

expect(account_headers.fetch('authorization')).to match Regexp.new(
authz_tmpl % {
access_key_id: 'akid1420070400',
signature: '(' + %w(
88c960305eace329590928d9d947a1c75323cade79b5b6c3484ff81f8eba4205
2d69679e39b670c5a76faa7b3bcb3cc7dbdf9ef2b0d0cb3ca997aedf0578794a
e2ae9ad9df78b0876b97f018087d892ac8095dd865e74878f70023eac5ed574d
63ef067e40708d4cdfcf71742cf6b5ebc782decf099d6f63d4a0855f14d247d1
fd6d6245157cc48dc5a185efcaf76a951a4a66bffa27c256a10ec88b883ad005
4c43da23f63ca6961b8919dd77519a15a9d332ff0cd171b5cb8e2574850bd7d1
).join('|') + ')',
}
)
expect(account_headers.fetch('authorization')).to match Regexp.new(authz_tmpl % {
access_key_id: 'akid1420070400',
signature: '(' + %w(
936d7c18c31135cb0baebe62ada628644a4c24efcadce044ceb650bc04e3fe1d
891f865c1a1297ed133589cd2abb575fd998b66cf79a0505941f50ef3405576b
).join('|') + ')',
})

# 10 minutes after
Timecop.travel(Time.now + 600)
Expand All @@ -129,18 +117,12 @@ def faraday(options = {})
'x-amz-security-token' => 'token1420074000',
)

expect(account_headers.fetch('authorization')).to match Regexp.new(
authz_tmpl % {
access_key_id: 'akid1420074000',
signature: '(' + %w(
506eb7dbe293c53aaf652070ff32339fd2ef5ca785bd36886e4485d78f283a42
3256eddafd3eb847e2314e4ac26056089927330b3076aa1bfc310bd0e7e9ce02
e2c60bbf98273197f8e54cbcad61a53b35a1e6db10cd184b9e18c7030d2438b0
e20185cc24bf99ababe02bbad0e9a15d412ccb7f88aa92300d596194637447ab
7f83565a3d7014b34405b39be7e455d9766db5c93403dc1ba6e2ddfb3f9e0011
986f14736987ff8781706ed10d55b9bab635a56824d8237feaf6fa582bd4b368
).join('|') + ')',
}
)
expect(account_headers.fetch('authorization')).to match Regexp.new(authz_tmpl % {
access_key_id: 'akid1420074000',
signature: '(' + %w(
42b4050c22d246f66c13357186a87bb2891ea0bebf7663cec398f9a12d869133
f264df5cb2359d8b9d491ff48bd57237d9260f01ebf638455ca18c3dab8beb2d
).join('|') + ')',
})
end
end
27 changes: 6 additions & 21 deletions spec/faraday_middleware/aws_sigv4_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -76,17 +76,12 @@ def faraday(options = {})
context 'without query' do
let(:signature) do
'(' + %w(
f68c19b5bbb53e2bdd587ed693d20bb90bafb14e31ccd638d9047eb1925fe38f
bbf43fc1e82754202e2d1233e1ae05f1c19a8f46d2b9e3e14499992104456624
8318dc891e13d83f5b27a03b87201a7a5cf1d1c02f6f16151908bef57aa5ecab
b95cea10d840d990f812c44dd1eda5117c0ccd5f06084282e1f39e15e359e641
5b63c9009fa63ff519f153f8cce8361b478fe9a177d99b17eb96f59b18c910f5
9a2e392463d9ecfd5e514b181d82d3d271cd9ad9e7ea310ee1590d161882fece
4029fcbe5aae50c588651d5a587f4a9fd2b7ba25bc03e1ce57432c758d1a7816
024535e1dd5a9f9eb5a8d2eb99c64678766ad6059bdd51ad85d282f49bd20700
).join('|') + ')'
end

subject { client.get('/account').body }

it { is_expected.to eq response }
end

Expand All @@ -96,34 +91,24 @@ def faraday(options = {})
context 'include space' do
let(:signature) do
'(' + %w(
c89da67e4c5cc1e210c7d381a060d047669de524fe3572a1619a9941ae8a4351
e2e691dae3160861403d8566e028e58c188a3da4475ac365d3af80ea27492d43
dcea998afac2f7a15e2d901e1ed18b0e0c00411645490156d1adc853c33878ee
94583a50c8322e121de93e2249e97122316777d848225af91b64a788c879729e
5ef2b8e952a01523fae861b98687837d7d4b45e7ef5ef423eab037895573d26e
4b49d892a1b347f85d5f37c2db86a7a90da5c89f1f5dbabe7326375e61b77d1f
75bb1b4dbbf7b7a502ecb574abfcc2e12ce115da07f876d3b66fd3ff0ad427fd
f0a9030e2e15012d61af8b708ad358c9a5e5495984162884abf1cb910275223b
).join('|') + ')'
end

let(:params) { {foo: 'b a r', zoo: 'b a z'} }

it { is_expected.to eq response }
end

context 'not include space' do
let(:signature) do
'(' + %w(
b523b730e002c6c1203f5c7806b5c7f9b4120322d5c397255390c366f8593d8b
04d75864a321030b17f3c0b39259af3a6a0c179507ce2d892abf71ca3286d1df
19526cfcf8741096b7115813bd8a8928a3f8be6bec35952373213a623fb422a1
a8e8b24df3c8f6ceb1b5da4707c42fbe003575db960ebe81588b3126d389c42a
044d89a4b2e0efd313fe3e57dd4594f906a1b54cede3ffb6328d6e1a31c64c8d
4f91645ce29990646823435ccaefadce2efa9f0db25ca433faf51d4ec94a51e9
94e01cc599b3eef64cc9e08c5f079b0345d5b9dd95cc14d0ea66fc0c5923bf30
8c58f5f0decfb7f185d290bae83dac382328ba19c862861fd646089ba0083569
).join('|') + ')'
end

let(:params) { {foo: 'bar', zoo: 'baz'} }

it { is_expected.to eq response }
end
end
Expand Down
4 changes: 4 additions & 0 deletions spec/spec_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,10 @@
c.syntax = :expect
end

config.before(:all) do
ENV['TZ'] = 'UTC'
end

config.before(:each) do
Timecop.freeze(Time.utc(2015))
end
Expand Down

0 comments on commit 2904e1d

Please sign in to comment.