sun_gem 0.2.2 → 0.2.3

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.
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