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 2007/01/02 09:34:48 UTC

svn commit: r491761 - in /james/server/sandbox/handlerapi-experiment: ./ src/java/org/apache/james/smtpserver/ src/java/org/apache/james/smtpserver/core/ src/test/org/apache/james/smtpserver/

Author: norman
Date: Tue Jan  2 00:34:47 2007
New Revision: 491761

URL: http://svn.apache.org/viewvc?view=rev&rev=491761
Log:
Move the abuse/postmaster tests to SMTPServerTest
Fix a bug which added the fastfail hooks before the core hooks. Now the fastfail hooks get added to the end of the hook List

Modified:
    james/server/sandbox/handlerapi-experiment/TODO
    james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPHandlerChain.java
    james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/AbstractHookableCmdHandler.java
    james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/UsersRepositoryAuthHook.java
    james/server/sandbox/handlerapi-experiment/src/test/org/apache/james/smtpserver/SMTPServerTest.java

Modified: james/server/sandbox/handlerapi-experiment/TODO
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi-experiment/TODO?view=diff&rev=491761&r1=491760&r2=491761
==============================================================================
--- james/server/sandbox/handlerapi-experiment/TODO (original)
+++ james/server/sandbox/handlerapi-experiment/TODO Tue Jan  2 00:34:47 2007
@@ -1,7 +1,6 @@
 - Enable From/Sender and Date checks on message received
 - Find a way to handle the old JunkHandlerScore stuff
 - Check DataCmdHandler for correct clean-up on every exceptions
-- Move abuse/postmaster tests from ResolvableEhloHeloHandlerTest to a generic SMTPServer compliance test
 - on Rcpt message reject, the original code was logging a lot of informations. Maybe we should change the Hook callers to do something similar (in RcptCmdHandler create a log string including context() call)
 - Check AuthRequiredToRelayRcptHook to see if it is correct to return different SMTP codes if Auth is announced (for relaying denied)
 - Remove CURRENT_RECIPIENT key from state usage: I think we don't use it anymore but in tests.

Modified: james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPHandlerChain.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPHandlerChain.java?view=diff&rev=491761&r1=491760&r2=491761
==============================================================================
--- james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPHandlerChain.java (original)
+++ james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/SMTPHandlerChain.java Tue Jan  2 00:34:47 2007
@@ -104,6 +104,11 @@
 
             // load the configured handlers
             if (children != null) {
+
+                // load the core handlers
+                loadClass(classLoader, CoreCmdHandlerLoader.class.getName(),
+                        addHandler(null, CoreCmdHandlerLoader.class.getName()));
+                
                 for (int i = 0; i < children.length; i++) {
                     String className = children[i].getAttribute("class");
                     if (className != null) {
@@ -118,9 +123,6 @@
                     }
                 }
 
-                // load the BaseCmdHandler and SendMailHandler
-                loadClass(classLoader, CoreCmdHandlerLoader.class.getName(),
-                        addHandler(null, CoreCmdHandlerLoader.class.getName()));
             }
         }
     }

Modified: james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/AbstractHookableCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/AbstractHookableCmdHandler.java?view=diff&rev=491761&r1=491760&r2=491761
==============================================================================
--- james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/AbstractHookableCmdHandler.java (original)
+++ james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/AbstractHookableCmdHandler.java Tue Jan  2 00:34:47 2007
@@ -82,10 +82,10 @@
         List hooks = getHooks();
 
         if (hooks != null) {
-            getLogger().debug("executing hooks");
             int count = hooks.size();
             for (int i = 0; i < count; i++) {
                 Object rawHook = hooks.get(i);
+                getLogger().debug("executing hook " + rawHook.getClass().getName());
                 SMTPResponse res = callHook(rawHook, session, parameters);
                 if (res != null) {
                     return res;

Modified: james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/UsersRepositoryAuthHook.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/UsersRepositoryAuthHook.java?view=diff&rev=491761&r1=491760&r2=491761
==============================================================================
--- james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/UsersRepositoryAuthHook.java (original)
+++ james/server/sandbox/handlerapi-experiment/src/java/org/apache/james/smtpserver/core/UsersRepositoryAuthHook.java Tue Jan  2 00:34:47 2007
@@ -34,4 +34,4 @@
         }
         return new HookResult(HookReturnCode.DECLINED);
     }
-}
\ No newline at end of file
+}

