parent
cf57cd2015
commit
a380bf126f
@ -1,4 +1,4 @@
|
||||
package io.zhile.research.ja.netfilter.transformers;
|
||||
package io.zhile.research.ja.netfilter.plugin;
|
||||
|
||||
public interface MyTransformer {
|
||||
String getHookClassName();
|
@ -0,0 +1,42 @@
|
||||
package io.zhile.research.ja.netfilter.plugins.dns;
|
||||
|
||||
import io.zhile.research.ja.netfilter.models.FilterRule;
|
||||
import io.zhile.research.ja.netfilter.plugin.MyTransformer;
|
||||
import io.zhile.research.ja.netfilter.plugin.PluginEntry;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class DNSFilterPlugin implements PluginEntry {
|
||||
private final List<MyTransformer> transformers = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
public void init(List<FilterRule> filterRules) {
|
||||
transformers.add(new InetAddressTransformer(filterRules));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "DNS";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getAuthor() {
|
||||
return "neo";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getVersion() {
|
||||
return "v1.0.0";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return "ja-netfilter core: dns plugin";
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MyTransformer> getTransformers() {
|
||||
return transformers;
|
||||
}
|
||||
}
|
@ -1,22 +1,26 @@
|
||||
package io.zhile.research.ja.netfilter.filters;
|
||||
package io.zhile.research.ja.netfilter.plugins.url;
|
||||
|
||||
import io.zhile.research.ja.netfilter.commons.DebugInfo;
|
||||
import io.zhile.research.ja.netfilter.models.FilterConfig;
|
||||
import io.zhile.research.ja.netfilter.models.FilterRule;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.net.SocketTimeoutException;
|
||||
import java.net.URL;
|
||||
import java.util.List;
|
||||
|
||||
public class URLFilter {
|
||||
private static final String SECTION_NAME = "URL";
|
||||
private static List<FilterRule> ruleList;
|
||||
|
||||
public static void setRules(List<FilterRule> rules) {
|
||||
ruleList = rules;
|
||||
}
|
||||
|
||||
public static URL testURL(URL url) throws IOException {
|
||||
if (null == url) {
|
||||
if (null == url || null == ruleList) {
|
||||
return null;
|
||||
}
|
||||
|
||||
for (FilterRule rule : FilterConfig.getBySection(SECTION_NAME)) {
|
||||
for (FilterRule rule : ruleList) {
|
||||
if (!rule.test(url.toString())) {
|
||||
continue;
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
package io.zhile.research.ja.netfilter.plugins.url;
|
||||
|
||||
import io.zhile.research.ja.netfilter.models.FilterRule;
|
||||
import io.zhile.research.ja.netfilter.plugin.MyTransformer;
|
||||
import io.zhile.research.ja.netfilter.plugin.PluginEntry;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class URLFilterPlugin implements PluginEntry {
|
||||
private final List<MyTransformer> transformers = new ArrayList<>();
|
||||
|
||||
@Override
|
||||
public void init(List<FilterRule> filterRules) {
|
||||
transformers.add(new HttpClientTransformer(filterRules));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "URL";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getAuthor() {
|
||||
return "neo";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getVersion() {
|
||||
return "v1.0.0";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getDescription() {
|
||||
return "ja-netfilter core: url plugin";
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<MyTransformer> getTransformers() {
|
||||
return transformers;
|
||||
}
|
||||
}
|
Loading…
Reference in new issue