Skip to content

Commit

Permalink
Make request attributes serializable
Browse files Browse the repository at this point in the history
  • Loading branch information
ata-no-one committed May 24, 2023
1 parent f9e9f80 commit f1fb17e
Show file tree
Hide file tree
Showing 7 changed files with 42 additions and 5 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Ignore for Rust
target/
Cargo.lock
launch.json

.DS_Store
node_modules
Expand Down
2 changes: 1 addition & 1 deletion java/examples/VaasExample/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ repositories {

dependencies {
implementation 'org.slf4j:slf4j-nop:2.0.7'
implementation 'de.gdata:vaas:4.1.0'
implementation 'de.gdata:vaas:4.2.0'
}

task fileScan(type: JavaExec) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import de.gdata.vaas.ClientCredentialsGrantAuthenticator;
import de.gdata.vaas.Vaas;
import de.gdata.vaas.VaasConfig;
import de.gdata.vaas.messages.VerdictRequestAttributes;

import java.net.URI;
import java.nio.file.Path;
Expand All @@ -16,13 +17,14 @@ public static void main(String[] args) throws Exception {
var authenticator = new ClientCredentialsGrantAuthenticator(clientId, clientSecret,
"https://account.gdata.de/realms/vaas-production/protocol/openid-connect/token");
var config = new VaasConfig(
new URI("https://account.gdata.de/realms/vaas-production/protocol/openid-connect/token"),
new URI("wss://gateway.production.vaas.gdatasecurity.de"));
var vaas = new Vaas(config, authenticator);
vaas.connect();

var file = Path.of(scanPath);
var verdict = vaas.forFile(file);
var verdictRequestAttributes = new VerdictRequestAttributes();
verdictRequestAttributes.setTenantId("fileTenant");
var verdict = vaas.forFile(file, verdictRequestAttributes);
vaas.disconnect();
System.out.printf("File %s was detected as %s", verdict.getSha256(), verdict.getVerdict());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import de.gdata.vaas.ClientCredentialsGrantAuthenticator;
import de.gdata.vaas.Vaas;
import de.gdata.vaas.VaasConfig;
import de.gdata.vaas.messages.VerdictRequestAttributes;

import java.net.URI;
import java.net.URL;
Expand All @@ -15,13 +16,16 @@ public static void main(String[] args) throws Exception {
var authenticator = new ClientCredentialsGrantAuthenticator(clientId, clientSecret,
"https://account.gdata.de/realms/vaas-production/protocol/openid-connect/token");
var config = new VaasConfig(
new URI("https://account.gdata.de/realms/vaas-production/protocol/openid-connect/token"),
new URI("wss://gateway.production.vaas.gdatasecurity.de"));
var vaas = new Vaas(config, authenticator);
vaas.connect();

var url = new URL("https://secure.eicar.org/eicar.com");
var verdict = vaas.forUrl(url);

var verdictRequestAttributes = new VerdictRequestAttributes();
verdictRequestAttributes.setTenantId("urlTenant");
var verdict = vaas.forUrl(url, verdictRequestAttributes);

vaas.disconnect();
System.out.printf("File %s was detected as %s", verdict.getSha256(), verdict.getVerdict());
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,27 @@
package de.gdata.vaas.messages;

import com.beust.jcommander.internal.Nullable;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.annotations.SerializedName;
import lombok.Getter;
import lombok.Setter;

public class VerdictRequestAttributes {
@Getter
@Setter
@Nullable
@SerializedName("tenantId")
String tenantId;

public VerdictRequestAttributes() {
}

public String toJson() {
return new GsonBuilder().serializeNulls().create().toJson(this);
}

public static MessageType fromJson(String json) {
return new Gson().fromJson(json, MessageType.class);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public class VerdictRequestForUrl extends MessageType {
String guid;
@Getter
@Setter
@SerializedName("verdict_request_attributes")
VerdictRequestAttributes verdictRequestAttributes;

public VerdictRequestForUrl(URL url, String sessionId) throws MalformedURLException {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import de.gdata.vaas.exceptions.VaasConnectionClosedException;
import de.gdata.vaas.exceptions.VaasInvalidStateException;
import de.gdata.vaas.messages.Verdict;
import de.gdata.vaas.messages.VerdictRequest;
import de.gdata.vaas.messages.VerdictRequestAttributes;
import io.github.cdimascio.dotenv.Dotenv;
import org.jetbrains.annotations.NotNull;
Expand All @@ -20,6 +21,7 @@
import java.util.concurrent.ExecutionException;
import java.util.concurrent.TimeoutException;

import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.testng.AssertJUnit.assertEquals;
Expand Down Expand Up @@ -338,6 +340,18 @@ public void fromUrlMultipleCleanUrls() throws Exception {
assertEquals(Verdict.CLEAN, verdict_3.getVerdict());
}

@Test
public void serializationTest() {
var sha256 = new Sha256("3A78F382E8E2968EC201B33178102E06DB72E4F2D1505E058A4613C1E977825C");
var verdictRequestAttributes = new VerdictRequestAttributes();
verdictRequestAttributes.setTenantId("Test");
var verdictRequest = new VerdictRequest(sha256, "myid", verdictRequestAttributes);
var json1 = verdictRequest.toJson();
var json2 = verdictRequestAttributes.toJson();
assertNotNull(json1, "");
assertNotNull(json2, "");
}

private @NotNull String getRandomString(int size) {
String AlphaNumericString = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvxyz0123456789";
StringBuilder sb = new StringBuilder(size);
Expand Down

0 comments on commit f1fb17e

Please sign in to comment.