You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by no...@apache.org on 2006/08/12 16:43:45 UTC

svn commit: r431040 - in /james/server/trunk/src: java/org/apache/james/smtpserver/core/filter/fastfail/ValidRcptMX.java test/org/apache/james/smtpserver/ValidRcptMXTest.java

Author: norman
Date: Sat Aug 12 07:43:44 2006
New Revision: 431040

URL: http://svn.apache.org/viewvc?rev=431040&view=rev
Log:
Formattin

Modified:
    james/server/trunk/src/java/org/apache/james/smtpserver/core/filter/fastfail/ValidRcptMX.java
    james/server/trunk/src/test/org/apache/james/smtpserver/ValidRcptMXTest.java

Modified: james/server/trunk/src/java/org/apache/james/smtpserver/core/filter/fastfail/ValidRcptMX.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/smtpserver/core/filter/fastfail/ValidRcptMX.java?rev=431040&r1=431039&r2=431040&view=diff
==============================================================================
--- james/server/trunk/src/java/org/apache/james/smtpserver/core/filter/fastfail/ValidRcptMX.java (original)
+++ james/server/trunk/src/java/org/apache/james/smtpserver/core/filter/fastfail/ValidRcptMX.java Sat Aug 12 07:43:44 2006
@@ -39,12 +39,11 @@
 import org.apache.mailet.MailAddress;
 
 /**
- * Reject email with an MX which is 127.0.0.1. This class can be used to reject
- * email to bogus MX which is send from a authorized user or an authorized
+ * This class can be used to reject email with bogus MX which is send from a authorized user or an authorized
  * network.
  */
 public class ValidRcptMX extends AbstractLogEnabled implements CommandHandler,
