oauth 0.5.4 → 0.5.5

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
- SHA1:
3
- metadata.gz: 5bc9d7d87cd97024d39e6cd354fd2dc1ae44f4d1
4
- data.tar.gz: d3992c9bb4d3142d2a7d4e70f76836fbe1b94b56
2
+ SHA256:
3
+ metadata.gz: 56561f5f687d933f2683b93c5d7a426c3202da9b6659cc69d8ef43c36766bb9b
4
+ data.tar.gz: 71d7d2890d9b2261b85752ba2844eb96d7538a5121b9b72bcef3d00347e91bcf
5
5
  SHA512:
6
- metadata.gz: 2e5602e42f41ed1312cddd17ce4ef9473fcac93152e64c16e6e30c151171e15702394e74534657e2b67b6b51f20767b698e877a707a144cf5d904445074e8ce9
7
- data.tar.gz: fc164eae28c093eb3e777e469d70bf2527cd058c6772b304866fbdd7df686048307e65ad4c9c786db75035153e34b21755af7a1eecc094227c40f2dee388d0d2
6
+ metadata.gz: 4bbb7ec6242a2fdeadcae61c5279d42e00d9b29318511b80ea5a0215b8cdfba15c10be2ef0abb74bb21038acff22e27ef59125a8148ab28817f79d89b792707d
7
+ data.tar.gz: 3ad73ee2f52bf3507b274e923fe2352f7e5cda860e8765a9b062f33abfbc61909e5ff15ced0ce7d5aa66489f002f056f2fbb720f70b179c6eb729c52b7ce76e1
@@ -28,26 +28,28 @@ As a matter of fact it has been pulled out from an OAuth Rails GEM (https://ruby
28
28
 
29
29
  We need to specify the oauth_callback url explicitly, otherwise it defaults to "oob" (Out of Band)
30
30
 
31
- @callback_url = "http://127.0.0.1:3000/oauth/callback"
31
+ callback_url = "http://127.0.0.1:3000/oauth/callback"
32
32
 
33
- Create a new consumer instance by passing it a configuration hash:
33
+ Create a new `OAuth::Consumer` instance by passing it a configuration hash:
34
34
 
35
- @consumer = OAuth::Consumer.new("key","secret", :site => "https://agree2")
35
+ oauth_consumer = OAuth::Consumer.new("key", "secret", :site => "https://agree2")
36
36
 
37
37
  Start the process by requesting a token
38
38
 
39
- @request_token = @consumer.get_request_token(:oauth_callback => @callback_url)
39
+ request_token = oauth_consumer.get_request_token(:oauth_callback => callback_url)
40
40
 
41
41
  session[:token] = request_token.token
42
42
  session[:token_secret] = request_token.secret
43
- redirect_to @request_token.authorize_url(:oauth_callback => @callback_url)
43
+ redirect_to request_token.authorize_url(:oauth_callback => callback_url)
44
44
 
45
45
  When user returns create an access_token
46
46
 
47
47
  hash = { oauth_token: session[:token], oauth_token_secret: session[:token_secret]}
48
- request_token = OAuth::RequestToken.from_hash(@consumer, hash)
49
- @access_token = @request_token.get_access_token
50
- @photos = @access_token.get('/photos.xml')
48
+ request_token = OAuth::RequestToken.from_hash(oauth_consumer, hash)
49
+ access_token = request_token.get_access_token
50
+ # For 3-legged authorization, flow oauth_verifier is passed as param in callback
51
+ # access_token = request_token.get_access_token(oauth_verifier: params[:oauth_verifier])
52
+ @photos = access_token.get('/photos.xml')
51
53
 
52
54
  Now that you have an access token, you can use Typhoeus to interact with the OAuth provider if you choose.
53
55
 
@@ -27,7 +27,7 @@ module OAuth::Client
27
27
  end
28
28
 
29
29
  def oauth_parameters
30
- {
30
+ out = {
31
31
  'oauth_body_hash' => options[:body_hash],
32
32
  'oauth_callback' => options[:oauth_callback],
33
33
  'oauth_consumer_key' => options[:consumer].key,
@@ -38,7 +38,13 @@ module OAuth::Client
38
38
  'oauth_verifier' => options[:oauth_verifier],
39
39
  'oauth_version' => (options[:oauth_version] || '1.0'),
40
40
  'oauth_session_handle' => options[:oauth_session_handle]
41
- }.reject { |k,v| v.to_s == "" }
41
+ }
42
+ allowed_empty_params = options[:allow_empty_params]
43
+ if allowed_empty_params != true && !allowed_empty_params.kind_of?(Array)
44
+ allowed_empty_params = allowed_empty_params == false ? [] : [allowed_empty_params]
45
+ end
46
+ out.select! { |k,v| v.to_s != '' || allowed_empty_params == true || allowed_empty_params.include?(k) }
47
+ out
42
48
  end
43
49
 
44
50
  def signature(extra_options = {})
@@ -8,11 +8,21 @@ require 'cgi'
8
8
  module OAuth
9
9
  class Consumer
10
10
  # determine the certificate authority path to verify SSL certs
11
- CA_FILES = %W(#{ENV['SSL_CERT_FILE']} /etc/ssl/certs/ca-certificates.crt /etc/pki/tls/certs/ca-bundle.crt /usr/share/curl/curl-ca-bundle.crt)
12
- CA_FILES.each do |ca_file|
13
- if File.exist?(ca_file)
14
- CA_FILE = ca_file
15
- break
11
+ if ENV['SSL_CERT_FILE']
12
+ if File.exist?(ENV['SSL_CERT_FILE'])
13
+ CA_FILE = ENV['SSL_CERT_FILE']
14
+ else
15
+ raise "The SSL CERT provided does not exist."
16
+ end
17
+ end
18
+
19
+ if !defined?(CA_FILE)
20
+ CA_FILES = %W(/etc/ssl/certs/ca-certificates.crt /etc/pki/tls/certs/ca-bundle.crt /usr/share/curl/curl-ca-bundle.crt)
21
+ CA_FILES.each do |ca_file|
22
+ if File.exist?(ca_file)
23
+ CA_FILE = ca_file
24
+ break
25
+ end
16
26
  end
17
27
  end
18
28
  CA_FILE = nil unless defined?(CA_FILE)
@@ -23,6 +33,7 @@ module OAuth
23
33
 
24
34
  # default paths on site. These are the same as the defaults set up by the generators
25
35
  :request_token_path => '/oauth/request_token',
36
+ :authenticate_path => '/oauth/authenticate',
26
37
  :authorize_path => '/oauth/authorize',
27
38
  :access_token_path => '/oauth/access_token',
28
39
 
@@ -230,7 +241,14 @@ module OAuth
230
241
  when (300..399)
231
242
  # this is a redirect
232
243
  uri = URI.parse(response['location'])
233
- response.error! if uri.path == path # careful of those infinite redirects
244
+ our_uri = URI.parse(site)
245
+
246
+ if uri.path == path && our_uri.host != uri.host
247
+ options[:site] = "#{uri.scheme}://#{uri.host}"
248
+ @http = create_http
249
+ end
250
+
251
+ response.error! if uri.path == path && our_uri.host == uri.host # careful of those infinite redirects
234
252
  self.token_request(http_method, uri.path, token, request_options, arguments)
235
253
  when (400..499)
236
254
  raise OAuth::Unauthorized, response
@@ -266,6 +284,10 @@ module OAuth
266
284
  @options[:request_token_path]
267
285
  end
268
286
 
287
+ def authenticate_path
288
+ @options[:authenticate_path]
289
+ end
290
+
269
291
  def authorize_path
270
292
  @options[:authorize_path]
271
293
  end
@@ -283,6 +305,14 @@ module OAuth
283
305
  @options.has_key?(:request_token_url)
284
306
  end
285
307
 
308
+ def authenticate_url
309
+ @options[:authenticate_url] || site + authenticate_path
310
+ end
311
+
312
+ def authenticate_url?
313
+ @options.has_key?(:authenticate_url)
314
+ end
315
+
286
316
  def authorize_url
287
317
  @options[:authorize_url] || site + authorize_path
288
318
  end
@@ -330,12 +360,15 @@ module OAuth
330
360
 
331
361
  http_object.use_ssl = (our_uri.scheme == 'https')
332
362
 
333
- if @options[:ca_file] || CA_FILE
334
- http_object.ca_file = @options[:ca_file] || CA_FILE
363
+ if @options[:no_verify]
364
+ http_object.verify_mode = OpenSSL::SSL::VERIFY_NONE
365
+ else
366
+ ca_file = @options[:ca_file] || CA_FILE
367
+ if ca_file
368
+ http_object.ca_file = ca_file
369
+ end
335
370
  http_object.verify_mode = OpenSSL::SSL::VERIFY_PEER
336
371
  http_object.verify_depth = 5
337
- else
338
- http_object.verify_mode = OpenSSL::SSL::VERIFY_NONE
339
372
  end
340
373
 
341
374
  http_object.read_timeout = http_object.open_timeout = @options[:timeout] || 30
@@ -8,7 +8,14 @@ module OAuth
8
8
  return nil if self.token.nil?
9
9
 
10
10
  params = (params || {}).merge(:oauth_token => self.token)
11
- build_authorize_url(consumer.authorize_url, params)
11
+ build_url(consumer.authorize_url, params)
12
+ end
13
+
14
+ def authenticate_url(params = nil)
15
+ return nil if self.token.nil?
16
+
17
+ params = (params || {}).merge(:oauth_token => self.token)
18
+ build_url(consumer.authenticate_url, params)
12
19
  end
13
20
 
14
21
  def callback_confirmed?
@@ -23,8 +30,8 @@ module OAuth
23
30
 
24
31
  protected
25
32
 
26
- # construct an authorization url
27
- def build_authorize_url(base_url, params)
33
+ # construct an authorization or authentication url
34
+ def build_url(base_url, params)
28
35
  uri = URI.parse(base_url.to_s)
29
36
  queries = {}
30
37
  queries = Hash[URI.decode_www_form(uri.query)] if uri.query
@@ -1,3 +1,3 @@
1
1
  module OAuth
2
- VERSION = "0.5.4"
2
+ VERSION = "0.5.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oauth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4
4
+ version: 0.5.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pelle Braendgaard
@@ -12,10 +12,10 @@ authors:
12
12
  - Seth Fitzsimmons
13
13
  - Matt Sanford
14
14
  - Aaron Quint
15
- autorequire:
15
+ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
- date: 2017-12-08 00:00:00.000000000 Z
18
+ date: 2021-01-20 00:00:00.000000000 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rake
@@ -122,6 +122,9 @@ dependencies:
122
122
  - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: 0.9.12
125
+ - - "<="
126
+ - !ruby/object:Gem::Version
127
+ version: 1.1.0
125
128
  type: :development
126
129
  prerelease: false
127
130
  version_requirements: !ruby/object:Gem::Requirement
@@ -129,6 +132,9 @@ dependencies:
129
132
  - - ">="
130
133
  - !ruby/object:Gem::Version
131
134
  version: 0.9.12
135
+ - - "<="
136
+ - !ruby/object:Gem::Version
137
+ version: 1.1.0
132
138
  - !ruby/object:Gem::Dependency
133
139
  name: typhoeus
134
140
  requirement: !ruby/object:Gem::Requirement
@@ -227,7 +233,7 @@ dependencies:
227
233
  - - ">="
228
234
  - !ruby/object:Gem::Version
229
235
  version: '0'
230
- description:
236
+ description:
231
237
  email: oauth-ruby@googlegroupspec.com
232
238
  executables:
233
239
  - oauth
@@ -287,11 +293,11 @@ files:
287
293
  - lib/oauth/tokens/server_token.rb
288
294
  - lib/oauth/tokens/token.rb
289
295
  - lib/oauth/version.rb
290
- homepage:
296
+ homepage:
291
297
  licenses:
292
298
  - MIT
293
299
  metadata: {}
294
- post_install_message:
300
+ post_install_message:
295
301
  rdoc_options: []
296
302
  require_paths:
297
303
  - lib
@@ -306,9 +312,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
306
312
  - !ruby/object:Gem::Version
307
313
  version: '0'
308
314
  requirements: []
309
- rubyforge_project:
310
- rubygems_version: 2.2.2
311
- signing_key:
315
+ rubygems_version: 3.0.8
316
+ signing_key:
312
317
  specification_version: 4
313
318
  summary: OAuth Core Ruby implementation
314
319
  test_files: []