sun_gem 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/sun_gem/version.rb +1 -1
  3. data/lib/sun_gem.rb +18 -13
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c659d56fe9bca58b2e77ab8ba79b99364cb720aa
4
- data.tar.gz: a1a7f67b9ff5bb059c3649f9c62ad3672b3f48fa
3
+ metadata.gz: dcface399c1ea87448cb225159f1cd72323ff274
4
+ data.tar.gz: 1922a37e2a189584b513abb10981e130616ee639
5
5
  SHA512:
6
- metadata.gz: 110890f197774efbd55cbc17e42539dc20df9041ede74e9236e1aea20af48bc5e1e499693366fbb54d4e83bd0d926a05c4cdd11018ce342afb96561bc5500edd
7
- data.tar.gz: c083fa550aca7c33a7397a071039c63e08fda7afa47bbceeecfb05af196b8185938c95a5972c78eca7c42327a37f715f8ecd996c088b92ea62dc63d9716e88e1
6
+ metadata.gz: ec0aeaa2f594b30867c6e75e6441b6e3e3be2ba02e48e80a49b23ce854b269b11bba7ddf0b03449acdbc056ef8f253f62242e2e4a144b73b3b6d8bfdf237ce15
7
+ data.tar.gz: 87b4dd199974a7b4c5ac10dc95c0e4aa2e276dd18bbaf112f9824800c5d91e1ca452522585cd346d30aacc743de722eb8471ac733f2284d32d28beb4c6f591f6
@@ -1,3 +1,3 @@
1
1
  module SunGem
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
data/lib/sun_gem.rb CHANGED
@@ -2,29 +2,34 @@ require "sun_gem/version"
2
2
 
3
3
  module SunGem
4
4
  class << self
5
- # REQUIRED_KEYS = %w(access_key kind time)
5
+ REQUIRED_KEYS = %w(access_key kind time)
6
6
  TIMEOUT_MINUTES = 2
7
7
 
8
- def generate_signature(params)
9
- params = params.merge(secret_key: secret_key)
10
- Digest::SHA1.hexdigest(convert_params(params).flatten.join)
11
- end
8
+ # def generate_signature(params)
9
+ # params = params.merge(secret_key: secret_key)
10
+ # Digest::SHA1.hexdigest(convert_params(params).flatten.join)
11
+ # end
12
12
 
13
- def secret_key
14
- data = YAML.load_file("#{Rails.root}/config/sun_gem.yml")
15
- data["secret_key"]
16
- end
13
+ def authenticate(params, optional_params = {})
14
+ return false, 'invalid_parameter', 400 unless params[:signature]
15
+ required_params = ActiveSupport::HashWithIndifferentAccess.new(params).slice(*REQUIRED_KEYS)
16
+ return false, 'invalid_parameter', 400 if required_params.size != REQUIRED_KEYS.size
17
+ return false, 'expired_signature', 400 if expired_signature?(required_params[:time])
18
+ return false, 'invalid_server', 401 unless secret_key
17
19
 
18
- def authenticate(signature, params, optional_params = {})
19
- return false, 'expired_signature', 400 if expired_signature?(params[:time])
20
- server_signature = Digest::SHA1.hexdigest(convert_params(params.merge(optional_params).merge(secret_key: secret_key)))
21
- if signature == server_signature
20
+ signature = Digest::SHA1.hexdigest(required_params.merge(optional_params).merge(secret_key: secret_key))
21
+ if signature == params[:signature]
22
22
  true
23
23
  else
24
24
  return false, 'invalid_signature', 400
25
25
  end
26
26
  end
27
27
 
28
+ def secret_key
29
+ data = YAML.load_file("#{Rails.root}/config/sun_gem.yml")
30
+ data["secret_key"]
31
+ end
32
+
28
33
  private
29
34
 
30
35
  def expired_signature?(time)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sun_gem
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - frozenapr