pansophy_authenticator 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +3 -0
- data/.travis.yml +1 -1
- data/CHANGELOG.md +14 -1
- data/lib/pansophy_authenticator/configuration.rb +1 -0
- data/lib/pansophy_authenticator/configuration/instance.rb +17 -0
- data/lib/pansophy_authenticator/configuration/verification.rb +12 -0
- data/lib/pansophy_authenticator/configuration/verification/common.rb +16 -0
- data/lib/pansophy_authenticator/configuration/verification/local.rb +35 -0
- data/lib/pansophy_authenticator/configuration/verification/remote.rb +19 -0
- data/lib/pansophy_authenticator/configuration/verification/result.rb +25 -0
- data/lib/pansophy_authenticator/configuration/verification/verify.rb +29 -0
- data/lib/pansophy_authenticator/matcher.rb +7 -2
- data/lib/pansophy_authenticator/version.rb +1 -1
- data/pansophy_authenticator.gemspec +2 -1
- metadata +24 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1a3e9c1d43153905040277676f4ce886c9f80eff
|
4
|
+
data.tar.gz: 6dff940369d0b5c392834a841a3dfaeff29ddb08
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd5fd51d19c1b774741a261307df5a83949201a2ed9c86e9337eff4f949b64af42602b7455a7a9d7189ad846a40e8947a29996a81e1c88ab4bc734fe32d01cd7
|
7
|
+
data.tar.gz: a636e340701b60f323deca0ee8abcb84b02b404c230ce83ab7773f48dc5623999a8b2105006d37cc623d5bfc000863923c5b8d6c6a41816f2d85a8283a1cea25
|
data/.rubocop.yml
CHANGED
data/.travis.yml
CHANGED
@@ -8,4 +8,4 @@ notifications:
|
|
8
8
|
email:
|
9
9
|
- support@travellink.com.au
|
10
10
|
flowdock:
|
11
|
-
secure:
|
11
|
+
secure: rn+Y1aDKALwrEUu9JkZCM+DWGMh1X3TKypx05Gh6PPut+DE+DocV1rmRZYgfU/Db0+UtCW27FpdbLETzBa/Z5r58aH0VMdWXpyYbYGXJi8Ff/nWogj0iswrmGoE8a+VEnwt2Z1Gz9LwwP/k7oxA2d+rqalGHNpTZbFf2SOIqq+S8A0ULvg+jTcG1S+mf6iCbAJLbRlRW+CC/dn5YPx9gGt/u9f/dnjGgYmkVuIzS0NvdzmB+lJfMTB4mt5Hbca9QEQSniBQFpI5neWqIBgCgqI9NvbV7s62sztjxnt2+VyjuiJG5IdClwQXIMTlvsgVGifAv99qXBH/Y7mpLUVzJr5uArLpasGe1wJI7xWBDsegYKiIZEYQGNUjFzQaBWwdS/roUWpt+I/FcCHCKYQZvx1OyzmndLN82mMzH7218N5CpCImroVWXZ6MjeOw/45RZPMAaShpdnw5NDHSNPpGF5e+MxqR7okIEoomIDsuGxDgqkCzjAbZETdWTsO8tKu3ZJnAxK9Lu5/iSsQvMLv4mUlL6EYGdjIxLwYtVzbFVVaf8AMdVsr+PMkzbHaqFcoxrE+VC/dFHVVd0szHX8DYs/Nvy5MiEVMVJxRIaUZgzim47I3r7nHKpA9fGh7ipM/pqMBTEnWC64sqQYZTWbFYQ18OyaRtqtdN3Ou3xDY+obPY=
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,19 @@
|
|
1
|
+
## 0.3.0 (2016-02-12)
|
2
|
+
|
3
|
+
Adds:
|
4
|
+
|
5
|
+
- Configuration validation
|
6
|
+
|
7
|
+
## 0.2.1 (2016-02-05)
|
8
|
+
|
9
|
+
Fixes:
|
10
|
+
|
11
|
+
- Security fix: be agnostic on cause of validation failure
|
12
|
+
- Don't raise errors when checking validation via #valid?
|
13
|
+
|
1
14
|
## 0.2.0 (2016-02-02)
|
2
15
|
|
3
|
-
|
16
|
+
Adds:
|
4
17
|
|
5
18
|
- caching via cache store
|
6
19
|
|
@@ -7,3 +7,4 @@ require 'pansophy_authenticator/configuration/configurator'
|
|
7
7
|
require 'pansophy_authenticator/configuration/from_file'
|
8
8
|
require 'pansophy_authenticator/configuration/from_env'
|
9
9
|
require 'pansophy_authenticator/configuration/instance'
|
10
|
+
require 'pansophy_authenticator/configuration/verification'
|
@@ -1,9 +1,11 @@
|
|
1
1
|
require 'anima'
|
2
|
+
require 'memoizable'
|
2
3
|
|
3
4
|
module PansophyAuthenticator
|
4
5
|
module Configuration
|
5
6
|
class Instance
|
6
7
|
include Anima.new :local, :bucket_name, :file_path, :application, :cache_store
|
8
|
+
include Memoizable
|
7
9
|
|
8
10
|
def local?
|
9
11
|
@local
|
@@ -12,6 +14,21 @@ module PansophyAuthenticator
|
|
12
14
|
def remote?
|
13
15
|
!local?
|
14
16
|
end
|
17
|
+
|
18
|
+
def valid?
|
19
|
+
verification.valid?
|
20
|
+
end
|
21
|
+
|
22
|
+
def errors
|
23
|
+
verification.errors
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def verification
|
29
|
+
Verification::Verify.new(self).call
|
30
|
+
end
|
31
|
+
memoize :verification
|
15
32
|
end
|
16
33
|
end
|
17
34
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module PansophyAuthenticator
|
2
|
+
module Configuration
|
3
|
+
module Verification
|
4
|
+
end
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
require 'pansophy_authenticator/configuration/verification/result'
|
9
|
+
require 'pansophy_authenticator/configuration/verification/common'
|
10
|
+
require 'pansophy_authenticator/configuration/verification/local'
|
11
|
+
require 'pansophy_authenticator/configuration/verification/remote'
|
12
|
+
require 'pansophy_authenticator/configuration/verification/verify'
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module PansophyAuthenticator
|
2
|
+
module Configuration
|
3
|
+
module Verification
|
4
|
+
class Common
|
5
|
+
def initialize(configuration)
|
6
|
+
@configuration = configuration
|
7
|
+
end
|
8
|
+
|
9
|
+
def verify
|
10
|
+
return Result.new 'Application is not defined' if @configuration.application.nil?
|
11
|
+
Result.new
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module PansophyAuthenticator
|
2
|
+
module Configuration
|
3
|
+
module Verification
|
4
|
+
class Local
|
5
|
+
def initialize(configuration)
|
6
|
+
@configuration = configuration
|
7
|
+
end
|
8
|
+
|
9
|
+
def verify
|
10
|
+
Result.new errors
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def errors
|
16
|
+
return ['File path is not defined'] unless file_path?
|
17
|
+
return ["#{file_path} does not exist"] unless file_exist?
|
18
|
+
[]
|
19
|
+
end
|
20
|
+
|
21
|
+
def file_path?
|
22
|
+
!file_path.nil?
|
23
|
+
end
|
24
|
+
|
25
|
+
def file_exist?
|
26
|
+
File.exist? file_path
|
27
|
+
end
|
28
|
+
|
29
|
+
def file_path
|
30
|
+
@configuration.file_path
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
module PansophyAuthenticator
|
2
|
+
module Configuration
|
3
|
+
module Verification
|
4
|
+
class Remote
|
5
|
+
def initialize(configuration)
|
6
|
+
@configuration = configuration
|
7
|
+
@result = Result.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def verify
|
11
|
+
errors = []
|
12
|
+
errors << 'Bucket name is not defined' if @configuration.bucket_name.nil?
|
13
|
+
errors << 'File path is not defined' if @configuration.file_path.nil?
|
14
|
+
Result.new errors
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module PansophyAuthenticator
|
2
|
+
module Configuration
|
3
|
+
module Verification
|
4
|
+
class Result
|
5
|
+
include Adamantium
|
6
|
+
|
7
|
+
attr_reader :errors
|
8
|
+
|
9
|
+
def initialize(errors = [])
|
10
|
+
@errors = Array(errors)
|
11
|
+
end
|
12
|
+
|
13
|
+
def valid?
|
14
|
+
@errors.empty?
|
15
|
+
end
|
16
|
+
|
17
|
+
def +(other)
|
18
|
+
transform do
|
19
|
+
@errors += other.errors
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module PansophyAuthenticator
|
2
|
+
module Configuration
|
3
|
+
module Verification
|
4
|
+
class Verify
|
5
|
+
def initialize(configuration)
|
6
|
+
@configuration = configuration
|
7
|
+
end
|
8
|
+
|
9
|
+
def call
|
10
|
+
verifiers.map { |verifier| verifier.new(@configuration).verify }.reduce(&:+)
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def verifiers
|
16
|
+
[Common, specific_verifier]
|
17
|
+
end
|
18
|
+
|
19
|
+
def specific_verifier
|
20
|
+
if @configuration.local?
|
21
|
+
Local
|
22
|
+
else
|
23
|
+
Remote
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -6,16 +6,21 @@ module PansophyAuthenticator
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def validate!(given_key)
|
9
|
-
fail Error,
|
9
|
+
fail Error, 'Invalid application or key' unless valid?(given_key)
|
10
10
|
end
|
11
11
|
|
12
12
|
def valid?(given_key)
|
13
|
+
return false unless valid_application?
|
13
14
|
given_key == key
|
14
15
|
end
|
15
16
|
|
16
17
|
def key
|
17
|
-
fail Error, "#{@application} is not defined" unless
|
18
|
+
fail Error, "#{@application} is not defined" unless valid_application?
|
18
19
|
@keys.fetch(@application)
|
19
20
|
end
|
21
|
+
|
22
|
+
def valid_application?
|
23
|
+
@keys.key?(@application)
|
24
|
+
end
|
20
25
|
end
|
21
26
|
end
|
@@ -28,6 +28,7 @@ Gem::Specification.new do |spec|
|
|
28
28
|
|
29
29
|
spec.add_dependency 'memoize', '~> 1.3'
|
30
30
|
spec.add_dependency 'anima', '~> 0.3'
|
31
|
+
spec.add_dependency 'adamantium', '~> 0.2'
|
31
32
|
spec.add_dependency 'pansophy', '~> 0.3'
|
32
33
|
spec.add_dependency 'yamload', '~> 0.2'
|
33
34
|
|
@@ -38,6 +39,6 @@ Gem::Specification.new do |spec|
|
|
38
39
|
spec.add_development_dependency 'simplecov', '~> 0.11'
|
39
40
|
spec.add_development_dependency 'simplecov-rcov', '~> 0.2'
|
40
41
|
spec.add_development_dependency 'coveralls', '~> 0.8'
|
41
|
-
spec.add_development_dependency 'rubocop', '~> 0.
|
42
|
+
spec.add_development_dependency 'rubocop', '~> 0.37'
|
42
43
|
spec.add_development_dependency 'travis', '~> 1.8'
|
43
44
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pansophy_authenticator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alessandro Berardi
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-02-
|
11
|
+
date: 2016-02-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: memoize
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0.3'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: adamantium
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.2'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.2'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: pansophy
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -170,14 +184,14 @@ dependencies:
|
|
170
184
|
requirements:
|
171
185
|
- - "~>"
|
172
186
|
- !ruby/object:Gem::Version
|
173
|
-
version: '0.
|
187
|
+
version: '0.37'
|
174
188
|
type: :development
|
175
189
|
prerelease: false
|
176
190
|
version_requirements: !ruby/object:Gem::Requirement
|
177
191
|
requirements:
|
178
192
|
- - "~>"
|
179
193
|
- !ruby/object:Gem::Version
|
180
|
-
version: '0.
|
194
|
+
version: '0.37'
|
181
195
|
- !ruby/object:Gem::Dependency
|
182
196
|
name: travis
|
183
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -224,6 +238,12 @@ files:
|
|
224
238
|
- lib/pansophy_authenticator/configuration/from_env.rb
|
225
239
|
- lib/pansophy_authenticator/configuration/from_file.rb
|
226
240
|
- lib/pansophy_authenticator/configuration/instance.rb
|
241
|
+
- lib/pansophy_authenticator/configuration/verification.rb
|
242
|
+
- lib/pansophy_authenticator/configuration/verification/common.rb
|
243
|
+
- lib/pansophy_authenticator/configuration/verification/local.rb
|
244
|
+
- lib/pansophy_authenticator/configuration/verification/remote.rb
|
245
|
+
- lib/pansophy_authenticator/configuration/verification/result.rb
|
246
|
+
- lib/pansophy_authenticator/configuration/verification/verify.rb
|
227
247
|
- lib/pansophy_authenticator/local.rb
|
228
248
|
- lib/pansophy_authenticator/local/build_loader.rb
|
229
249
|
- lib/pansophy_authenticator/local/fetcher.rb
|