Bläddra i källkod

add decisionmaking based on fqdn only

tags/2.0.1
Jonathan Cobb 4 år sedan
förälder
incheckning
e3d0573352
2 ändrade filer med 26 tillägg och 0 borttagningar
  1. +14
    -0
      src/main/java/bubble/abp/BlockList.java
  2. +12
    -0
      src/main/java/bubble/abp/BlockSpec.java

+ 14
- 0
src/main/java/bubble/abp/BlockList.java Visa fil

@@ -73,6 +73,20 @@ public class BlockList {
return decision;
}

public BlockDecision getFqdnDecision(String fqdn) {
for (BlockSpec allow : whitelist) {
if (allow.matchesFqdn(fqdn)) return BlockDecision.ALLOW;
}
final BlockDecision decision = new BlockDecision();
for (BlockSpec block : blacklist) {
if (block.matchesFqdn(fqdn)) {
if (!block.hasSelector()) return BlockDecision.BLOCK;
decision.add(block);
}
}
return decision;
}

@JsonIgnore public Set<BlockSpec> getBlacklistDomains() {
return blacklist.stream().filter(BlockSpec::hasNoSelector).collect(Collectors.toSet());
}


+ 12
- 0
src/main/java/bubble/abp/BlockSpec.java Visa fil

@@ -143,6 +143,18 @@ public class BlockSpec {
return false;
}

public boolean matchesFqdn(String fqdn) {
if (target.hasDomainRegex() && target.getDomainPattern().matcher(fqdn).find()) {
return checkDomainExclusionsAndType(fqdn, null);

} else if (target.hasRegex()) {
if (target.getRegexPattern().matcher(fqdn).find()) {
return checkDomainExclusionsAndType(fqdn, null);
};
}
return false;
}

public boolean checkDomainExclusionsAndType(String fqdn, String contentType) {
if (domainExclusions != null) {
for (String domain : domainExclusions) {


Laddar…
Avbryt
Spara