Module: Kaseya::VSA
- Extended by:
- Configuration
- Defined in:
- lib/kaseya/vsa.rb,
lib/kaseya/vsa/api.rb,
lib/kaseya/vsa/client.rb,
lib/kaseya/vsa/connection.rb,
lib/kaseya/vsa/exceptions.rb,
lib/kaseya/vsa/client/logs.rb,
lib/kaseya/vsa/http_errors.rb,
lib/kaseya/vsa/json_errors.rb,
lib/kaseya/vsa/client/agents.rb,
lib/kaseya/vsa/client/alarms.rb,
lib/kaseya/vsa/client/assets.rb,
lib/kaseya/vsa/configuration.rb,
lib/kaseya/vsa/client/organizations.rb,
lib/kaseya/vsa/client/machine_groups.rb
Defined Under Namespace
Modules: Configuration Classes: Api, Client, Connection, HttpErrors, JsonErrors, VSAError
Constant Summary
Constants included from Configuration
Configuration::DEFAULT_DEBUG, Configuration::DEFAULT_USER_AGENT, Configuration::VALID_OPTIONS_KEYS
Class Method Summary collapse
Methods included from Configuration
configure, extended, options, reset
Class Method Details
.authenticate(host, username, password) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/kaseya/vsa.rb', line 15 def self.authenticate(host, username, password) nonce = SecureRandom.random_number(2**16).to_s raw2 = Digest::SHA256.hexdigest(password) pass2 = Digest::SHA256.hexdigest(Digest::SHA256.hexdigest(password + username) + nonce) raw1 = Digest::SHA1.hexdigest(password) pass1 = Digest::SHA1.hexdigest(Digest::SHA1.hexdigest(password + username) + nonce) auth_string = "user=#{username},pass2=#{pass2},pass1=#{pass1},rpass2=#{raw2},rpass1=#{raw1},rand2=#{nonce}" auth = Base64.strict_encode64(auth_string) conn = Faraday.new(url: "https://#{host}/api/v1.0", ssl: { verify: !debug }) do |faraday| faraday.use JsonErrors faraday.use HttpErrors faraday.request :authorization, :Basic, auth faraday.request :url_encoded faraday.response :json faraday.adapter Faraday.default_adapter end response = conn.get("auth") connection = Connection.new(host, response.body.dig("Result", "ApiToken")) Client.new(connection) rescue Faraday::ConnectionFailed => e raise Kaseya::ConnectionFailed, e. end |