oneaws 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
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