Browse Source

introduce the notion of primary and non-primary decisions

tags/2.0.1
Jonathan Cobb 5 years ago
parent
commit
5f96e9be2a
1 changed files with 14 additions and 3 deletions
  1. +14
    -3
      src/main/java/bubble/abp/BlockList.java

+ 14
- 3
src/main/java/bubble/abp/BlockList.java View File

@@ -42,11 +42,19 @@ public class BlockList {
}
}

public BlockDecision getDecision(String fqdn, String path) {
return getDecision(fqdn, path, null);
public BlockDecision getDecision(String fqdn, String path) { return getDecision(fqdn, path, null, false); }

public BlockDecision getNonPrimaryDecision(String fqdn, String path) { return getDecision(fqdn, path, null, false); }
public BlockDecision getPrimaryDecision(String fqdn, String path) { return getDecision(fqdn, path, null, true ); }

public BlockDecision getNonPrimaryDecision(String fqdn, String path, String contentType) { return getDecision(fqdn, path, contentType, false); }
public BlockDecision getPrimaryDecision(String fqdn, String path, String contentType) { return getDecision(fqdn, path, contentType, true); }

public BlockDecision getDecision(String fqdn, String path, boolean primary) {
return getDecision(fqdn, path, null, primary);
}

public BlockDecision getDecision(String fqdn, String path, String contentType) {
public BlockDecision getDecision(String fqdn, String path, String contentType, boolean primary) {
for (BlockSpec allow : whitelist) {
if (allow.matches(fqdn, path, contentType)) return BlockDecision.ALLOW;
}
@@ -55,6 +63,9 @@ public class BlockList {
if (block.matches(fqdn, path, contentType)) {
if (!block.hasSelector()) return BlockDecision.BLOCK;
decision.add(block);

} else if (!primary && block.hasSelector()) {
decision.add(block);
}
}
return decision;


Loading…
Cancel
Save