kakaocert 2.0.0 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/kakaocert.rb +31 -10
  3. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e22b6ff5adb2d9aabfeef364d5adc012a57dde43
4
- data.tar.gz: de6e405ac26dc9cc0a18e91aa84e668e7e8dedc1
3
+ metadata.gz: 1ca22f1db95a15d429232d5e7bac2d15ed98471a
4
+ data.tar.gz: bee2396c32b3a455a9a4e4ee31ac48b7a12ea643
5
5
  SHA512:
6
- metadata.gz: dfcd029e43db6a3e3a2c1566733ce0f090ecc3bd8ad39fc7f330b514f7f62c6541ffb5955c616653f6d1ab294ff5eda518e1dc31929972423bea15fe0963296f
7
- data.tar.gz: 8485a6625088064939fc29025037547edc80d125c0938892d87d26c27947d401c3d8273754b2fcf05cfae603798bc24c3f497306060374ea4a7c714864d82dbd
6
+ metadata.gz: da16022794cec3f4421dd72a9bffe14e9b8814d1687edd3c345aecd4499789655298e53f13e2df2470e679641aac114f3005ecc7b40554666851de76ede5c64d
7
+ data.tar.gz: 62174273527f7b3663a0d6412d9ad7cd20714a2f9700fd1dc430d4dec011dada23a9b0a3530a7576ebe2b56fb1a60def0b1dd55ae2efbcc035bde02a435125a6
data/lib/kakaocert.rb CHANGED
@@ -13,11 +13,13 @@ require 'linkhub'
13
13
  class KakaocertService
14
14
 
15
15
  ServiceID_REAL = "KAKAOCERT"
16
- ServiceURL_REAL = "https://kakaocert-api.linkhub.co.kr"
17
- KAKAOCERT_APIVersion = "1.0"
16
+ KAKAOCERT_APIVersion = "2.0"
17
+ ServiceURL = "https://kakaocert-api.linkhub.co.kr"
18
+ ServiceURL_Static = "https://static-kakaocert-api.linkhub.co.kr"
19
+ ServiceURL_GA = "https://ga-kakaocert-api.linkhub.co.kr"
18
20
  BOUNDARY = "==KAKAOCERT_RUBY_SDK=="
19
21
 
20
- attr_accessor :token_table, :scopes, :linkhub, :ipRestrictOnOff
22
+ attr_accessor :token_table, :scopes, :linkhub, :ipRestrictOnOff, :useStaticIP, :useGAIP
21
23
 
22
24
  # Generate Linkhub Class Singleton Instance
23
25
  class << self
@@ -27,6 +29,8 @@ class KakaocertService
27
29
  @instance.linkhub = Linkhub.instance(linkID, secretKey)
28
30
  @instance.scopes = ["member","310","320","330"]
29
31
  @instance.ipRestrictOnOff = true
32
+ @instance.useStaticIP = false
33
+ @instance.useGAIP = false
30
34
 
31
35
  return @instance
32
36
  end
@@ -44,6 +48,23 @@ class KakaocertService
44
48
  @ipRestrictOnOff = value
45
49
  end
46
50
 
51
+ def setUseStaticIP(value)
52
+ @useStaticIP = value
53
+ end
54
+
55
+ def setUseGAIP(value)
56
+ @useGAIP = value
57
+ end
58
+
59
+ def getServiceURL()
60
+ if @useGAIP
61
+ return ServiceURL_GA
62
+ elsif @useStaticIP
63
+ return ServiceURL_Static
64
+ else
65
+ return ServiceURL
66
+ end
67
+ end
47
68
 
48
69
  # Get Session Token by checking token-cached hash or token Request
49
70
  def getSession_Token(corpNum)
@@ -60,14 +81,14 @@ class KakaocertService
60
81
  else
61
82
  # Token's expireTime must use parse() because time format is hh:mm:ss.SSSZ
62
83
  expireTime = DateTime.parse(targetToken['expiration'])
63
- serverUTCTime = DateTime.strptime(@linkhub.getTime())
84
+ serverUTCTime = DateTime.strptime(@linkhub.getTime(@useStaticIP, @useGAIP))
64
85
  refresh = expireTime < serverUTCTime
65
86
  end
66
87
 
67
88
  if refresh
68
89
  begin
69
90
  # getSessionToken from Linkhub
70
- targetToken = @linkhub.getSessionToken(ServiceID_REAL, corpNum, @scopes, @ipRestrictOnOff ? "" : "*")
91
+ targetToken = @linkhub.getSessionToken(ServiceID_REAL, corpNum, @scopes, @ipRestrictOnOff ? "" : "*", @useStaticIP, @useGAIP)
71
92
 
72
93
  rescue LinkhubException => le
73
94
  raise KakaocertException.new(le.code, le.message)
@@ -102,7 +123,7 @@ class KakaocertService
102
123
  headers["x-pb-userid"] = userID
103
124
  end
104
125
 
105
- uri = URI(ServiceURL_REAL + url)
126
+ uri = URI(getServiceURL() + url)
106
127
  request = Net::HTTP.new(uri.host, 443)
107
128
  request.use_ssl = true
108
129
 
@@ -132,10 +153,10 @@ class KakaocertService
132
153
  "Accept-Encoding" => "gzip,deflate",
133
154
  }
134
155
 
135
- apiServerTime = @linkhub.getTime()
156
+ apiServerTime = @linkhub.getTime(@useStaticIP, @useGAIP)
136
157
 
137
158
  hmacTarget = "POST\n"
138
- hmacTarget += Base64.strict_encode64(Digest::MD5.digest(postData)) + "\n"
159
+ hmacTarget += Base64.strict_encode64(Digest::SHA256.digest(postData)) + "\n"
139
160
  hmacTarget += apiServerTime + "\n"
140
161
 
141
162
  hmacTarget += KAKAOCERT_APIVersion + "\n"
@@ -143,7 +164,7 @@ class KakaocertService
143
164
  key = Base64.decode64(@linkhub._secretKey)
144
165
 
145
166
  data = hmacTarget
146
- digest = OpenSSL::Digest.new("sha1")
167
+ digest = OpenSSL::Digest.new("sha256")
147
168
  hmac = Base64.strict_encode64(OpenSSL::HMAC.digest(digest, key, data))
148
169
 
149
170
  headers["x-kc-auth"] = @linkhub._linkID+' '+hmac
@@ -158,7 +179,7 @@ class KakaocertService
158
179
  headers["Authorization"] = "Bearer " + getSession_Token(corpNum)
159
180
 
160
181
 
161
- uri = URI(ServiceURL_REAL + url)
182
+ uri = URI(getServiceURL() + url)
162
183
 
163
184
  https = Net::HTTP.new(uri.host, 443)
164
185
  https.use_ssl = true
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kakaocert
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Linkhub Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-09-09 00:00:00.000000000 Z
11
+ date: 2021-09-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: linkhub
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - '='
18
18
  - !ruby/object:Gem::Version
19
- version: 1.2.0
19
+ version: 1.4.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - '='
25
25
  - !ruby/object:Gem::Version
26
- version: 1.2.0
26
+ version: 1.4.0
27
27
  description: Kakaocert API SDK
28
28
  email: code@linkhub.co.kr
29
29
  executables: []