module Keycloak
Constants
- KEYCLOAK_JSON_FILE
- OLD_KEYCLOAK_JSON_FILE
- VERSION
Attributes
auth_server_url[RW]
generate_request_exception[RW]
keycloak_controller[RW]
proc_external_attributes[RW]
proxy[RW]
realm[RW]
resource[RW]
secret[RW]
validate_token_when_call_has_role[RW]
Public Class Methods
explode_exception()
click to toggle source
# File lib/keycloak.rb, line 25 def self.explode_exception Keycloak.generate_request_exception = true if Keycloak.generate_request_exception.nil? Keycloak.generate_request_exception end
installation_file()
click to toggle source
# File lib/keycloak.rb, line 30 def self.installation_file @installation_file ||= if File.exist?(KEYCLOAK_JSON_FILE) KEYCLOAK_JSON_FILE else OLD_KEYCLOAK_JSON_FILE end end
installation_file=(file = nil)
click to toggle source
# File lib/keycloak.rb, line 38 def self.installation_file=(file = nil) raise InstallationFileNotFound unless file.instance_of?(String) && File.exist?(file) @installation_file = file || KEYCLOAK_JSON_FILE end
Private Class Methods
generic_request(access_token, uri, query_parameters, body_parameter, method)
click to toggle source
# File lib/keycloak.rb, line 952 def self.generic_request(access_token, uri, query_parameters, body_parameter, method) Keycloak::Client.verify_setup final_url = uri header = {'Content-Type' => 'application/x-www-form-urlencoded', 'Authorization' => "Bearer #{access_token}"} if query_parameters parameters = URI.encode_www_form(query_parameters) final_url = final_url << '?' << parameters end case method.upcase when 'GET' _request = -> do RestClient.get(final_url, header){|response, request, result| rescue_response(response) } end when 'POST', 'PUT' header["Content-Type"] = 'application/json' parameters = JSON.generate body_parameter _request = -> do case method.upcase when 'POST' RestClient.post(final_url, parameters, header){|response, request, result| rescue_response(response) } else RestClient.put(final_url, parameters, header){|response, request, result| rescue_response(response) } end end when 'DELETE' _request = -> do if body_parameter header["Content-Type"] = 'application/json' parameters = JSON.generate body_parameter RestClient::Request.execute(method: :delete, url: final_url, payload: parameters, headers: header) { |response, request, result| rescue_response(response) } else RestClient.delete(final_url, header) { |response, request, result| rescue_response(response) } end end else raise end _request.call end
rescue_response(response)
click to toggle source
# File lib/keycloak.rb, line 1008 def self.rescue_response(response) case response.code when 200..399 if response.body.empty? true else response.body end when 400..499 response.return! else if Keycloak.explode_exception response.return! else begin response.return! rescue RestClient::ExceptionWithResponse => err err.response rescue StandardError => e e.message end end end end