authbox 0.0.2 → 0.0.4
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.
- checksums.yaml +4 -4
- data/lib/authbox.rb +45 -7
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: acc525e74ec5937d46906f9e1f682638c7dbce9c
|
4
|
+
data.tar.gz: cebb588c2567adb44f391d54314dc416be283d77
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37e6bd3aa6c75788b93eb0a2ae44b1ce1fbe37938a610c46b54a5b7716d35c6b8301541fa343794bad2d60efba3ae2e6662d54ed93e0ee813350b0f465027f56
|
7
|
+
data.tar.gz: a8f53a2318c8a7b6311fb9a8d0f6286e20461430db3205cdb7b37fe16c5071170a827aba1b9991cae61f9d4973a137c79acd4f6ee7cfd88e42a65a8810a408bd
|
data/lib/authbox.rb
CHANGED
@@ -55,7 +55,31 @@ module Authbox
|
|
55
55
|
# will be logged. See the documentation for what information
|
56
56
|
# you can pass here in the action hash.
|
57
57
|
def authbox_log(action={})
|
58
|
-
|
58
|
+
if not authbox_ensure_one_request()
|
59
|
+
return @authbox_verdict
|
60
|
+
end
|
61
|
+
|
62
|
+
return authbox_request('/action', action, true)
|
63
|
+
end
|
64
|
+
|
65
|
+
def authbox_check(action={})
|
66
|
+
if not authbox_ensure_one_request()
|
67
|
+
return @authbox_verdict
|
68
|
+
end
|
69
|
+
|
70
|
+
return authbox_request('/action', action, false)
|
71
|
+
end
|
72
|
+
|
73
|
+
def authbox_begin(action={})
|
74
|
+
if not authbox_ensure_one_request()
|
75
|
+
return @authbox_verdict
|
76
|
+
end
|
77
|
+
|
78
|
+
return authbox_request('/action_begin', action, false)
|
79
|
+
end
|
80
|
+
|
81
|
+
def authbox_end(action={})
|
82
|
+
return authbox_request('/action_end', action, false)
|
59
83
|
end
|
60
84
|
|
61
85
|
##
|
@@ -100,21 +124,26 @@ module Authbox
|
|
100
124
|
return Rails.configuration.authbox[:endpoint] || 'https://api.authbox.io/api'
|
101
125
|
end
|
102
126
|
|
103
|
-
def
|
127
|
+
def authbox_ensure_one_request
|
104
128
|
if @authbox_requested
|
105
129
|
logger.warn 'authbox_log() already called'
|
106
|
-
return
|
130
|
+
return false
|
107
131
|
end
|
108
132
|
|
109
133
|
@authbox_requested = true
|
134
|
+
return true
|
135
|
+
end
|
110
136
|
|
137
|
+
def authbox_request(endpoint, action, async)
|
111
138
|
cookie_name = authbox_get_cookie('local_machine_id')
|
112
139
|
|
113
140
|
if cookies[cookie_name].blank?
|
114
141
|
local_machine_id = SecureRandom.hex(32)
|
142
|
+
@authbox_new_local_machine_id = true
|
115
143
|
@authbox_insert_pixel = true
|
116
144
|
else
|
117
145
|
local_machine_id = cookies[cookie_name]
|
146
|
+
@authbox_new_local_machine_id = false
|
118
147
|
end
|
119
148
|
|
120
149
|
cookies[cookie_name] = {
|
@@ -132,9 +161,13 @@ module Authbox
|
|
132
161
|
|
133
162
|
body = {
|
134
163
|
'$actionName' => '$unknown',
|
135
|
-
'$localMachineID' =>
|
164
|
+
'$localMachineID' => {
|
165
|
+
'$key' => local_machine_id,
|
166
|
+
'$new' => @authbox_new_local_machine_id
|
167
|
+
},
|
136
168
|
'$userAgent' => request.user_agent,
|
137
169
|
'$ipAddress' => remote_ip,
|
170
|
+
'$endpointURL' => request.original_url,
|
138
171
|
'$apiKey' => Rails.configuration.authbox[:api_key],
|
139
172
|
'$secretKey' => Rails.configuration.authbox[:secret_key]
|
140
173
|
}
|
@@ -143,7 +176,7 @@ module Authbox
|
|
143
176
|
body.merge!(action)
|
144
177
|
|
145
178
|
base_uri = authbox_get_endpoint()
|
146
|
-
uri = URI(base_uri +
|
179
|
+
uri = URI(base_uri + endpoint)
|
147
180
|
|
148
181
|
if async
|
149
182
|
Authbox.authbox_pool.process do
|
@@ -157,14 +190,19 @@ module Authbox
|
|
157
190
|
begin
|
158
191
|
parsed_response = JSON.parse(response.body)
|
159
192
|
if not parsed_response.has_key? 'type'
|
160
|
-
|
193
|
+
@authbox_verdict = {'type' => 'ALLOW', 'info' => 'No verdict returend'}
|
194
|
+
return @authbox_verdict
|
161
195
|
end
|
162
196
|
rescue => e
|
163
197
|
logger.warn "AUTHBOX: Error decoding body: #{e}"
|
164
198
|
|
165
199
|
# Fail open
|
166
|
-
|
200
|
+
@authbox_verdict = {'type' => 'ALLOW', 'info' => 'Error from server'}
|
201
|
+
return @authbox_verdict
|
167
202
|
end
|
203
|
+
|
204
|
+
@authbox_verdict = parsed_response
|
205
|
+
return @authbox_verdict
|
168
206
|
end
|
169
207
|
|
170
208
|
included do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: authbox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Authbox, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thread
|