akamai-edgeauth 0.1.0 → 0.2.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/akamai/edgeauth.rb +54 -49
  3. metadata +4 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 83c736a708b2fb20a392c036e30bcd54ca622190
4
- data.tar.gz: aa2f7d5c9b23ce48c09428afc23eedf9fa183b4a
3
+ metadata.gz: 972a9f038408d8bc267683e7199b6c85b3c61b61
4
+ data.tar.gz: a9894996173a88191e669ab6d49c44b33da5956a
5
5
  SHA512:
6
- metadata.gz: c22efda1440facf518e3f6ae61409b10ae6b52f23d5724acf07cdd35d1d0601c6a2424e8faa4d4f772ad78172c5bdec151e0fea3ad019de2070d3369bef8825e
7
- data.tar.gz: 15dea57f6d38d873b3c5e7b30e243f8f543ea220bebd3cce3e9e8a73ea22bc231dbfc3de1f3db7612aa7b07c7a78ea6e1e376ab3d67666ad2606d1c4f22e92a1
6
+ metadata.gz: 023fdd09d3000b585c61480ba5e3aac04eae4ce613f377f2a6e5371b83515267b7228e2456bad01803d5c1df9ece7eed93ba2978959a8c30f4e00485985ee975
7
+ data.tar.gz: 6e720ca2f55c1dff666fe0a5c462474d1757287718b0538cbf408fb38bfc02b43974f4a89ec3efe29b3ab8deaa9a879955663eae6c613a37ab9c538e65684a6d
@@ -1,4 +1,4 @@
1
- # Copyright 2017 Akamai Technologies http://developer.akamai.com.
1
+ # Copyright 2018 Akamai Technologies http://developer.akamai.com.
2
2
 
3
3
  # Licensed under the Apache License, Version 2.0 (the "License");
4
4
  # you may not use this file except in compliance with the License.
@@ -28,32 +28,34 @@ module Akamai
28
28
 
29
29
 
30
30
  class EdgeAuth
31
- attr_accessor :token_type, :token_name, :key, :algorithm, :salt,
32
- :start_time, :end_time, :window_secondse, :field_delimiter,
33
- :acl_delimiter, :escape_early, :verbose
31
+ attr_accessor :token_type, :token_name, :key, :algorithm, :salt,
32
+ :ip, :payload, :session_id, :start_time, :end_time,
33
+ :window_seconds, :field_delimiter, :acl_delimiter,
34
+ :escape_early, :verbose
34
35
 
35
- @@acl_delimiter = '!'
36
- def self.ACL_DELIMITER
37
- @@acl_delimiter
38
- end
39
-
40
- def initialize(token_type: nil, token_name: '__token__', key: nil,
41
- algorithm: 'sha256', salt: nil, start_time: nil, end_time: nil,
42
- window_seconds: nil, field_delimiter: '~', escape_early: false, verbose: false)
43
-
36
+ def initialize(token_type: nil, token_name: '__token__',
37
+ key: nil, algorithm: 'sha256', salt: nil,
38
+ ip: nil, payload: nil, session_id: nil,
39
+ start_time: nil, end_time: nil, window_seconds: nil,
40
+ field_delimiter: '~', acl_delimiter: '!',
41
+ escape_early: false, verbose: false)
44
42
  @token_type = token_type
45
43
  @token_name = token_name
46
- @start_time = start_time
47
- @end_time = end_time
48
- @window_seconds = window_seconds
49
44
  if !key || key.length <= 0
50
45
  raise EdgeAuthError,
51
46
  'You must provide a secret in order to generate a new token.'
52
47
  end
53
48
  @key = key
54
- @algorithm = algorithm
55
49
  @salt = salt
50
+ @algorithm = algorithm
51
+ @ip = ip
52
+ @payload = payload
53
+ @session_id = session_id
54
+ @start_time = start_time
55
+ @end_time = end_time
56
+ @window_seconds = window_seconds
56
57
  @field_delimiter = field_delimiter
58
+ @acl_delimiter = acl_delimiter
57
59
  @escape_early = escape_early
58
60
  @verbose = verbose
59
61
  end
@@ -66,18 +68,9 @@ module Akamai
66
68
  end
67
69
  end
68
70
 
69
- def generateToken(url: nil, acl: nil, start_time: nil, end_time: nil, window_seconds: nil,
70
- ip: nil, payload: nil, session_id: nil)
71
-
72
- if !start_time
73
- start_time = @start_time
74
- end
75
- if !end_time
76
- end_time = @end_time
77
- end
78
- if !window_seconds
79
- window_seconds = @window_seconds
80
- end
71
+ def _generateToken(path, isUrl)
72
+ start_time = @start_time
73
+ end_time = @end_time
81
74
 
82
75
  if start_time.to_s.downcase == 'now'
