Changeset 170
- Timestamp:
- 11/19/07 19:02:27 (1 year ago)
- Files:
-
- trunk/jsmtpd/src/org/jsmtpd/core/common/acl/IACL.java (modified) (1 diff)
- trunk/jsmtpd/src/org/jsmtpd/core/receive/ProtocolHandler.java (modified) (1 diff)
- trunk/jsmtpd/src/org/jsmtpd/plugins/acls/LdapACL.java (modified) (3 diffs)
- trunk/jsmtpd/src/org/jsmtpd/plugins/acls/SimpleACL.java (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/jsmtpd/src/org/jsmtpd/core/common/acl/IACL.java
r3 r170 57 57 public boolean isValidRelay(String hostIP); 58 58 59 public boolean isLocalDomain (String domain); 60 59 61 } trunk/jsmtpd/src/org/jsmtpd/core/receive/ProtocolHandler.java
r136 r170 424 424 425 425 private boolean isAcceptable(EmailAddress addr) { 426 //user is authentified by external mecanism 427 if (relayed) { 428 log.debug("RCPT: " + addr + " is valid for relayed host :" + mail.getReceivedFrom()+" allowed by SMTP extension(s)"); 429 return true; 430 } 431 432 433 // Mail is sent from our local domain 434 if (acl.isValidRelay(mail.getReceivedFrom())) { 435 log.debug("RCPT: " + addr + " is valid for relayed host :" + mail.getReceivedFrom()); 436 return true; 437 } 438 //reject mails not from open relay and for localhost ? 439 if (addr.getHost().equals("localhost") || addr.getHost().equals("127.0.0.1")) { 440 log.debug("RCPT is not valid for " + mail.getReceivedFrom() + ", this is for localhost but sender is not to be relayed"); 441 return false; 442 } 443 444 // Mail is not send from local domain, so we only accept messages for our domain(s). 445 if (acl.isValidAddress(addr)) { 446 log.debug("RCPT " + addr + " is valid (local domain)"); 447 return true; 448 } 426 427 boolean isValidAddress = acl.isValidAddress(addr); 428 429 if (acl.isLocalDomain(addr.getHost())){ 430 if (isValidAddress){ 431 log.debug("RCPT: " + addr + " is valid: local domain & valid address"); 432 return true; 433 } else { 434 log.debug("RCPT: " + addr + " is not valid: local domain but not valid address"); 435 return false; 436 } 437 } else { 438 // Mail is sent from relayed hosts 439 if (acl.isValidRelay(mail.getReceivedFrom())) { 440 log.debug("RCPT: " + addr + " is valid for relayed host :" + mail.getReceivedFrom()); 441 return true; 442 } 443 // user is authentified by external mecanism 444 if (relayed) { 445 log.debug("RCPT: " + addr + " is valid for relayed host :" + mail.getReceivedFrom()+" allowed by SMTP extension(s)"); 446 return true; 447 } 448 if (addr.getHost().equals("localhost") || addr.getHost().equals("127.0.0.1")) { 449 log.debug("RCPT is not valid for " + mail.getReceivedFrom() + ", this is for localhost but sender is not to be relayed"); 450 return false; 451 } 452 } 453 449 454 log.debug("RCPT is not valid for " + mail.getReceivedFrom() + ", this is not from relayed host and not for local domain"); 450 455 return false; trunk/jsmtpd/src/org/jsmtpd/plugins/acls/LdapACL.java
r136 r170 24 24 import java.net.InetAddress; 25 25 import java.net.UnknownHostException; 26 import java.util.ArrayList; 26 27 import java.util.HashSet; 27 28 import java.util.Hashtable; 29 import java.util.List; 28 30 import java.util.Set; 29 31 … … 69 71 private Hashtable<String,String> environnement; 70 72 private static Log log = LogFactory.getLog(LdapACL.class); 73 74 private List<String> localDomains=new ArrayList<String>(); 71 75 72 76 public void initPlugin() throws PluginInitException { … … 273 277 } 274 278 279 public boolean isLocalDomain(String domain) { 280 return localDomains.contains(domain); 281 } 282 283 public void setLocalDomain (String domain) { 284 localDomains.add(domain); 285 } 275 286 276 287 } trunk/jsmtpd/src/org/jsmtpd/plugins/acls/SimpleACL.java
r136 r170 60 60 protected List<EmailAddress> wildcardUsers = new ArrayList<EmailAddress>(); 61 61 62 protected List<String> localDomains=new ArrayList<String>(); 63 62 64 /** 63 65 * @param hostIP the ip acessing to smtp service … … 202 204 } 203 205 206 public boolean isLocalDomain(String domain) { 207 return localDomains.contains(domain); 208 } 209 210 public void setLocalDomain (String domain) { 211 localDomains.add(domain); 212 } 204 213 }
