ruby-keycloak-admin 26.0.8 → 26.5.2
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/keycloak/admin/agent.rb +7 -12
- data/lib/keycloak/admin/groups.rb +0 -6
- data/lib/keycloak/admin/realms.rb +1 -0
- data/lib/keycloak/admin/resource.rb +6 -8
- data/lib/keycloak/admin/users.rb +0 -8
- data/lib/keycloak/admin/version.rb +1 -1
- data/lib/keycloak/admin.rb +0 -4
- metadata +19 -13
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e06abe3b7f4592a45bcf9a5e820b6271893defcad2bd0fad9ada7e737409db1e
|
|
4
|
+
data.tar.gz: 6aa211932ab27efa1dc407aa40cea9334be608c7ed12b6a2b98259b4093b303e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3e9ca43ebd642ee2f3f5ebeb1af99a0a0fc208a709ff23acb82e65d115d3a5da8a5d18f42ea1bc2a0cdaeb2079e39f2f4c649f8d45865176d84c81dae2df2005
|
|
7
|
+
data.tar.gz: b7ed4ed0927e3f074974eea17030e01754e37b38e1fea38c1a6e7b3244dcca28a4ce2fe978bac004a0f1e839bc52a962893ad32b779820e007609600878f896a
|
data/lib/keycloak/admin/agent.rb
CHANGED
|
@@ -9,6 +9,7 @@ module Keycloak
|
|
|
9
9
|
module Admin
|
|
10
10
|
class Agent # :nodoc: all
|
|
11
11
|
include HTTParty
|
|
12
|
+
|
|
12
13
|
headers 'Accept' => 'application/json', 'Content-Type' => 'application/json'
|
|
13
14
|
debug_output $stdout if ENV['KEYCLOAK_ADMIN_DEBUG']
|
|
14
15
|
|
|
@@ -56,7 +57,7 @@ module Keycloak
|
|
|
56
57
|
private
|
|
57
58
|
|
|
58
59
|
def create_session
|
|
59
|
-
return
|
|
60
|
+
return if !session_expired?
|
|
60
61
|
|
|
61
62
|
response = self.class.post(
|
|
62
63
|
"#{@base_url}/realms/master/protocol/openid-connect/token",
|
|
@@ -72,13 +73,11 @@ module Keycloak
|
|
|
72
73
|
Keycloak::Admin.raise_error(response) if !response.code.between?(200, 299)
|
|
73
74
|
|
|
74
75
|
store_session(response)
|
|
75
|
-
|
|
76
|
-
true
|
|
77
76
|
end
|
|
78
77
|
|
|
79
78
|
def refresh_session
|
|
80
|
-
return
|
|
81
|
-
return
|
|
79
|
+
return if !session_running?
|
|
80
|
+
return if refresh_expired?
|
|
82
81
|
|
|
83
82
|
response = self.class.post(
|
|
84
83
|
"#{@base_url}/realms/master/protocol/openid-connect/token",
|
|
@@ -90,17 +89,15 @@ module Keycloak
|
|
|
90
89
|
}
|
|
91
90
|
)
|
|
92
91
|
|
|
93
|
-
return
|
|
92
|
+
return if response.code.eql?(400)
|
|
94
93
|
return Keycloak::Admin.raise_error(response) if !response.code.between?(200, 299)
|
|
95
94
|
|
|
96
95
|
store_session(response)
|
|
97
|
-
|
|
98
|
-
true
|
|
99
96
|
end
|
|
100
97
|
|
|
101
98
|
def terminate_session
|
|
102
|
-
return
|
|
103
|
-
return
|
|
99
|
+
return if !session_running?
|
|
100
|
+
return if refresh_expired?
|
|
104
101
|
|
|
105
102
|
response = self.class.post(
|
|
106
103
|
"#{@base_url}/realms/master/protocol/openid-connect/logout",
|
|
@@ -114,8 +111,6 @@ module Keycloak
|
|
|
114
111
|
@session = nil
|
|
115
112
|
|
|
116
113
|
Keycloak::Admin.raise_error(response) if !response.code.between?(200, 299)
|
|
117
|
-
|
|
118
|
-
true
|
|
119
114
|
end
|
|
120
115
|
|
|
121
116
|
def store_session(response)
|
|
@@ -24,16 +24,12 @@ module Keycloak
|
|
|
24
24
|
# Add user to group.
|
|
25
25
|
def add(id, user_id)
|
|
26
26
|
@agent.put("/admin/realms/#{@agent.realm}/users/#{user_id}/groups/#{id}")
|
|
27
|
-
|
|
28
|
-
true
|
|
29
27
|
end
|
|
30
28
|
|
|
31
29
|
##
|
|
32
30
|
# Remove user from group.
|
|
33
31
|
def remove(id, user_id)
|
|
34
32
|
@agent.delete("/admin/realms/#{@agent.realm}/users/#{user_id}/groups/#{id}")
|
|
35
|
-
|
|
36
|
-
true
|
|
37
33
|
end
|
|
38
34
|
|
|
39
35
|
##
|
|
@@ -52,8 +48,6 @@ module Keycloak
|
|
|
52
48
|
# Create subgroup.
|
|
53
49
|
def subgroup(id, attributes)
|
|
54
50
|
@agent.post("#{resource}/#{id}/children", params: { body: attributes.to_json })
|
|
55
|
-
|
|
56
|
-
true
|
|
57
51
|
end
|
|
58
52
|
|
|
59
53
|
private
|
|
@@ -4,6 +4,10 @@ require 'hashie'
|
|
|
4
4
|
|
|
5
5
|
module Keycloak
|
|
6
6
|
module Admin
|
|
7
|
+
class ResourceObject < Hashie::Mash
|
|
8
|
+
disable_warnings
|
|
9
|
+
end
|
|
10
|
+
|
|
7
11
|
##
|
|
8
12
|
# Abstract class for Keycloak::Admin resources with common methods.
|
|
9
13
|
#
|
|
@@ -29,16 +33,12 @@ module Keycloak
|
|
|
29
33
|
# Create a new resource object.
|
|
30
34
|
def create(attributes)
|
|
31
35
|
@agent.post(resource, params: { body: attributes.to_json })
|
|
32
|
-
|
|
33
|
-
true
|
|
34
36
|
end
|
|
35
37
|
|
|
36
38
|
##
|
|
37
39
|
# Delete a resource object by id.
|
|
38
40
|
def delete(id)
|
|
39
41
|
@agent.delete("#{resource}/#{id}")
|
|
40
|
-
|
|
41
|
-
true
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
##
|
|
@@ -70,8 +70,6 @@ module Keycloak
|
|
|
70
70
|
# Update a resource object by id.
|
|
71
71
|
def update(id, attributes)
|
|
72
72
|
@agent.put("#{resource}/#{id}", params: { body: attributes.to_json })
|
|
73
|
-
|
|
74
|
-
true
|
|
75
73
|
end
|
|
76
74
|
alias edit update
|
|
77
75
|
|
|
@@ -93,9 +91,9 @@ module Keycloak
|
|
|
93
91
|
|
|
94
92
|
def mash(object)
|
|
95
93
|
if object.is_a?(Array)
|
|
96
|
-
object.map { |item|
|
|
94
|
+
object.map { |item| ResourceObject.new(item) }
|
|
97
95
|
else
|
|
98
|
-
|
|
96
|
+
ResourceObject.new(object)
|
|
99
97
|
end
|
|
100
98
|
end
|
|
101
99
|
end
|
data/lib/keycloak/admin/users.rb
CHANGED
|
@@ -26,16 +26,12 @@ module Keycloak
|
|
|
26
26
|
# Add user to group.
|
|
27
27
|
def join(id, group_id)
|
|
28
28
|
@agent.put("#{resource}/#{id}/groups/#{group_id}")
|
|
29
|
-
|
|
30
|
-
true
|
|
31
29
|
end
|
|
32
30
|
|
|
33
31
|
##
|
|
34
32
|
# Remove user from group.
|
|
35
33
|
def leave(id, group_id)
|
|
36
34
|
@agent.delete("#{resource}/#{id}/groups/#{group_id}")
|
|
37
|
-
|
|
38
|
-
true
|
|
39
35
|
end
|
|
40
36
|
|
|
41
37
|
##
|
|
@@ -54,8 +50,6 @@ module Keycloak
|
|
|
54
50
|
# Logout user from all sessions.
|
|
55
51
|
def logout(id)
|
|
56
52
|
@agent.post("#{resource}/#{id}/logout")
|
|
57
|
-
|
|
58
|
-
true
|
|
59
53
|
end
|
|
60
54
|
|
|
61
55
|
##
|
|
@@ -64,8 +58,6 @@ module Keycloak
|
|
|
64
58
|
# { temporary: false, value: 'password' }
|
|
65
59
|
attributes[:type] = 'password'
|
|
66
60
|
@agent.put("#{resource}/#{id}/reset-password", params: { body: attributes.to_json })
|
|
67
|
-
|
|
68
|
-
true
|
|
69
61
|
end
|
|
70
62
|
|
|
71
63
|
##
|
data/lib/keycloak/admin.rb
CHANGED
|
@@ -34,8 +34,6 @@ module Keycloak
|
|
|
34
34
|
@agent ||= Keycloak::Admin::Agent.new
|
|
35
35
|
yield @agent
|
|
36
36
|
@configured = true
|
|
37
|
-
|
|
38
|
-
true
|
|
39
37
|
end
|
|
40
38
|
|
|
41
39
|
##
|
|
@@ -48,8 +46,6 @@ module Keycloak
|
|
|
48
46
|
# Raise error if Keycloak::Admin is not configured.
|
|
49
47
|
def configured!
|
|
50
48
|
raise Keycloak::Admin::ConfigurationError, 'Keycloak::Admin is not configured' if !configured?
|
|
51
|
-
|
|
52
|
-
true
|
|
53
49
|
end
|
|
54
50
|
|
|
55
51
|
##
|
metadata
CHANGED
|
@@ -1,42 +1,48 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ruby-keycloak-admin
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 26.
|
|
4
|
+
version: 26.5.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Tobias Schäfer
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: hashie
|
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
|
15
15
|
requirements:
|
|
16
|
-
- - "
|
|
16
|
+
- - ">="
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
18
|
version: 5.0.0
|
|
19
19
|
type: :runtime
|
|
20
20
|
prerelease: false
|
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
22
|
requirements:
|
|
23
|
-
- - "
|
|
23
|
+
- - ">="
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
25
|
version: 5.0.0
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: httparty
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
29
29
|
requirements:
|
|
30
|
-
- - "
|
|
30
|
+
- - ">="
|
|
31
31
|
- !ruby/object:Gem::Version
|
|
32
|
-
version: 0.21
|
|
32
|
+
version: '0.21'
|
|
33
|
+
- - "<"
|
|
34
|
+
- !ruby/object:Gem::Version
|
|
35
|
+
version: '0.25'
|
|
33
36
|
type: :runtime
|
|
34
37
|
prerelease: false
|
|
35
38
|
version_requirements: !ruby/object:Gem::Requirement
|
|
36
39
|
requirements:
|
|
37
|
-
- - "
|
|
40
|
+
- - ">="
|
|
41
|
+
- !ruby/object:Gem::Version
|
|
42
|
+
version: '0.21'
|
|
43
|
+
- - "<"
|
|
38
44
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: 0.
|
|
45
|
+
version: '0.25'
|
|
40
46
|
description: |+
|
|
41
47
|
Ruby Keycloack admin API wrapper.
|
|
42
48
|
|
|
@@ -44,7 +50,7 @@ description: |+
|
|
|
44
50
|
|
|
45
51
|
* https://www.keycloak.org
|
|
46
52
|
* https://www.keycloak.org/documentation
|
|
47
|
-
* https://www.keycloak.org/docs-api/26.
|
|
53
|
+
* https://www.keycloak.org/docs-api/26.5.2/rest-api/index.html
|
|
48
54
|
|
|
49
55
|
email:
|
|
50
56
|
- github@blackox.org
|
|
@@ -62,13 +68,13 @@ files:
|
|
|
62
68
|
- lib/keycloak/admin/resource/pagination.rb
|
|
63
69
|
- lib/keycloak/admin/users.rb
|
|
64
70
|
- lib/keycloak/admin/version.rb
|
|
65
|
-
homepage: https://github.com/tschaefer/keycloak-admin
|
|
71
|
+
homepage: https://github.com/tschaefer/ruby-keycloak-admin
|
|
66
72
|
licenses:
|
|
67
73
|
- MIT
|
|
68
74
|
metadata:
|
|
69
75
|
rubygems_mfa_required: 'true'
|
|
70
|
-
source_code_uri: https://github.com/tschaefer/keycloak-admin
|
|
71
|
-
bug_tracker_uri: https://github.com/tschaefer/keycloak-admin/issues
|
|
76
|
+
source_code_uri: https://github.com/tschaefer/ruby-keycloak-admin
|
|
77
|
+
bug_tracker_uri: https://github.com/tschaefer/ruby-keycloak-admin/issues
|
|
72
78
|
post_install_message: All your Keycloak are belong to us!
|
|
73
79
|
rdoc_options: []
|
|
74
80
|
require_paths:
|
|
@@ -84,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
84
90
|
- !ruby/object:Gem::Version
|
|
85
91
|
version: '0'
|
|
86
92
|
requirements: []
|
|
87
|
-
rubygems_version:
|
|
93
|
+
rubygems_version: 4.0.6
|
|
88
94
|
specification_version: 4
|
|
89
95
|
summary: Ruby Keycloack admin API wrapper.
|
|
90
96
|
test_files: []
|