83
76
  start_time = Time.new.getgm.to_i
@@ -102,9 +95,9 @@ module Akamai
102
95
  end
103
96
  end
104
97
 
105
- if window_seconds
98
+ if @window_seconds
106
99
  begin
107
- if window_seconds <= 0
100
+ if @window_seconds <= 0
108
101
  raise EdgeAuthError, 'window_seconds must be ( > 0 )'
109
102
  end
110
103
  rescue
@@ -113,11 +106,11 @@ module Akamai
113
106
  end
114
107
 
115
108
  if !end_time
116
- if window_seconds
109
+ if @window_seconds
117
110
  if !start_time
118
- end_time = Time.new.getgm.to_i + window_seconds
111
+ end_time = Time.new.getgm.to_i + @window_seconds
119
112
  else
120
- end_time = start_time + window_seconds
113
+ end_time = start_time + @window_seconds
121
114
  end
122
115
  else
123
116
  raise EdgeAuthError, 'You must provide an expiration time or a duration window..'
@@ -128,27 +121,22 @@ module Akamai
128
121
  raise EdgeAuthError, 'Token will have already expired.'
129
122
  end
130
123
 
131
- if (!acl && !url) || (acl && url)
132
- raise EdgeAuthError, 'You must provide a URL or an ACL'
133
- end
134
-
135
124
  if @verbose
136
125
  puts "Akamai Token Generation Parameters"
137
126
  puts "Token Type : #{@token_type}"
138
127
  puts "Token Name : #{@token_name}"
139
128
  puts "Start Time : #{start_time}"
140
129
  puts "End Time : #{end_time}"
141
- puts "Window(seconds) : #{window_seconds}"
142
- puts "IP : #{ip}"
143
- puts "URL : #{url}"
144
- puts "ACL : #{acl}"
130
+ puts "Window(seconds) : #{@window_seconds}"
131
+ puts "IP : #{@ip}"
132
+ puts "URL/ACL : #{path}"
145
133
  puts "Key/Secret : #{@key}"
146
- puts "Payload : #{payload}"
134
+ puts "Payload : #{@payload}"
147
135
  puts "Algo : #{@algo}"
148
136
  puts "Salt : #{@salt}"
149
- puts "Session ID : #{session_id}"
137
+ puts "Session ID : #{@session_id}"
150
138
  puts "Field Delimiter : #{@field_delimiter}"
151
- puts "ACL Delimiter : #{@@acl_delimiter}"
139
+ puts "ACL Delimiter : #{@acl_delimiter}"
152
140
  puts "Escape Early : #{@escape_early}"
153
141
  end
154
142
 
@@ -163,8 +151,8 @@ module Akamai
163
151
  end
164
152
  new_token.push('exp=%s' % end_time)
165
153
 
166
- if acl
167
- new_token.push('acl=%s' % acl)
154
+ if !isUrl
155
+ new_token.push('acl=%s' % path)
168
156
  end
169
157
  if session_id
170
158
  new_token.push('id=%s' % _escapeEarly(session_id))
@@ -175,8 +163,8 @@ module Akamai
175
163
 
176
164
  hash_code = new_token.clone
177
165
 
178
- if url and !acl
179
- hash_code.push('url=%s' % _escapeEarly(url))
166
+ if isUrl
167
+ hash_code.push('url=%s' % _escapeEarly(path))
180
168
  end
181
169
 
182
170
  if @salt
@@ -195,5 +183,22 @@ module Akamai
195
183
 
196
184
  return new_token.join(@field_delimiter)
197
185
  end
186
+
187
+ def generateACLToken(acl)
188
+ if !acl
189
+ raise EdgeAuthError, 'You must provide the ACL(s)'
190
+ elsif acl.is_a?(Array)
191
+ acl = acl.join(@acl_delimiter)
192
+ end
193
+ return _generateToken(acl, false)
194
+ end
195
+
196
+ def generateURLToken(url)
197
+ if !url
198
+ raise EdgeAuthError, 'You must provide a URL'
199
+ end
200
+
201
+ return _generateToken(url, true)
202
+ end
198
203
  end
199
204
  end
metadata CHANGED
@@ -1,23 +1,23 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: akamai-edgeauth
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Astin Choi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-22 00:00:00.000000000 Z
11
+ date: 2018-05-15 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Akamai-EdgeAuth is Akamai Edge Authorization Token for Ruby 2.0+
14
- email: achoi@akamai.com
14
+ email: asciineo@gmail.com
15
15
  executables: []
16
16
  extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
19
  - lib/akamai/edgeauth.rb
20
- homepage: https://github.com/AstinCHOI/AkamaiEdgeAuth-Ruby
20
+ homepage: https://github.com/akamai/EdgeAuth-Token-Ruby
21
21
  licenses:
22
22
  - Apache-2.0
23
23
  metadata: {}