1 21 package org.jsmtpd.plugins.inputIPFilters; 22 23 import java.net.InetAddress ; 24 import java.util.ArrayList ; 25 import java.util.Iterator ; 26 import java.util.List ; 27 28 import org.jsmtpd.core.common.PluginInitException; 29 import org.jsmtpd.core.common.PluginStore; 30 import org.jsmtpd.core.common.acl.IACL; 31 import org.jsmtpd.core.common.inputIPFilter.IFilterIP; 32 33 37 public class BlackList implements IFilterIP { 38 39 private List <String > blacklist = new ArrayList <String >(); 40 private IACL acl = null; 41 private boolean bypassLocal = false; 42 43 public boolean checkIP(InetAddress input) { 44 String check = input.getHostAddress(); 45 if (bypassLocal && acl.isValidRelay(check)) return true; 47 for (Iterator <String > iter = blacklist.iterator(); iter.hasNext();) { 48 String element = iter.next(); 49 if (check.equals(element)) 50 return false; 51 } 52 return true; 53 } 54 55 public String getPluginName() { 56 57 58 return "Simple IP blacklist for Jsmtpd"; 59 } 60 61 public void initPlugin() throws PluginInitException { 62 acl = PluginStore.getInstance().getAcl(); 63 if (acl == null) 64 throw new PluginInitException(); 65 } 66 67 public void shutdownPlugin() { 68 } 69 70 public void setBypassLocal(boolean b) { 71 bypassLocal = b; 72 } 73 74 public void setBlacklistedIP(String ip) { 75 blacklist.add(ip); 76 } 77 78 } | Popular Tags |