-	Serviceable, Configurable {
+    Serviceable, Configurable {
 
     private DNSServer dnsServer = null;
 
@@ -54,107 +53,107 @@
 
     public void configure(Configuration arg0) throws ConfigurationException {
 
-	Configuration[] badMX = arg0.getChildren("invalidMXNetworks");
+        Configuration[] badMX = arg0.getChildren("invalidMXNetworks");
 
-	if (badMX.length != 0) {
+        if (badMX.length != 0) {
+ 
+            Collection bannedNetworks = new ArrayList();
 
-	    Collection bannedNetworks = new ArrayList();
+            for (int i = 0; i < badMX.length; i++) {
+                String network = badMX[i].getValue(null);
 
-	    for (int i = 0; i < badMX.length; i++) {
-		String network = badMX[i].getValue(null);
+                if (network != null) {
+                    bannedNetworks.add(network);
+                }
+            }
 
-		if (network != null) {
-		    bannedNetworks.add(network);
-		}
-	    }
+            setBannedNetworks(bannedNetworks, dnsServer);
 
-	    setBannedNetworks(bannedNetworks, dnsServer);
+            getLogger().info("Invalid MX Networks: " + bNetwork.toString());
 
-	    getLogger().info("Invalid MX Networks: " + bNetwork.toString());
-
-	} else {
-	    throw new ConfigurationException(
-		    "Please configure at least on invalid MX network");
-	}
+        } else {
+            throw new ConfigurationException(
+                "Please configure at least on invalid MX network");
+            }
     }
 
+    /**
+     * Set the banned networks
+     * 
+     * @param networks Collection of networks 
+     * @param dnsServer The DNSServer
+     */
     public void setBannedNetworks(Collection networks, DNSServer dnsServer) {
-	bNetwork = new NetMatcher(networks, dnsServer) {
-	    protected void log(String s) {
-		getLogger().debug(s);
-	    }
+        bNetwork = new NetMatcher(networks, dnsServer) {
+            protected void log(String s) {
+                getLogger().debug(s);
+            }
 
-	};
+        };
     }
 
     /**
-         * @see org.apache.avalon.framework.service.Serviceable#service(ServiceManager)
-         */
+     * @see org.apache.avalon.framework.service.Serviceable#service(ServiceManager)
+     */
     public void service(ServiceManager arg0) throws ServiceException {
-	setDNSServer((DNSServer) arg0.lookup(DNSServer.ROLE));
+        setDNSServer((DNSServer) arg0.lookup(DNSServer.ROLE));
     }
 
     /**
-         * @see org.apache.james.smtpserver.CommandHandler#getImplCommands()
-         */
+     * @see org.apache.james.smtpserver.CommandHandler#getImplCommands()
+     */
     public Collection getImplCommands() {
-	Collection c = new ArrayList();
-	c.add("RCPT");
-	return c;
+        Collection c = new ArrayList();
+        c.add("RCPT");
+        return c;
     }
 
     /**
-         * @see org.apache.james.smtpserver.CommandHandler#onCommand(SMTPSession)
-         */
+     * @see org.apache.james.smtpserver.CommandHandler#onCommand(SMTPSession)
+     */
     public void onCommand(SMTPSession session) {
-	doRCPT(session);
+        doRCPT(session);
     }
 
     /**
-         * Set the DNSServer
-         * 
-         * @param dnsServer
-         *                The dnsServer
-         */
+     * Set the DNSServer
+     * 
+     * @param dnsServer
+     *                The dnsServer
+     */
     public void setDNSServer(DNSServer dnsServer) {
-	this.dnsServer = dnsServer;
+        this.dnsServer = dnsServer;
     }
 
     private void doRCPT(SMTPSession session) {
-	MailAddress rcpt = (MailAddress) session.getState().get(
-		SMTPSession.CURRENT_RECIPIENT);
+        MailAddress rcpt = (MailAddress) session.getState().get(SMTPSession.CURRENT_RECIPIENT);
 
-	String domain = rcpt.getHost();
+        String domain = rcpt.getHost();
 
-	// Email should be deliver local
-	if (domain.equals(LOCALHOST))
-	    return;
-
-	Iterator mx = dnsServer.findMXRecords(domain).iterator();
-
-	if (mx.hasNext()) {
-	    while (mx.hasNext()) {
-		String mxRec = mx.next().toString();
-
-		try {
-		    String ip = dnsServer.getByName(mxRec).getHostAddress();
-
-		    // Check for invalid MX
-		    if (bNetwork.matchInetNetwork(ip)) {
-			String response = "Invalid MX " + ip + " for domain "
-				+ rcpt.getHost();
-			String responseString = "530"
-				+ DSNStatus.getStatus(DSNStatus.PERMANENT,
-					DSNStatus.SECURITY_AUTH) + " "
-				+ response;
-			getLogger().debug(response + ". Reject email");
-			session.writeResponse(responseString);
-			return;
-		    }
-		} catch (UnknownHostException e) {
-		    // Ignore this
-		}
-	    }
-	}
+        // Email should be deliver local
+        if (domain.equals(LOCALHOST)) return;
+ 
+        Iterator mx = dnsServer.findMXRecords(domain).iterator();
+
+        if (mx.hasNext()) {
+            while (mx.hasNext()) {
+                String mxRec = mx.next().toString();
+
+                try {
+                    String ip = dnsServer.getByName(mxRec).getHostAddress();
+
+                    // Check for invalid MX
+                    if (bNetwork.matchInetNetwork(ip)) {
+                        String response = "Invalid MX " + ip + " for domain " + rcpt.getHost();
+                        String responseString = "530" + DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.SECURITY_AUTH) + " " + response;
+                        getLogger().debug(response + ". Reject email");
+                        session.writeResponse(responseString);
+                        return;
+                    }
+                } catch (UnknownHostException e) {
+                    // Ignore this
+                }
+            }
+        }
     }
 }

