warden-hmac-authentication 0.6.2 → 0.6.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -39,7 +39,7 @@ module Faraday
39
39
  headers, url = *signer.sign_request(url, @secret, @options)
40
40
 
41
41
  env[:request_headers] = (env[:request_headers] || {}).merge(headers)
42
- env[:url] = Addressable::URI.parse(url)
42
+ env[:url] = URI.parse(url)
43
43
  env
44
44
  end
45
45
 
data/lib/hmac/signer.rb CHANGED
@@ -1,4 +1,3 @@
1
- require 'addressable/uri'
2
1
  require 'openssl'
3
2
  require 'rack/utils'
4
3
  if defined?(JRUBY_VERSION) && RUBY_VERSION =~ /^1\.9/
@@ -121,8 +120,8 @@ module HMAC
121
120
  opts = default_opts.merge(opts)
122
121
  opts[:query_based] = true
123
122
 
124
- uri = Addressable::URI.parse(url)
125
- query_values = uri.query_values
123
+ uri = parse_url(url)
124
+ query_values = Rack::Utils.parse_nested_query(uri.query)
126
125
  return false unless query_values
127
126
 
128
127
  auth_params = query_values.delete(opts[:auth_param])
@@ -208,7 +207,7 @@ module HMAC
208
207
  def sign_request(url, secret, opts = {})
209
208
  opts = default_opts.merge(opts)
210
209
 
211
- uri = Addressable::URI.parse(url)
210
+ uri = parse_url(url)
212
211
  headers = opts[:headers] || {}
213
212
 
214
213
  date = opts[:date] || Time.now.gmtime
@@ -216,7 +215,7 @@ module HMAC
216
215
 
217
216
  method = opts[:method] ? opts[:method].to_s.upcase : "GET"
218
217
 
219
- query_values = uri.query_values
218
+ query_values = Rack::Utils.parse_nested_query(uri.query)
220
219
 
221
220
  if query_values
222
221
  query_values.delete_if do |k,v|
@@ -233,9 +232,9 @@ module HMAC
233
232
  })
234
233
  auth_params[:nonce] = opts[:nonce] unless opts[:nonce].nil?
235
234
 
236
- query_values = uri.query_values || {}
235
+ query_values ||= {}
237
236
  query_values[opts[:auth_param]] = auth_params
238
- uri.query_values = query_values
237
+ uri.query = Rack::Utils.build_nested_query(query_values)
239
238
  else
240
239
  headers[opts[:auth_header]] = opts[:auth_header_format] % opts.merge({:signature => signature})
241
240
  headers[opts[:nonce_header]] = opts[:nonce] unless opts[:nonce].nil?
@@ -281,5 +280,10 @@ module HMAC
281
280
  end
282
281
  end
283
282
 
283
+ #parse url if url parameter is string do nothing if parameter is URI
284
+ def parse_url(url)
285
+ return url if url.is_a?(URI)
286
+ URI.parse(url)
287
+ end
284
288
  end
285
289
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: warden-hmac-authentication
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.2
4
+ version: 0.6.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,24 +10,8 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-07-09 00:00:00.000000000 Z
13
+ date: 2012-10-08 00:00:00.000000000 Z
14
14
  dependencies:
15
- - !ruby/object:Gem::Dependency
16
- name: addressable
17
- requirement: !ruby/object:Gem::Requirement
18
- none: false
19
- requirements:
20
- - - ! '>='
21
- - !ruby/object:Gem::Version
22
- version: '0'
23
- type: :runtime
24
- prerelease: false
25
- version_requirements: !ruby/object:Gem::Requirement
26
- none: false
27
- requirements:
28
- - - ! '>='
29
- - !ruby/object:Gem::Version
30
- version: '0'
31
15
  - !ruby/object:Gem::Dependency
32
16
  name: rack
33
17
  requirement: !ruby/object:Gem::Requirement