Modified: james/server/sandbox/handlerapi-experiment/src/test/org/apache/james/smtpserver/SMTPServerTest.java
URL: http://svn.apache.org/viewvc/james/server/sandbox/handlerapi-experiment/src/test/org/apache/james/smtpserver/SMTPServerTest.java?view=diff&rev=491761&r1=491760&r2=491761
==============================================================================
--- james/server/sandbox/handlerapi-experiment/src/test/org/apache/james/smtpserver/SMTPServerTest.java (original)
+++ james/server/sandbox/handlerapi-experiment/src/test/org/apache/james/smtpserver/SMTPServerTest.java Tue Jan  2 00:34:47 2007
@@ -406,6 +406,9 @@
         
         // this should give a 501 code cause the helo could not resolved
         assertEquals("expected error: helo could not resolved", 501, smtpProtocol1.getReplyCode());
+        
+        // check if not rejected on postmaster and abuse
+        testNotRejectOnPostmasterAbuse(smtpProtocol1);
             
         smtpProtocol1.sendCommand("helo", helo2);
         smtpProtocol1.setSender(mail);
@@ -459,6 +462,9 @@
             // this should give a 501 code cause the helo not equal reverse of ip
             assertEquals("expected error: helo not equals reverse of ip", 501,
                     smtpProtocol1.getReplyCode());
+            
+            // check if not rejected on postmaster and abuse
+            testNotRejectOnPostmasterAbuse(smtpProtocol1);
     
             smtpProtocol1.sendCommand("helo", helo2);
             smtpProtocol1.setSender(mail);
@@ -593,6 +599,9 @@
         smtpProtocol1.addRecipient(rcpt2);
         assertEquals("expected 452 error", 452, smtpProtocol1.getReplyCode());
         
+        // check if not rejected on postmaster and abuse
+        testNotRejectOnPostmasterAbuse(smtpProtocol1);
+        
         smtpProtocol1.sendShortMessageData("Subject: test\r\n\r\nTest body testMaxRcpt1\r\n");
         
         // After the data is send the rcpt count is set back to 0.. So a new mail with rcpt should be accepted
@@ -652,6 +661,9 @@
         
         // this should give a 501 code cause the ehlo could not resolved
         assertEquals("expected error: ehlo could not resolved", 501, smtpProtocol1.getReplyCode());
+        
+        // check if not rejected on postmaster and abuse
+        testNotRejectOnPostmasterAbuse(smtpProtocol1);
             
         smtpProtocol1.sendCommand("ehlo", ehlo2);
         smtpProtocol1.setSender(mail);
@@ -701,6 +713,9 @@
         
         // this should give a 501 code cause the ehlo could not resolved
         assertEquals("expected error: ehlo could not resolved", 501, smtpProtocol1.getReplyCode());
+        
+        // check if not rejected on postmaster and abuse
+        testNotRejectOnPostmasterAbuse(smtpProtocol1);
             
         smtpProtocol1.sendCommand("ehlo", ehlo2);
         smtpProtocol1.setSender(mail);
@@ -740,6 +755,9 @@
             // this should give a 501 code cause the ehlo not equals reverse of ip
             assertEquals("expected error: ehlo not equals reverse of ip", 501,
                     smtpProtocol1.getReplyCode());
+            
+            // check if not rejected on postmaster and abuse
+            testNotRejectOnPostmasterAbuse(smtpProtocol1);
     
             smtpProtocol1.sendCommand("ehlo", ehlo2);
             smtpProtocol1.setSender(mail);
@@ -1464,9 +1482,12 @@
 
         smtpProtocol.setSender(sender);
 
-        smtpProtocol.addRecipient("mail@sample.com");
+        smtpProtocol.addRecipient("mail@localhost");
         assertEquals("reject: "+smtpProtocol.getReplyString(), 554, smtpProtocol
                 .getReplyCode());
+        
+        // check if not rejected on postmaster and abuse
+        testNotRejectOnPostmasterAbuse(smtpProtocol);
 
         smtpProtocol.sendShortMessageData("Subject: test\r\n\r\nTest body testDNSRBLRejectWorks\r\n");
 
@@ -1657,5 +1678,22 @@
         in.close();
         out.close();
         client.close();
+    }
+    
+    
+    /**
+     * Testmethod which should get called in all fastfail tests after a reject
+     * 
+     * @param smtpProtocol
+     * @throws Exception
+     */
+    private void testNotRejectOnPostmasterAbuse(SMTPClient smtpProtocol) throws Exception { 
+        smtpProtocol.addRecipient("postmaster");
+        assertEquals("Not reject emails to postmaster"+ smtpProtocol.getReplyString(), 250, smtpProtocol
+                .getReplyCode());
+        
+        smtpProtocol.addRecipient("abuse");
+        assertEquals("Not reject emails to abuse"+ smtpProtocol.getReplyString(), 250, smtpProtocol
+                .getReplyCode());
     }
 }



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