identikey 0.7.1 → 0.8.0
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/identikey/administration/session.rb +32 -2
- data/lib/identikey/authentication.rb +8 -6
- data/lib/identikey/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ffd988c720bdca730df04328a39439d122436887c02e794b65884559457cfbff
|
|
4
|
+
data.tar.gz: 325ae345fecbb3f4c31b5710d5cf6788cd88ac279319b127c8db64246e0e7919
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ef2cc1d394a1fbec3d4205901447ded1f98d9c04aeb9a89bfaab69d5c5a11f0584b607b16cc84f19099aaafeb14bbfda6c3551c269f26b6213ad26aa8e8244d9
|
|
7
|
+
data.tar.gz: dd00773caf4a4a63804ac3059a098d193a793a107f4ad5050ecc46061f59285b39a2522658415eb70322280a9fc5803a6bea37e25d82b4ca61ae922d6ee53ada
|
|
@@ -6,12 +6,21 @@ module Identikey
|
|
|
6
6
|
attr_reader :session_id, :product, :version
|
|
7
7
|
attr_reader :privileges, :location
|
|
8
8
|
|
|
9
|
-
def initialize(username:, password
|
|
9
|
+
def initialize(username:, password: nil, apikey: nil, domain: 'master')
|
|
10
|
+
if password.nil? && apikey.nil?
|
|
11
|
+
raise Identikey::UsageError, "Either a password or an API Key is required"
|
|
12
|
+
end
|
|
13
|
+
|
|
10
14
|
@client = Identikey::Administration.new
|
|
11
15
|
|
|
12
16
|
@username = username
|
|
13
17
|
@password = password
|
|
14
18
|
@domain = domain
|
|
19
|
+
|
|
20
|
+
if apikey
|
|
21
|
+
@service_user = true
|
|
22
|
+
@session_id = "Apikey #{username}:#{apikey}"
|
|
23
|
+
end
|
|
15
24
|
end
|
|
16
25
|
|
|
17
26
|
def endpoint
|
|
@@ -23,6 +32,8 @@ module Identikey
|
|
|
23
32
|
end
|
|
24
33
|
|
|
25
34
|
def logon
|
|
35
|
+
require_classic_user!
|
|
36
|
+
|
|
26
37
|
stat, sess, error = @client.logon(username: @username, password: @password, domain: @domain)
|
|
27
38
|
|
|
28
39
|
if stat != 'STAT_SUCCESS'
|
|
@@ -42,6 +53,7 @@ module Identikey
|
|
|
42
53
|
end
|
|
43
54
|
|
|
44
55
|
def logoff
|
|
56
|
+
require_classic_user!
|
|
45
57
|
require_logged_on!
|
|
46
58
|
|
|
47
59
|
stat, _, error = @client.logoff session_id: @session_id
|
|
@@ -60,6 +72,8 @@ module Identikey
|
|
|
60
72
|
end
|
|
61
73
|
|
|
62
74
|
def alive?(log: true)
|
|
75
|
+
require_classic_user!
|
|
76
|
+
|
|
63
77
|
return false unless logged_on?
|
|
64
78
|
|
|
65
79
|
stat, _ = @client.ping session_id: @session_id, log: log
|
|
@@ -108,7 +122,17 @@ module Identikey
|
|
|
108
122
|
end
|
|
109
123
|
|
|
110
124
|
def inspect
|
|
111
|
-
|
|
125
|
+
descr = if service_user?
|
|
126
|
+
"SERVICE USER"
|
|
127
|
+
else
|
|
128
|
+
"domain=#@domain product=#@product"
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
"#<#{self.class.name} sid=#@session_id username=#@username #{descr}>"
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
def service_user?
|
|
135
|
+
!!@service_user
|
|
112
136
|
end
|
|
113
137
|
|
|
114
138
|
alias sid session_id
|
|
@@ -123,6 +147,12 @@ module Identikey
|
|
|
123
147
|
end
|
|
124
148
|
end
|
|
125
149
|
|
|
150
|
+
def require_classic_user!
|
|
151
|
+
if service_user?
|
|
152
|
+
raise Identikey::UsageError, "This command is not supported with Service users"
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
|
|
126
156
|
def parse_privileges(privileges)
|
|
127
157
|
privileges.split(', ').inject({}) do |h, priv|
|
|
128
158
|
privilege, status = priv.split(' ')
|
|
@@ -6,11 +6,13 @@ module Identikey
|
|
|
6
6
|
|
|
7
7
|
operations :auth_user
|
|
8
8
|
|
|
9
|
-
def auth_user(user, domain, otp)
|
|
9
|
+
def auth_user(user, domain, otp, client = nil)
|
|
10
|
+
client ||= 'Administration Program'
|
|
11
|
+
|
|
10
12
|
resp = super(message: {
|
|
11
13
|
credentialAttributeSet: {
|
|
12
14
|
attributes: typed_attributes_list_from(
|
|
13
|
-
CREDFLD_COMPONENT_TYPE:
|
|
15
|
+
CREDFLD_COMPONENT_TYPE: client,
|
|
14
16
|
CREDFLD_USERID: user,
|
|
15
17
|
CREDFLD_DOMAIN: domain,
|
|
16
18
|
CREDFLD_PASSWORD_FORMAT: Unsigned(0),
|
|
@@ -22,13 +24,13 @@ module Identikey
|
|
|
22
24
|
parse_response resp, :auth_user_response
|
|
23
25
|
end
|
|
24
26
|
|
|
25
|
-
def self.valid_otp?(user, domain, otp)
|
|
26
|
-
status, result, _ = new.auth_user(user, domain, otp)
|
|
27
|
+
def self.valid_otp?(user, domain, otp, client = nil)
|
|
28
|
+
status, result, _ = new.auth_user(user, domain, otp, client)
|
|
27
29
|
return otp_validated_ok?(status, result)
|
|
28
30
|
end
|
|
29
31
|
|
|
30
|
-
def self.validate!(user, domain, otp)
|
|
31
|
-
status, result, error_stack = new.auth_user(user, domain, otp)
|
|
32
|
+
def self.validate!(user, domain, otp, client = nil)
|
|
33
|
+
status, result, error_stack = new.auth_user(user, domain, otp, client)
|
|
32
34
|
|
|
33
35
|
if otp_validated_ok?(status, result)
|
|
34
36
|
return true
|
data/lib/identikey/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: identikey
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.8.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Marcello Barnaba
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-07-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: savon
|