Modified: james/server/trunk/src/test/org/apache/james/smtpserver/ValidRcptMXTest.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/smtpserver/ValidRcptMXTest.java?rev=431040&r1=431039&r2=431040&view=diff
==============================================================================
--- james/server/trunk/src/test/org/apache/james/smtpserver/ValidRcptMXTest.java (original)
+++ james/server/trunk/src/test/org/apache/james/smtpserver/ValidRcptMXTest.java Sat Aug 12 07:43:44 2006
@@ -47,87 +47,79 @@
     private final static String LOOPBACK = "127.0.0.1";
 
     protected void setUp() throws Exception {
-	response = null;
+        response = null;
 
-	super.setUp();
+        super.setUp();
     }
 
     private SMTPSession setupMockedSMTPSession(final MailAddress rcpt) {
-	SMTPSession session = new AbstractSMTPSession() {
-	    HashMap state = new HashMap();
+        SMTPSession session = new AbstractSMTPSession() {
+            HashMap state = new HashMap();
 
-	    public Map getState() {
-		state.put(SMTPSession.CURRENT_RECIPIENT, rcpt);
-		return state;
-	    }
-
-	    public void writeResponse(String resp) {
-		response = resp;
-	    }
+            public Map getState() {
+                state.put(SMTPSession.CURRENT_RECIPIENT, rcpt);
+                return state;
+            }
+
+            public void writeResponse(String resp) {
+                response = resp;
+            }
 
-	};
-	return session;
+        };
+        return session;
     }
 
     private DNSServer setupMockedDNSServer() {
-	DNSServer dns = new DNSServer() {
+        DNSServer dns = new DNSServer() {
 
-	    public Collection findMXRecords(String hostname) {
-		Collection mx = new ArrayList();
+            public Collection findMXRecords(String hostname) {
+                Collection mx = new ArrayList();
 
-		if (hostname.equals(INVALID_HOST)) {
-		    mx.add(INVALID_MX);
-		}
-		return mx;
-	    }
-
-	    public Collection findTXTRecords(String hostname) {
-		throw new UnsupportedOperationException(
-			"Unimplemented Stub Method");
-	    }
-
-	    public InetAddress[] getAllByName(String host)
-		    throws UnknownHostException {
-		throw new UnsupportedOperationException(
-			"Unimplemented Stub Method");
-	    }
-
-	    public InetAddress getByName(String host)
-		    throws UnknownHostException {
-		System.err.println("host: " + host);
-		if (host.equals(INVALID_MX) || host.equals(LOOPBACK)) {
-		    return InetAddress.getByName(LOOPBACK);
-		} else if (host.equals("255.255.255.255")) {
-		    return InetAddress.getByName("255.255.255.255");
-		}
-		throw new UnknownHostException("Unknown host");
-	    }
-
-	    public Iterator getSMTPHostAddresses(String domainName) {
-		throw new UnsupportedOperationException(
-			"Unimplemented Stub Method");
-	    }
+                if (hostname.equals(INVALID_HOST)) {
+                    mx.add(INVALID_MX);
+                }
+                return mx;
+            }
+
+            public Collection findTXTRecords(String hostname) {
+                throw new UnsupportedOperationException("Unimplemented Stub Method");
+            }
+
+            public InetAddress[] getAllByName(String host) throws UnknownHostException {
+                throw new UnsupportedOperationException("Unimplemented Stub Method");
+            }
+
+            public InetAddress getByName(String host) throws UnknownHostException {
+                if (host.equals(INVALID_MX) || host.equals(LOOPBACK)) {
+                    return InetAddress.getByName(LOOPBACK);
+                } else if (host.equals("255.255.255.255")) {
+                    return InetAddress.getByName("255.255.255.255");
+                }
+                throw new UnknownHostException("Unknown host");
+            }
+
+            public Iterator getSMTPHostAddresses(String domainName) {
+                throw new UnsupportedOperationException("Unimplemented Stub Method");
+            }
 
-	};
-
-	return dns;
+        };
 
+        return dns;
     }
 
     public void testRejectLoopbackMX() throws ParseException {
-	Collection bNetworks = new ArrayList();
-	bNetworks.add("127.0.0.1");
-	DNSServer dns = setupMockedDNSServer();
-	ValidRcptMX handler = new ValidRcptMX();
-
-	ContainerUtil.enableLogging(handler, new MockLogger());
-
-	handler.setDNSServer(dns);
-	handler.setBannedNetworks(bNetworks, dns);
-	handler.onCommand(setupMockedSMTPSession(new MailAddress("test@"
-		+ INVALID_HOST)));
+        Collection bNetworks = new ArrayList();
+        bNetworks.add("127.0.0.1");
+        
+        DNSServer dns = setupMockedDNSServer();
+        ValidRcptMX handler = new ValidRcptMX();
+
+        ContainerUtil.enableLogging(handler, new MockLogger());
+
+        handler.setDNSServer(dns);
+        handler.setBannedNetworks(bNetworks, dns);
+        handler.onCommand(setupMockedSMTPSession(new MailAddress("test@" + INVALID_HOST)));
 
-	assertNotNull("Reject", response);
+        assertNotNull("Reject", response);
     }
-
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org