Class: KeycloakAdmin::Client
- Inherits:
-
Object
- Object
- KeycloakAdmin::Client
show all
- Defined in:
- lib/keycloak-admin/client/client.rb
Direct Known Subclasses
AttackDetectionClient, ClientAuthzPermissionClient, ClientAuthzPolicyClient, ClientAuthzResourceClient, ClientAuthzScopeClient, ClientClient, ClientRoleClient, ClientRoleMappingsClient, ClientScopeClient, ClientScopeProtocolMapperClient, ConfigurableTokenClient, GroupClient, IdentityProviderClient, OrganizationClient, RealmClient, RoleClient, RoleMapperClient, TokenClient, UserClient
Instance Method Summary
collapse
Constructor Details
#initialize(configuration) ⇒ Client
Returns a new instance of Client.
4
5
6
|
# File 'lib/keycloak-admin/client/client.rb', line 4
def initialize(configuration)
@configuration = configuration
end
|
Instance Method Details
#create_payload(value) ⇒ Object
43
44
45
46
47
48
49
50
51
|
# File 'lib/keycloak-admin/client/client.rb', line 43
def create_payload(value)
if value.nil?
""
elsif value.kind_of?(Array)
"[#{value.map(&:to_json) * ","}]"
else
value.to_json
end
end
|
#created_id(response) ⇒ Object
35
36
37
38
39
40
41
|
# File 'lib/keycloak-admin/client/client.rb', line 35
def created_id(response)
unless response.status == 201
raise "Create method returned status #{response.reason_phrase} (Code: #{response.status}); expected status: Created (201)"
end
(_head, _separator, id) = response.[:location].rpartition("/")
id
end
|
#current_token ⇒ Object
Cached on @configuration, not on this instance, since a new Client subclass is
created for nearly every call (e.g. KeycloakAdmin.realm(x).users creates a fresh
UserClient) - caching here alone would fetch a new token on almost every request.
15
16
17
|
# File 'lib/keycloak-admin/client/client.rb', line 15
def current_token
@configuration.cached_token || @configuration.cache_token(fetch_token)
end
|
#execute_http ⇒ Object
27
28
29
30
31
32
33
|
# File 'lib/keycloak-admin/client/client.rb', line 27
def execute_http
yield
rescue Faraday::TimeoutError
raise
rescue Faraday::ClientError, Faraday::ServerError => e
http_error(e.response)
end
|
19
20
21
22
23
24
25
|
# File 'lib/keycloak-admin/client/client.rb', line 19
def
{
Authorization: "Bearer #{current_token.access_token}",
content_type: :json,
accept: :json
}
end
|
#server_url ⇒ Object
8
9
10
|
# File 'lib/keycloak-admin/client/client.rb', line 8
def server_url
@configuration.server_url&.sub(/\/+\z/, "")
end
|