omniauth-frontrush 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
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