Skip to content

Commit

Permalink
Correcting whitelist with multiple whitelisted items #139
Browse files Browse the repository at this point in the history
  • Loading branch information
tomasbjerre committed Oct 20, 2019
1 parent 80ad640 commit e77e032
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,25 @@ static boolean doVerifyWhitelist(
final Map<String, List<String>> headers,
final String postContent,
final Whitelist whitelist) {
if (whitelist.getWhitelistItems().isEmpty()) {
return true;
}
final StringBuilder messages = new StringBuilder();
for (final WhitelistItem whitelistItem : whitelist.getWhitelistItems()) {
if (!whitelistVerify(remoteHost, whitelistItem, headers, postContent)) {
return false;
try {
if (whitelistVerify(remoteHost, whitelistItem, headers, postContent)) {
return true;
}
} catch (final WhitelistException e) {
messages.append(e.getMessage() + "\n");
}
}
return true;
final String messagesString = messages.toString();
if (messagesString.isEmpty()) {
return false;
} else {
throw new WhitelistException(messagesString);
}
}

static boolean whitelistVerify(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,4 +53,29 @@ public void testThatHostCanBeVerifiedAndInvalid() {

assertThat(doVerifyWhitelist(remoteHost, headers, postContent, whitelist)).isFalse();
}

@Test
public void testThatHostCanBeVerifiedAndInvalidAndValidByAnotherItem() {
final WhitelistItem whitelistItem1 = new WhitelistItem("whateverhost1");
whitelistItem1.setHmacEnabled(false);

final WhitelistItem whitelistItem2 = new WhitelistItem("whateverhost2");
whitelistItem2.setHmacEnabled(false);

final WhitelistItem whitelistItem3 = new WhitelistItem("whateverhost3");
whitelistItem3.setHmacEnabled(false);

final Map<String, List<String>> headers = new HashMap<String, List<String>>();
final String postContent = "";

final boolean enabled = true;
final Whitelist whitelist =
new Whitelist(enabled, Arrays.asList(whitelistItem1, whitelistItem2, whitelistItem3));

assertThat(doVerifyWhitelist("whateverhost0", headers, postContent, whitelist)).isFalse();
assertThat(doVerifyWhitelist("whateverhost1", headers, postContent, whitelist)).isTrue();
assertThat(doVerifyWhitelist("whateverhost2", headers, postContent, whitelist)).isTrue();
assertThat(doVerifyWhitelist("whateverhost3", headers, postContent, whitelist)).isTrue();
assertThat(doVerifyWhitelist("whateverhost4", headers, postContent, whitelist)).isFalse();
}
}

0 comments on commit e77e032

Please sign in to comment.