-
Notifications
You must be signed in to change notification settings - Fork 10
/
Copy pathexample_with_reconnect.rb
42 lines (34 loc) · 1.01 KB
/
example_with_reconnect.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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
41
42
require 'async'
require 'vaas/client_credentials_grant_authenticator'
require 'vaas/vaas_main'
CLIENT_ID = ENV.fetch('CLIENT_ID')
CLIENT_SECRET = ENV.fetch('CLIENT_SECRET')
VAAS_URL = ENV.fetch('VAAS_URL', "wss://gateway.production.vaas.gdatasecurity.de")
TOKEN_URL = ENV.fetch('TOKEN_URL', 'https://account.gdata.de/realms/vaas-production/protocol/openid-connect/token')
URL = ENV.fetch('URL')
def main
authenticator = VAAS::ClientCredentialsGrantAuthenticator.new(
CLIENT_ID,
CLIENT_SECRET,
TOKEN_URL
)
# create a vaas object and get a token to authenticate
vaas = VAAS::VaasMain.new(VAAS_URL)
token = authenticator.get_token
Async do
vaas.connect(token)
# reconnect if connection closed
begin
verdict = vaas.for_url(URL)
rescue VAAS::VaasConnectionClosedError
token = authenticator.get_token
vaas.connect(token)
retry
end
puts "Verdict #{verdict.wait.sha256} is detected as #{verdict.wait.verdict}"
vaas.close
end
end
if __FILE__ == $0
main
end