Author: norman
Date: Mon May 31 13:57:23 2010
New Revision: 949747
URL: http://svn.apache.org/viewvc?rev=949747&view=rev
Log:
Add method to get a count of pushed LineHandlers. Fix AuthCmdHandler to work on
AUTH LOGIN (JAMES-1011)
Modified:
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/BaseFakeSMTPSession.java
Modified:
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java
URL:
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java?rev=949747&r1=949746&r2=949747&view=diff
==============================================================================
---
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java
(original)
+++
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSession.java
Mon May 31 13:57:23 2010
@@ -133,6 +133,12 @@ public interface SMTPSession extends TLS
void popLineHandler();
/**
+ * Return the size of the pushed {...@link LineHandler}
+ * @return
+ */
+ int getPushedLineHandlerCount();
+
+ /**
* Sleep for the given ms
*
* @param ms the time to sleep in milliseconds
Modified:
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
URL:
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java?rev=949747&r1=949746&r2=949747&view=diff
==============================================================================
---
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
(original)
+++
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/core/esmtp/AuthCmdHandler.java
Mon May 31 13:57:23 2010
@@ -64,7 +64,6 @@ public class AuthCmdHandler
SMTPResponse res;
try {
res = handleCommand(session, new String(l,"US-ASCII"));
- session.popLineHandler();
session.writeResponse(res);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
@@ -81,6 +80,7 @@ public class AuthCmdHandler
// If the server receives such an answer, it MUST reject the AUTH
// command by sending a 501 reply."
if (line.equals("*\r\n")) {
+ session.popLineHandler();
return new SMTPResponse(SMTPRetCode.SYNTAX_ERROR_ARGUMENTS,
DSNStatus.getStatus(DSNStatus.PERMANENT, DSNStatus.SECURITY_AUTH) + "
Authentication aborted");
}
return onCommand(session, line);
@@ -239,7 +239,13 @@ public class AuthCmdHandler
// with in the if clause below
}
// Authenticate user
- return doAuthTest(session, user, pass, "PLAIN");
+ SMTPResponse response = doAuthTest(session, user, pass, "PLAIN");
+
+ // remove all pushed linehandlers
+ for (int i = 0; i < session.getPushedLineHandlerCount(); i++) {
+ session.popLineHandler();
+ }
+ return response;
}
/**
@@ -285,8 +291,15 @@ public class AuthCmdHandler
pass = null;
}
}
+
// Authenticate user
- return doAuthTest(session, user, pass, "LOGIN");
+ SMTPResponse response = doAuthTest(session, user, pass, "LOGIN");
+
+ // remove all pushed linehandlers
+ for (int i = 0; i < session.getPushedLineHandlerCount(); i++) {
+ session.popLineHandler();
+ }
+ return response;
}
Modified:
james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/BaseFakeSMTPSession.java
URL:
http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/BaseFakeSMTPSession.java?rev=949747&r1=949746&r2=949747&view=diff
==============================================================================
---
james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/BaseFakeSMTPSession.java
(original)
+++
james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/BaseFakeSMTPSession.java
Mon May 31 13:57:23 2010
@@ -187,20 +187,25 @@ public class BaseFakeSMTPSession impleme
return log;
}
- public boolean isStartTLSSupported() {
- return getConfigurationData().isStartTLSSupported();
- }
+ public boolean isStartTLSSupported() {
+ return getConfigurationData().isStartTLSSupported();
+ }
- public boolean isTLSStarted() {
+ public boolean isTLSStarted() {
throw new UnsupportedOperationException("Unimplemented Stub Method");
- }
+ }
- public void startTLS() throws IOException {
+ public void startTLS() throws IOException {
throw new UnsupportedOperationException("Unimplemented Stub Method");
- }
+ }
- public void writeStream(InputStream stream) {
- throw new UnsupportedOperationException("Unimplemented Stub Method");
- }
+ public void writeStream(InputStream stream) {
+ throw new UnsupportedOperationException("Unimplemented Stub Method");
+ }
+
+ @Override
+ public int getPushedLineHandlerCount() {
+ throw new UnsupportedOperationException("Unimplemented Stub Method");
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]