cloudfront-signer 2.1.1 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d37c96b16a6cb79d5ac0d02e63832c5a7e0f025b
4
- data.tar.gz: 18a4dec2b55f184a73101d7cc5c7215442fd83ec
3
+ metadata.gz: 39a04cdad6eadba7f441fb8cfba1c643b3f5fe9b
4
+ data.tar.gz: 7786c9d47b121178a26e832b129b9a163e299bf5
5
5
  SHA512:
6
- metadata.gz: c85cc296da175cc226fb149a84bb45d0c8cef0dca4fa738ebc79ebeae2e9e64d0556a7ddc69ceb9fa50ae18986b109d6bef914b5a3385260ff9f29a2cd2f428b
7
- data.tar.gz: 3dc4a69e1e0aa92dbefa2621bc88d267a212edf9168b70b47f47c4817600f57e538f97b7c8cc2b48296a681c036463e36af4fab5f520c58893272d7c939ce445
6
+ metadata.gz: 39a5a4e824e33d04b5b5d19726f2a935e0b51d3202ed9819900cf9ff952b6e1eea17a335a355d5990a0048e1c2f203684a5033d38abe1d381b36d86e62c62a14
7
+ data.tar.gz: 03a54b2be4915bb859b96c5ffba4fb15d5c845a8c0fef62f70e81dc6566e73b4d4c3653d31906599100f5a78829694dee2e2f98a4ae42b505a822dc7a18f000f
data/ChangeLog.markdown CHANGED
@@ -1,3 +1,5 @@
1
+ ### 2.1.2 / 2015-04-16
2
+ * Accepted merge request from https://github.com/tuvistavie - fixing custom policy bug.
1
3
  ### 2.1.1 / 2013-10-31
2
4
  * Added changelog file
3
5
  * Aceppted merge request from https://github.com/bullfight, Refactored configuration to allow for key to be passed in directly.
@@ -4,6 +4,7 @@ require 'openssl'
4
4
  require 'time'
5
5
  require 'base64'
6
6
  require "cloudfront-signer/version"
7
+ require 'json'
7
8
 
8
9
  module AWS
9
10
  module CF
@@ -176,9 +177,10 @@ module AWS
176
177
  policy = IO.read(policy_options[:policy_file])
177
178
  result = "#{subject}#{separator}Policy=#{encode_policy(policy)}&Signature=#{create_signature(policy)}&Key-Pair-Id=#{@key_pair_id}"
178
179
  else
180
+ policy_options[:expires] = epoch_time(policy_options[:expires] || Time.now + default_expires)
179
181
  if policy_options.keys.size <= 1
180
182
  # Canned Policy - shorter URL
181
- expires_at = epoch_time(policy_options[:expires] || Time.now + self.default_expires)
183
+ expires_at = policy_options[:expires]
182
184
  policy = %({"Statement":[{"Resource":"#{subject}","Condition":{"DateLessThan":{"AWS:EpochTime":#{expires_at}}}}]})
183
185
  result = "#{subject}#{separator}Expires=#{expires_at}&Signature=#{create_signature(policy)}&Key-Pair-Id=#{@key_pair_id}"
184
186
  else
@@ -196,23 +198,27 @@ module AWS
196
198
  end
197
199
  end
198
200
 
199
-
200
201
  # Private helper methods
201
202
  private
202
203
 
203
-
204
204
  def self.generate_custom_policy(resource, options)
205
- conditions = ["\"DateLessThan\":{\"AWS:EpochTime\":#{epoch_time(options[:expires])}}"]
206
- conditions << "\"DateGreaterThan\":{\"AWS:EpochTime\":#{epoch_time(options[:starting])}}" if options[:starting]
207
- conditions << "\"IpAddress\":{\"AWS:SourceIp\":\"#{options[:ip_range]}\"" if options[:ip_range]
208
- %({"Statement":[{"Resource":"#{resource}","Condition":{#{conditions.join(',')}}}}]})
205
+ conditions = { 'DateLessThan' => { 'AWS:EpochTime' => epoch_time(options[:expires]) } }
206
+ conditions['DateGreaterThan'] = { 'AWS:EpochTime' => epoch_time(options[:starting]) } if options[:starting]
207
+ conditions['IpAddress'] = { 'AWS:SourceIp' => option[:ip_range] } if options[:ip_range]
208
+ {
209
+ 'Statement' => [{
210
+ 'Resource' => resource,
211
+ 'Condition' => conditions
212
+ }]
213
+ }.to_json
209
214
  end
210
215
 
211
216
  def self.epoch_time(timelike)
212
217
  case timelike
213
218
  when String then Time.parse(timelike).to_i
214
219
  when Time then timelike.to_i
215
- else raise ArgumentError.new("Invalid argument - String or Time required - #{timelike.class} passed.")
220
+ when Fixnum then timelike
221
+ else raise ArgumentError.new("Invalid argument - String, Fixnum or Time required - #{timelike.class} passed.")
216
222
  end
217
223
  end
218
224
 
@@ -1,5 +1,5 @@
1
1
  module AWS
2
2
  module CF
3
- VERSION = "2.1.1"
3
+ VERSION = "2.1.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cloudfront-signer
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.1
4
+ version: 2.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Anthony Bouch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-10-30 00:00:00.000000000 Z
11
+ date: 2015-04-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  description: A gem to sign url and stream paths for Amazon CloudFront private content.
@@ -33,8 +33,8 @@ executables: []
33
33
  extensions: []
34
34
  extra_rdoc_files: []
35
35
  files:
36
- - .gitignore
37
- - .rspec
36
+ - ".gitignore"
37
+ - ".rspec"
38
38
  - ChangeLog.markdown
39
39
  - Gemfile
40
40
  - LICENSE
@@ -58,17 +58,17 @@ require_paths:
58
58
  - lib
59
59
  required_ruby_version: !ruby/object:Gem::Requirement
60
60
  requirements:
61
- - - '>='
61
+ - - ">="
62
62
  - !ruby/object:Gem::Version
63
63
  version: '0'
64
64
  required_rubygems_version: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  requirements: []
70
70
  rubyforge_project: cloudfront-signer
71
- rubygems_version: 2.0.3
71
+ rubygems_version: 2.2.2
72
72
  signing_key:
73
73
  specification_version: 4
74
74
  summary: A gem to sign url and stream paths for Amazon CloudFront private content.