Method: InspecPlugins::Compliance::API.get_token_via_password

Defined in:
lib/plugins/inspec-compliance/lib/inspec-compliance/api.rb

.get_token_via_password(url, username, password, insecure) ⇒ Object

Use username and password to get an API access token



174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
# File 'lib/plugins/inspec-compliance/lib/inspec-compliance/api.rb', line 174

def self.get_token_via_password(url, username, password, insecure)
  uri = URI.parse("#{url}/login")
  req = Net::HTTP::Post.new(uri.path)
  req.body = { userid: username, password: password }.to_json
  access_token = nil
  response = InspecPlugins::Compliance::HTTP.send_request(uri, req, insecure)
  data = response.body
  if response.code == '200'
    access_token = data
    msg = 'Successfully fetched an API access token valid for 12 hours'
    success = true
  else
    success = false
    msg = "Failed to authenticate to #{url} \n\
    Response code: #{response.code}\n  Body: #{response.body}"
  end

  [success, msg, access_token]
end