omniauth-frontrush 1.0.1 → 1.0.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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YzFmNWJmODk5NDM5NjE1Nzg4MzE2ZDQ3MmM3ZTFlNDgzMjljNWY4ZQ==
4
+ ZGIwNDUxZWM5MzY2ODNlOGY2OTQzY2EzYTY4ZTdlNWUwZTI5YjkxOQ==
5
5
  data.tar.gz: !binary |-
6
- N2MyZjJmYTY2NzUyYjhmZjAzNzAxZmIxYTZkYWI1ODBkNWYxOTFjNA==
6
+ YjhmNWJhYjIyMjZjOWM4NzdkOWQxYmQxZDNmZDQ1ZTA1OTlhOGMwNg==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- MDhiN2YyZWQxMGY5MTdjNmU0Y2JmYjVkOGI0MzIzM2Y3MjE3YWQzYTBmNzc4
10
- ODhlZjFhMzYwMmY2YjUwMWIxYjcxYTVhZmU2MmE5YmIxYWU4MGFmZGViZTFh
11
- ZWQwN2EzN2FmZjQ4M2ZiNDMwNzFjNTM3OGZmMjRjMGY2Zjk3YmE=
9
+ Mjc2YjE3Y2I5NDk2MzQ2ZmM0NWUxNWQ0YjQyMjMzMTdkZmViYzdlMzQ4NDVi
10
+ ZmJhODVkY2I2YjhlZGNiNWYyN2Q5YjJmZjkwMjhkOGM2OTk1ZjY5NmRiMTE2
11
+ MDg5ZWI1MTg4MDNiNzE5MmQ5ZDBjZDY4ZjEwZDAyYWUzZDI3MGM=
12
12
  data.tar.gz: !binary |-
13
- MDkyZTM5NGRlN2I5MDg5Y2ZkN2RmMTk1ZWFjMzMyZmU4ZTcwMjFhMGMzMTM5
14
- ZjVlYWM1ZGJmMjEwZDM2ZTQ3ZmEyMTNhOGEwMmRkOWRlZDhjNjY4NjU0NmRj
15
- MTlkNzBhNDZjY2Y3MGZmNTU2NzFiNGJjYTljYThhMTY5YWVjZGE=
13
+ ZTcyY2YxMWRlYWIwYTE0NzMzYjg3YjE3ZDNhMTgwYTcwMWQ0MmExMDk4Y2I3
14
+ MDMzOGYxZmY0ZGRiODViYmQzYWRhMzUzYWQwZWU1ZTdhMjkxNTJlMmJlYjYw
15
+ MmRkZjI3MjQ5MDRjODJhNzgxNTlmODQ5YzdhZjQ4NzllYjNiZDM=
@@ -0,0 +1,87 @@
1
+ require 'cgi'
2
+ require 'uri'
3
+ require 'timeout'
4
+ require 'openssl'
5
+ require 'base64'
6
+ require 'net/http'
7
+ require "JSON"
8
+ module OmniAuth
9
+ module Strategies
10
+ class OAuthRequest
11
+ @options = nil
12
+ def request url,httpmethod,optionshash,data
13
+ @options = optionshash
14
+ return_data = nil
15
+ parsed_url = URI.parse( url )
16
+ Net::HTTP.start( parsed_url.host,parsed_url.port) { | http |
17
+ params = sign(parsed_url,httpmethod)
18
+ signed_req = get_query_string(params)
19
+ request =""
20
+ if(httpmethod.downcase == "post")
21
+ request = Net::HTTP::Post.new("#{ parsed_url.path }?#{ signed_req }")
22
+ request.set_form_data(data)
23
+ else
24
+ request = Net::HTTP::Get.new "#{ parsed_url.path }?#{ signed_req }"
25
+ end
26
+ response = http.request(request)
27
+ return_data = response
28
+ }
29
+ return_data
30
+ end
31
+ def percent_encode( string )
32
+ if string.nil?
33
+ return ""
34
+ else
35
+ return URI.escape( string, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]") ).gsub('*', '%2A')
36
+ end
37
+ end
38
+ def signature base_str
39
+ key_string = percent_encode(@options[:consumer_secret])
40
+ if( @options[:token_secret] )
41
+ key_string += '&'+percent_encode(@options[:token_secret])
42
+ end
43
+ key_sha = Digest::SHA1.digest(key_string)
44
+ digest = OpenSSL::Digest::Digest.new("sha1")
45
+ hmac = OpenSSL::HMAC.digest( digest, key_sha, base_str )
46
+ Base64.strict_encode64( hmac.to_s ).chomp.gsub( /\n/, '' )
47
+ end
48
+ def get_query_string params
49
+ pairs = []
50
+ params.sort.each { | key, val |
51
+ if(val.class != [].class)
52
+ pairs.push( "#{ percent_encode( key ) }=#{ percent_encode( val.to_s ) }" )
53
+ else
54
+ pairs.push( "#{ percent_encode( key ) }=#{ percent_encode( val[0].to_s ) }" )
55
+ end
56
+ }
57
+ pairs.join '&'
58
+ end
59
+ def sign( parsed_url ,req_method)
60
+ params = {
61
+ 'oauth_consumer_key' => @options[:consumer_key],
62
+ 'oauth_nonce' => Array.new( 5 ) { rand(256) }.pack('C*').unpack('H*').first,
63
+ 'oauth_signature_method' => 'HMAC-SHA1',
64
+ 'oauth_timestamp' => Time.now.to_i.to_s,
65
+ 'oauth_version' =>'1.0'
66
+ }
67
+ if @options[:token]
68
+ params['oauth_token'] = @options[:token]
69
+ end
70
+ req_url = parsed_url.to_s.split("?")[0]
71
+ base_str = [
72
+ req_method,
73
+ percent_encode( req_url ),
74
+ percent_encode( get_query_string(params) )
75
+
76
+ ].join( '&' )
77
+ params[ 'oauth_signature' ] = signature(base_str)
78
+ if parsed_url.query
79
+ params.merge! CGI.parse( parsed_url.query )
80
+ end
81
+ return params
82
+ end
83
+ end
84
+ end
85
+ end
86
+
87
+
@@ -1,5 +1,5 @@
1
1
  module OmniAuth
2
2
  module frontrushontrush
3
- VERSION = "1.0.1"
3
+ VERSION = "1.0.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: omniauth-frontrush
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dhanesh Neela Mana
@@ -114,6 +114,7 @@ executables: []
114
114
  extensions: []
115
115
  extra_rdoc_files: []
116
116
  files:
117
+ - lib/oauthrequest.rb
117
118
  - lib/omniauth-frontrush.rb
118
119
  - lib/omniauth/frontrush.rb
119
120
  - lib/omniauth/strategies/frontrush.rb