diff options
-rw-r--r-- | README.md | 10 | ||||
-rw-r--r-- | src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Stanik.java | 24 |
2 files changed, 23 insertions, 11 deletions
@@ -5,6 +5,14 @@ The agent, fetcher, and interpreter take an optional `-Dhostname=<agent's external hostname` argument, which defaults to `localhost`. +### Query Signer + # start rmiregistry + ./scripts/registry + # generate keys + ./scripts/generate_keys.sh + # run Query Signer + ./gradlew runQuerySigner + ### API Agent # start rmiregistry @@ -12,6 +20,8 @@ argument, which defaults to `localhost`. # start agent to bind API ./gradlew runAgent +Relies on keys generated during query signer setup. + ### Client ./gradlew runClient diff --git a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Stanik.java b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Stanik.java index efc5605..382160e 100644 --- a/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Stanik.java +++ b/src/main/java/pl/edu/mimuw/cloudatlas/agent/modules/Stanik.java @@ -226,23 +226,25 @@ public class Stanik extends Module { for (Entry<Attribute, ValueQuery> entry : message.getQueries().entrySet()) { Attribute attribute = entry.getKey(); ValueQuery query = entry.getValue(); - try { - if (query.isInstalled()) { + if (query.getSignature() != null) { + try { + if (query.isInstalled()) { QuerySignerApiImplementation.validateInstallQuery( attribute.getName(), QueryUtils.constructQueryData(query), this.publicKey); - } else { - QuerySignerApiImplementation.validateUninstallQuery( - attribute.getName(), - QueryUtils.constructQueryData(query), - this.publicKey); + } else { + QuerySignerApiImplementation.validateUninstallQuery( + attribute.getName(), + QueryUtils.constructQueryData(query), + this.publicKey); + } + } catch (RemoteException | IllegalBlockSizeException | InvalidKeyException | BadPaddingException | NoSuchAlgorithmException | NoSuchPaddingException | QuerySigner.InvalidQueryException e) { + System.out.println("ERROR: Query " + attribute.getName() + " was not updated in Stanik with error message " + e.getMessage()); + e.printStackTrace(); + continue; } - } catch (RemoteException | IllegalBlockSizeException | InvalidKeyException | BadPaddingException | NoSuchAlgorithmException | NoSuchPaddingException | QuerySigner.InvalidQueryException e) { - System.out.println("ERROR: Query " + attribute.getName() + " was not updated in Stanik with error message " + e.getMessage()); - e.printStackTrace(); - continue; } ValueTime timestamp = new ValueTime(entry.getValue().getTimestamp()); ValueQuery currentTimestampedQuery = queries.get(attribute); |