vaas 3.0.0 → 3.1.0
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 +4 -4
- data/examples/authentication.rb +50 -0
- data/examples/example_with_reconnect.rb +5 -2
- data/examples/simple_example.rb +5 -2
- data/lib/vaas/client_credentials_grant_authenticator.rb +3 -1
- data/lib/vaas/resource_owner_password_grant_authenticator.rb +36 -0
- data/lib/vaas/version.rb +1 -1
- data/vaas.gemspec +1 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e23bd7f42275d3abaadea284ae353797be04d87481168e2c405d60e91b5f3651
|
4
|
+
data.tar.gz: 256a204cc03536ab392903e4301d05b8acc26599510ebf7982ce317ef6918cbb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d2101b2769f8016e5881e7e4fbdd364da661a9a0d39322d359e95af2288f227d21a2302a46a2339f063c44e8714165754f18bb75d25b454988481454a9a512f9
|
7
|
+
data.tar.gz: 153593621130ced28b394d6033e842192b112ba0169d37ffba1596473c231543689f466ed0cba3c50217f4ec9382d10996decd9a18d2c3d9ee968e9bb6bb6b78
|
@@ -0,0 +1,50 @@
|
|
1
|
+
require 'vaas/client_credentials_grant_authenticator'
|
2
|
+
require 'vaas/resource_owner_password_grant_authenticator'
|
3
|
+
require 'vaas/vaas_main'
|
4
|
+
require 'async'
|
5
|
+
|
6
|
+
|
7
|
+
def main
|
8
|
+
client_id = "vaas-customer"
|
9
|
+
client_secret = ENV.fetch("CLIENT_SECRET")
|
10
|
+
user_name = ENV.fetch("VAAS_USER_NAME")
|
11
|
+
password = ENV.fetch("VAAS_PASSWORD")
|
12
|
+
token_url = ENV.fetch("TOKEN_URL") || "https://account.gdata.de/realms/vaas-production/protocol/openid-connect/token"
|
13
|
+
vaas_url = ENV.fetch("VAAS_URL") || "wss://gateway.production.vaas.gdatasecurity.de"
|
14
|
+
test_url = "https://gdata.de"
|
15
|
+
|
16
|
+
#If you got a username and password from us, you can use the ResourceOwnerPasswordAuthenticator like this
|
17
|
+
authenticator = VAAS::ResourceOwnerPasswordGrantAuthenticator.new(
|
18
|
+
client_id,
|
19
|
+
user_name,
|
20
|
+
password,
|
21
|
+
token_url
|
22
|
+
)
|
23
|
+
# You may use self registration and create a new username and password for the
|
24
|
+
# ResourceOwnerPasswordAuthenticator by yourself like the example above on https:#vaas.gdata.de/login
|
25
|
+
|
26
|
+
# Else if you got a client id and client secret from us, you can use the ClientCredentialsGrantAuthenticator like this
|
27
|
+
# authenticator = VAAS::ClientCredentialsGrantAuthenticator.new(
|
28
|
+
# client_id,
|
29
|
+
# client_secret,
|
30
|
+
# token_url
|
31
|
+
# )
|
32
|
+
|
33
|
+
|
34
|
+
vaas = VAAS::VaasMain.new(vaas_url)
|
35
|
+
token = authenticator.get_token
|
36
|
+
|
37
|
+
Async do
|
38
|
+
vaas.connect(token)
|
39
|
+
|
40
|
+
verdict = vaas.for_url(test_url)
|
41
|
+
puts "Verdict #{verdict.wait.sha256} is detected as #{verdict.wait.verdict}"
|
42
|
+
|
43
|
+
vaas.close
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
|
48
|
+
if __FILE__ == $0
|
49
|
+
main
|
50
|
+
end
|
@@ -4,17 +4,20 @@ require 'vaas/vaas_main'
|
|
4
4
|
|
5
5
|
CLIENT_ID = ENV.fetch('CLIENT_ID')
|
6
6
|
CLIENT_SECRET = ENV.fetch('CLIENT_SECRET')
|
7
|
+
VAAS_URL = ENV.fetch('VAAS_URL', "wss://gateway.production.vaas.gdatasecurity.de")
|
8
|
+
TOKEN_URL = ENV.fetch('TOKEN_URL', 'https://account.gdata.de/realms/vaas-production/protocol/openid-connect/token')
|
9
|
+
|
7
10
|
URL = ENV.fetch('URL')
|
8
11
|
|
9
12
|
def main
|
10
13
|
authenticator = VAAS::ClientCredentialsGrantAuthenticator.new(
|
11
14
|
CLIENT_ID,
|
12
15
|
CLIENT_SECRET,
|
13
|
-
|
16
|
+
TOKEN_URL
|
14
17
|
)
|
15
18
|
|
16
19
|
# create a vaas object and get a token to authenticate
|
17
|
-
vaas = VAAS::VaasMain.new
|
20
|
+
vaas = VAAS::VaasMain.new(VAAS_URL)
|
18
21
|
token = authenticator.get_token
|
19
22
|
|
20
23
|
Async do
|
data/examples/simple_example.rb
CHANGED
@@ -4,17 +4,20 @@ require 'vaas/vaas_main'
|
|
4
4
|
|
5
5
|
CLIENT_ID = ENV.fetch('CLIENT_ID')
|
6
6
|
CLIENT_SECRET = ENV.fetch('CLIENT_SECRET')
|
7
|
+
VAAS_URL = ENV.fetch('VAAS_URL', "wss://gateway.production.vaas.gdatasecurity.de")
|
8
|
+
TOKEN_URL = ENV.fetch('TOKEN_URL', 'https://account.gdata.de/realms/vaas-production/protocol/openid-connect/token')
|
9
|
+
|
7
10
|
URL = ENV.fetch('URL')
|
8
11
|
|
9
12
|
def main
|
10
13
|
authenticator = VAAS::ClientCredentialsGrantAuthenticator.new(
|
11
14
|
CLIENT_ID,
|
12
15
|
CLIENT_SECRET,
|
13
|
-
|
16
|
+
TOKEN_URL
|
14
17
|
)
|
15
18
|
|
16
19
|
# create a vaas object and get a token to authenticate
|
17
|
-
vaas = VAAS::VaasMain.new
|
20
|
+
vaas = VAAS::VaasMain.new(VAAS_URL)
|
18
21
|
token = authenticator.get_token
|
19
22
|
|
20
23
|
Async do
|
@@ -7,7 +7,7 @@ module VAAS
|
|
7
7
|
|
8
8
|
attr_accessor :client_id, :client_secret, :token_endpoint, :token
|
9
9
|
|
10
|
-
def initialize(client_id, client_secret, token_endpoint)
|
10
|
+
def initialize(client_id, client_secret, token_endpoint = 'https://account.gdata.de/realms/vaas-production/protocol/openid-connect/token')
|
11
11
|
@client_id = client_id
|
12
12
|
@client_secret = client_secret
|
13
13
|
@token_endpoint = token_endpoint
|
@@ -27,6 +27,8 @@ module VAAS
|
|
27
27
|
ensure
|
28
28
|
client&.close
|
29
29
|
end
|
30
|
+
|
31
|
+
raise VaasAuthenticationError if token.nil?
|
30
32
|
token
|
31
33
|
end
|
32
34
|
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'async'
|
3
|
+
require 'async/http/internet'
|
4
|
+
|
5
|
+
module VAAS
|
6
|
+
class ResourceOwnerPasswordGrantAuthenticator
|
7
|
+
|
8
|
+
attr_accessor :client_id, :token_endpoint, :token, :username, :password
|
9
|
+
|
10
|
+
def initialize(client_id, username, password, token_endpoint = 'https://account.gdata.de/realms/vaas-production/protocol/openid-connect/token')
|
11
|
+
@client_id = client_id
|
12
|
+
@username = username
|
13
|
+
@password = password
|
14
|
+
@token_endpoint = token_endpoint
|
15
|
+
end
|
16
|
+
|
17
|
+
def get_token
|
18
|
+
Async do
|
19
|
+
client = Async::HTTP::Internet.new
|
20
|
+
|
21
|
+
header = [['content-type', 'application/x-www-form-urlencoded']]
|
22
|
+
body = ["grant_type=password&client_id=#{client_id}&username=#{username}&password=#{password}"]
|
23
|
+
|
24
|
+
response = client.post(token_endpoint, header, body)
|
25
|
+
self.token = JSON.parse(response.read)['access_token']
|
26
|
+
rescue => e
|
27
|
+
raise VaasAuthenticationError, e
|
28
|
+
ensure
|
29
|
+
client&.close
|
30
|
+
end
|
31
|
+
|
32
|
+
raise VaasAuthenticationError if token.nil?
|
33
|
+
token
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
data/lib/vaas/version.rb
CHANGED
data/vaas.gemspec
CHANGED
@@ -13,6 +13,7 @@ Gem::Specification.new do |s|
|
|
13
13
|
s.license = "MIT"
|
14
14
|
s.require_paths = ["lib"]
|
15
15
|
s.metadata = { "documentation_uri" => "https://github.com/GDATASoftwareAG/vaas/blob/main/ruby/README.md" }
|
16
|
+
s.required_ruby_version = '>= 3.1.1'
|
16
17
|
|
17
18
|
s.add_dependency 'async', '~> 2.3.1'
|
18
19
|
s.add_dependency 'async-http', '~> 0.59.4'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vaas
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Allie Weitenkamp
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-10-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: async
|
@@ -91,10 +91,12 @@ files:
|
|
91
91
|
- ".vscode/launch.json"
|
92
92
|
- Gemfile
|
93
93
|
- README.md
|
94
|
+
- examples/authentication.rb
|
94
95
|
- examples/example_with_reconnect.rb
|
95
96
|
- examples/simple_example.rb
|
96
97
|
- lib/vaas.rb
|
97
98
|
- lib/vaas/client_credentials_grant_authenticator.rb
|
99
|
+
- lib/vaas/resource_owner_password_grant_authenticator.rb
|
98
100
|
- lib/vaas/vaas_errors.rb
|
99
101
|
- lib/vaas/vaas_main.rb
|
100
102
|
- lib/vaas/vaas_verdict.rb
|
@@ -113,7 +115,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
113
115
|
requirements:
|
114
116
|
- - ">="
|
115
117
|
- !ruby/object:Gem::Version
|
116
|
-
version:
|
118
|
+
version: 3.1.1
|
117
119
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
118
120
|
requirements:
|
119
121
|
- - ">="
|