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 2009/09/29 17:54:20 UTC

svn commit: r819999 - in /james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server: POP3Handler.java POP3HandlerChain.java POP3HandlerConfigurationData.java POP3Server.java POP3Session.java StlsCmdHandler.java

Author: norman
Date: Tue Sep 29 15:54:20 2009
New Revision: 819999

URL: http://svn.apache.org/viewvc?rev=819999&view=rev
Log:
Start to add STARTTLS support for POP3 (JAMES-924)

Added:
    james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/StlsCmdHandler.java
Modified:
    james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Handler.java
    james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3HandlerChain.java
    james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3HandlerConfigurationData.java
    james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Server.java
    james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Session.java

Modified: james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Handler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Handler.java?rev=819999&r1=819998&r2=819999&view=diff
==============================================================================
--- james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Handler.java (original)
+++ james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Handler.java Tue Sep 29 15:54:20 2009
@@ -475,4 +475,17 @@
     public Log getLogger() {
         return context.getLogger();
     }
+
+	public void secure() throws IOException {
+		context.secure();
+	}
+
+	public boolean isStartTLSSupported() {
+		return getConfigurationData().isStartTLSSupported();
+	}
+
+	public boolean isTLSStarted() {
+		return context.isSecure();
+	}
+	
 }

Modified: james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3HandlerChain.java
URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3HandlerChain.java?rev=819999&r1=819998&r2=819999&view=diff
==============================================================================
--- james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3HandlerChain.java (original)
+++ james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3HandlerChain.java Tue Sep 29 15:54:20 2009
@@ -184,6 +184,7 @@
         Properties cmds = new Properties();
         cmds.setProperty("USER",UserCmdHandler.class.getName());
         cmds.setProperty("PASS",PassCmdHandler.class.getName());
+        cmds.setProperty("STLS", StlsCmdHandler.class.getName());
         cmds.setProperty("LIST",ListCmdHandler.class.getName());
         cmds.setProperty("UIDL",UidlCmdHandler.class.getName());
         cmds.setProperty("RSET",RsetCmdHandler.class.getName());

Modified: james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3HandlerConfigurationData.java
URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3HandlerConfigurationData.java?rev=819999&r1=819998&r2=819999&view=diff
==============================================================================
--- james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3HandlerConfigurationData.java (original)
+++ james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3HandlerConfigurationData.java Tue Sep 29 15:54:20 2009
@@ -58,5 +58,7 @@
      * @return the local users repository
      */
     UsersRepository getUsersRepository();
+    
+    boolean isStartTLSSupported();
 
 }

Modified: james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Server.java
URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Server.java?rev=819999&r1=819998&r2=819999&view=diff
==============================================================================
--- james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Server.java (original)
+++ james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Server.java Tue Sep 29 15:54:20 2009
@@ -186,5 +186,12 @@
         public UsersRepository getUsersRepository() {
             return POP3Server.this.users;
         }
+
+        /**
+         * @see org.apache.james.pop3server.POP3HandlerConfigurationData#isStartTLSSupported()
+         */
+		public boolean isStartTLSSupported() {
+			return POP3Server.this.useStartTLS();
+		}
     }
 }

Modified: james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Session.java
URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Session.java?rev=819999&r1=819998&r2=819999&view=diff
==============================================================================
--- james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Session.java (original)
+++ james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/POP3Session.java Tue Sep 29 15:54:20 2009
@@ -198,5 +198,12 @@
      * @return context sensitive log, not null
      */
     Log getLogger();
+
+    
+    boolean isStartTLSSupported();
+    
+    boolean isTLSStarted();
+
+    void secure() throws IOException;
 }
 

Added: james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/StlsCmdHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/StlsCmdHandler.java?rev=819999&view=auto
==============================================================================
--- james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/StlsCmdHandler.java (added)
+++ james/server/trunk/pop3server-function/src/main/java/org/apache/james/pop3server/StlsCmdHandler.java Tue Sep 29 15:54:20 2009
@@ -0,0 +1,25 @@
+package org.apache.james.pop3server;
+
+import java.io.IOException;
+
+public class StlsCmdHandler implements CommandHandler{
+
+	/**
+	 * @throws  
+	 * 
+	 */
+	public void onCommand(POP3Session session)  {
+		if (session.isStartTLSSupported() && session.getHandlerState() == POP3Handler.TRANSACTION && session.isTLSStarted() == false) {
+			session.writeResponse(POP3Handler.OK_RESPONSE+ " Begin TLS negotiation");
+			try {
+				session.secure();
+			} catch (IOException e) {
+				session.getLogger().info("Error while trying to secure connection",e);
+				session.endSession();
+			}
+		} else {
+			session.writeResponse(POP3Handler.ERR_RESPONSE);
+		}
+	}
+
+}



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