keycloak-ruby-client 0.0.9 → 0.0.10
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/keycloak-ruby-client.gemspec +2 -0
- data/lib/keycloak/api/realm_resources.rb +34 -0
- data/lib/keycloak/api/user_resources.rb +5 -0
- data/lib/keycloak/api.rb +1 -0
- data/lib/keycloak/client.rb +14 -1
- data/lib/keycloak/concerns/api_util.rb +4 -0
- data/lib/keycloak/model/realm_representation.rb +30 -0
- data/lib/keycloak/model.rb +2 -1
- data/lib/keycloak/version.rb +1 -1
- data/lib/keycloak.rb +2 -0
- metadata +32 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a8d34f9a8a043e0dab94b853945713d98b5e84e1
|
4
|
+
data.tar.gz: b2db73176d2c8db05167a90efc59a9d78aff2d4d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 546abf23314d14cb70e6e07c0ab8ec98843e3da35f691fbc936e2b0090ca1c4b06b1ec8bf97f1eab958991400b6b1eeee601896f812f1c00c804ccb39e9b7402
|
7
|
+
data.tar.gz: 54c2a8ffe5eb1cec83378cd36f3cdf4c0fd9bda51ce6c22f417f897df32684d2bab9e67855fc46295d0d35d8ef0994346aae107ccb4540f68a6f3b831da590c3
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Keycloak
|
2
|
+
module API
|
3
|
+
module RealmResources
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
include Concerns::APIUtil
|
6
|
+
|
7
|
+
# @param realm_rep [Keycloak::Model::RealmRepresentation] realm representation
|
8
|
+
def create_realm(realm_rep)
|
9
|
+
post("#{@auth_server_url}/admin/realms/", realm_rep.to_json, headers: {content_type: :json})
|
10
|
+
end
|
11
|
+
|
12
|
+
# @param realm [String] realm name
|
13
|
+
def delete_realm(realm)
|
14
|
+
url = "#{@auth_server_url}/admin/realms/#{realm}"
|
15
|
+
delete(url)
|
16
|
+
end
|
17
|
+
|
18
|
+
# @param realm [String] realm name
|
19
|
+
# @param realm_rep [Keycloak::Model::RealmRepresentation] realm representation
|
20
|
+
def update_realm(realm, realm_rep)
|
21
|
+
url = "#{@auth_server_url}/admin/realms/#{realm}"
|
22
|
+
put(url, realm_rep.to_json, headers: {content_type: :json})
|
23
|
+
end
|
24
|
+
|
25
|
+
# @param realm [String] realm name
|
26
|
+
# @return [Keycloak::Model::RealmRepresentation] realm representation
|
27
|
+
def find_realm(realm)
|
28
|
+
url = "#{@auth_server_url}/admin/realms/#{realm}"
|
29
|
+
Keycloak::Model::RealmRepresentation.new JSON.parse(get(url))
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -29,6 +29,11 @@ module Keycloak
|
|
29
29
|
Model::UserRepresentation.new JSON.parse(get("#{user_resources_url}/#{id}"))
|
30
30
|
end
|
31
31
|
|
32
|
+
# @param id [String] user id
|
33
|
+
def update_user(id, user_rep)
|
34
|
+
put("#{user_resources_url}/#{id}", user_rep.to_json, headers: {content_type: :json})
|
35
|
+
end
|
36
|
+
|
32
37
|
# see https://www.keycloak.org/docs-api/6.0/rest-api/index.html#_users_resource for params details
|
33
38
|
#
|
34
39
|
# @return [Keycloak::Utils::RepresentationIterator] iterator of users
|
data/lib/keycloak/api.rb
CHANGED
data/lib/keycloak/client.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'rest_client'
|
2
|
+
|
1
3
|
module Keycloak
|
2
4
|
class Client
|
3
5
|
include API::UserResources
|
@@ -5,6 +7,7 @@ module Keycloak
|
|
5
7
|
include API::ProtectionResources
|
6
8
|
include API::ClientResources
|
7
9
|
include API::ClientRoleResources
|
10
|
+
include API::RealmResources
|
8
11
|
|
9
12
|
attr_reader :auth_server_url, :realm
|
10
13
|
|
@@ -108,7 +111,17 @@ module Keycloak
|
|
108
111
|
headers: {
|
109
112
|
authorization: "Bearer #{@access_token}",
|
110
113
|
accept: "application/json"
|
111
|
-
}.merge(headers)
|
114
|
+
}.merge(headers)
|
115
|
+
)
|
116
|
+
end
|
117
|
+
|
118
|
+
def put(url, payload, headers: {}, try_refresh_token: true)
|
119
|
+
try_refresh_token! if try_refresh_token
|
120
|
+
|
121
|
+
RestClient.put(url, payload, {
|
122
|
+
authorization: "Bearer #{@access_token}",
|
123
|
+
accept: "application/json"
|
124
|
+
}.merge(headers))
|
112
125
|
end
|
113
126
|
end
|
114
127
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Keycloak
|
2
|
+
module Model
|
3
|
+
class RealmRepresentation < BaseRepresentation
|
4
|
+
fields :accessCodeLifespan, :accessCodeLifespanLogin, :accessCodeLifespanUserAction,
|
5
|
+
:accessTokenLifespan, :accessTokenLifespanForImplicitFlow, :accountTheme,
|
6
|
+
:actionTokenGeneratedByAdminLifespan, :actionTokenGeneratedByUserLifespan,
|
7
|
+
:adminEventsDetailsEnabled, :adminEventsEnabled, :adminTheme, :attributes,
|
8
|
+
:authenticationFlows, :authenticatorConfig, :browserFlow, :browserSecurityHeaders,
|
9
|
+
:bruteForceProtected, :clientAuthenticationFlow, :clientScopeMappings, :clientScopes,
|
10
|
+
:clients, :components, :defaultDefaultClientScopes, :defaultGroups, :defaultLocale,
|
11
|
+
:defaultOptionalClientScopes, :defaultRoles, :defaultSignatureAlgorithm, :directGrantFlow,
|
12
|
+
:displayName, :displayNameHtml, :dockerAuthenticationFlow, :duplicateEmailsAllowed,
|
13
|
+
:editUsernameAllowed, :emailTheme, :enabled, :enabledEventTypes, :eventsEnabled,
|
14
|
+
:eventsExpiration, :eventsListeners, :failureFactor, :federatedUsers, :groups, :id,
|
15
|
+
:identityProviderMappers, :identityProviders, :internationalizationEnabled,
|
16
|
+
:keycloakVersion, :loginTheme, :loginWithEmailAllowed, :maxDeltaTimeSeconds,
|
17
|
+
:maxFailureWaitSeconds, :minimumQuickLoginWaitSeconds, :notBefore, :offlineSessionIdleTimeout,
|
18
|
+
:offlineSessionMaxLifespan, :offlineSessionMaxLifespanEnabled, :otpPolicyAlgorithm,
|
19
|
+
:otpPolicyDigits, :otpPolicyInitialCounter, :otpPolicyLookAheadWindow, :otpPolicyPeriod,
|
20
|
+
:otpPolicyType, :otpSupportedApplications, :passwordPolicy, :permanentLockout,
|
21
|
+
:protocolMappers, :quickLoginCheckMilliSeconds, :realm, :refreshTokenMaxReuse,
|
22
|
+
:registrationAllowed, :registrationEmailAsUsername, :registrationFlow, :rememberMe,
|
23
|
+
:requiredActions, :resetCredentialsFlow, :resetPasswordAllowed, :revokeRefreshToken,
|
24
|
+
:roles, :scopeMappings, :smtpServer, :sslRequired, :ssoSessionIdleTimeout,
|
25
|
+
:ssoSessionIdleTimeoutRememberMe, :ssoSessionMaxLifespan, :ssoSessionMaxLifespanRememberMe,
|
26
|
+
:supportedLocales, :userFederationMappers, :userFederationProviders, :userManagedAccessAllowed,
|
27
|
+
:users, :verifyEmail, :waitIncrementSeconds
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/lib/keycloak/model.rb
CHANGED
@@ -2,4 +2,5 @@ require 'keycloak/model/base_representation'
|
|
2
2
|
require 'keycloak/model/credential_representation'
|
3
3
|
require 'keycloak/model/role_representation'
|
4
4
|
require 'keycloak/model/user_representation'
|
5
|
-
require 'keycloak/model/client_representation'
|
5
|
+
require 'keycloak/model/client_representation'
|
6
|
+
require 'keycloak/model/realm_representation'
|
data/lib/keycloak/version.rb
CHANGED
data/lib/keycloak.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: keycloak-ruby-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fuxin Hao
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-08-
|
11
|
+
date: 2019-08-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -80,6 +80,34 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '10.0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rspec
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: faker
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
83
111
|
description: Keycloak ruby client
|
84
112
|
email:
|
85
113
|
- haofxpro@gmail.com
|
@@ -102,6 +130,7 @@ files:
|
|
102
130
|
- lib/keycloak/api/client_resources.rb
|
103
131
|
- lib/keycloak/api/client_role_resources.rb
|
104
132
|
- lib/keycloak/api/protection_resources.rb
|
133
|
+
- lib/keycloak/api/realm_resources.rb
|
105
134
|
- lib/keycloak/api/role_resources.rb
|
106
135
|
- lib/keycloak/api/user_resources.rb
|
107
136
|
- lib/keycloak/client.rb
|
@@ -111,6 +140,7 @@ files:
|
|
111
140
|
- lib/keycloak/model/base_representation.rb
|
112
141
|
- lib/keycloak/model/client_representation.rb
|
113
142
|
- lib/keycloak/model/credential_representation.rb
|
143
|
+
- lib/keycloak/model/realm_representation.rb
|
114
144
|
- lib/keycloak/model/role_representation.rb
|
115
145
|
- lib/keycloak/model/user_representation.rb
|
116
146
|
- lib/keycloak/realm.rb
|