oneaws 0.1.0 → 0.1.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2eafc4ba671ad4dc11df4fade663322d6b4ed6d7f7c89f8b2490c2c9eab63b08
4
- data.tar.gz: f1fec019a30a413da02a4d05cb7f4f25aeea959999f46027b2969209dc2319d3
3
+ metadata.gz: e224b3f6d58994ed4f8f52cfe00fd22a04980d9f5ff1ff959a04b4bc51672463
4
+ data.tar.gz: 65c32e08d72e7e3d740727d69bfa4b69b7bb4aafe2b9b7a8dd2b91f423ff5eb2
5
5
  SHA512:
6
- metadata.gz: f0cc8de11530ae39439165ddeb7efab54ab1bf0a14542e2724464e8073ae5f5bf75caf650b39a89f06663f0fe36a9d4cac0396a04309dd293aa745fb7800d3c3
7
- data.tar.gz: 833d79033134bf4bfe4728aca62b7b10c3eeeeb2fe7b17c7573f87bd7c4a8b6d9a9de468a51457a6c14bde1aedf9a6803e10ec26c64a877abc4063432a203a05
6
+ metadata.gz: 185a66fbe4c028298bd0bf41f2563e8ec0477af3c1bd17103c01815dadbcb25dbceb8f06e3c70ca45f129868a9bb0f55458984875958bbec266e50c37972b8a0
7
+ data.tar.gz: 47e3f4f1a5b89a9f01f4ba9929a467425205673149962c56f6758c6addafafacbb6488f0934b7f7229e4c1df6e4f0e763872d9058cc45d6d3ef90399f8e72d6f
data/lib/oneaws/client.rb CHANGED
@@ -4,6 +4,7 @@ require 'aws-sdk-core'
4
4
  module Oneaws
5
5
  class Client
6
6
  class SamlRequestError < StandardError; end
7
+ class MfaDeviceNotFoundError < StandardError; end;
7
8
 
8
9
  def initialize
9
10
  @onelogin = OneLogin::Api::Client.new({
@@ -27,18 +28,24 @@ module Oneaws
27
28
  if response.nil?
28
29
  raise SamlRequestError.new("#{@onelogin.error} #{@onelogin.error_description}")
29
30
  end
30
-
31
+
31
32
  mfa = response.mfa
32
33
 
33
34
  # sent push notification to OneLogin Protect
34
- response = @onelogin.get_saml_assertion_verifying(app_id, mfa.devices[0].id, mfa.state_token, nil, nil, false)
35
+ mfa_device = mfa.devices.select{|device| device.type == "OneLogin Protect"}&.first
36
+
37
+ if mfa_device.nil?
38
+ raise MfaDeviceNotFoundError.new("OneLogin Protect device not found.")
39
+ end
40
+
41
+ response = @onelogin.get_saml_assertion_verifying(app_id, mfa_device.id, mfa.state_token, nil, nil, false)
35
42
  if response.nil?
36
43
  raise SamlRequestError.new("#{@onelogin.error} #{@onelogin.error_description}")
37
44
  end
38
45
 
39
46
  while response.type != "success" do
40
47
  sleep 1
41
- response = @onelogin.get_saml_assertion_verifying(app_id, mfa.devices[0].id, mfa.state_token, nil, nil, true)
48
+ response = @onelogin.get_saml_assertion_verifying(app_id, mfa_device.id, mfa.state_token, nil, nil, true)
42
49
  if response.nil?
43
50
  raise SamlRequestError.new("#{@onelogin.error} #{@onelogin.error_description}")
44
51
  end
@@ -1,3 +1,3 @@
1
1
  module Oneaws
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: oneaws
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yuki Koya
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-04-28 00:00:00.000000000 Z
11
+ date: 2020-05-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor