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 2011/11/20 20:00:58 UTC
svn commit: r1204210 - in /james/server/trunk:
imapserver/src/main/java/org/apache/james/imapserver/netty/
lmtpserver/src/main/java/org/apache/james/lmtpserver/netty/
pop3server/src/main/java/org/apache/james/pop3server/netty/
protocols-library/src/mai...
Author: norman
Date: Sun Nov 20 19:00:57 2011
New Revision: 1204210
URL: http://svn.apache.org/viewvc?rev=1204210&view=rev
Log:
Adjust for latest changes in protocols. See PROTOCOLS-51
Modified:
james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java
james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java
james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3Server.java
james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java
james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java
Modified: james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java
URL: http://svn.apache.org/viewvc/james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java?rev=1204210&r1=1204209&r2=1204210&view=diff
==============================================================================
--- james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java (original)
+++ james/server/trunk/imapserver/src/main/java/org/apache/james/imapserver/netty/IMAPServer.java Sun Nov 20 19:00:57 2011
@@ -31,6 +31,7 @@ import org.apache.james.imap.api.ImapCon
import org.apache.james.imap.api.process.ImapProcessor;
import org.apache.james.imap.decode.ImapDecoder;
import org.apache.james.imap.encode.ImapEncoder;
+import org.apache.james.protocols.api.Secure;
import org.apache.james.protocols.impl.ChannelGroupHandler;
import org.apache.james.protocols.impl.ConnectionLimitUpstreamHandler;
import org.apache.james.protocols.impl.ConnectionPerIpLimitUpstreamHandler;
@@ -140,10 +141,11 @@ public class IMAPServer extends Abstract
// don't strip the delimiter and use CRLF as delimiter
pipeline.addLast(FRAMER, new DelimiterBasedFrameDecoder(maxLineLength, false, Delimiters.lineDelimiter()));
- if (isSSLSocket()) {
+ Secure secure = getSecure();
+ if (secure != null && !secure.isStartTLS()) {
// We need to set clientMode to false.
// See https://issues.apache.org/jira/browse/JAMES-1025
- SSLEngine engine = getSSLContext().createSSLEngine();
+ SSLEngine engine = secure.getContext().createSSLEngine();
engine.setUseClientMode(false);
pipeline.addFirst(SSL_HANDLER, new SslHandler(engine));
@@ -174,8 +176,9 @@ public class IMAPServer extends Abstract
@Override
protected ChannelUpstreamHandler createCoreHandler() {
ImapChannelUpstreamHandler coreHandler;
- if (isStartTLSSupported()) {
- coreHandler = new ImapChannelUpstreamHandler(hello, processor, encoder, getLogger(), compress, plainAuthDisallowed, getSSLContext(), getEnabledCipherSuites());
+ Secure secure = getSecure();
+ if (secure!= null && secure.isStartTLS()) {
+ coreHandler = new ImapChannelUpstreamHandler(hello, processor, encoder, getLogger(), compress, plainAuthDisallowed, secure.getContext(), getEnabledCipherSuites());
} else {
coreHandler = new ImapChannelUpstreamHandler(hello, processor, encoder, getLogger(), compress, plainAuthDisallowed);
}
Modified: james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java
URL: http://svn.apache.org/viewvc/james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java?rev=1204210&r1=1204209&r2=1204210&view=diff
==============================================================================
--- james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java (original)
+++ james/server/trunk/lmtpserver/src/main/java/org/apache/james/lmtpserver/netty/LMTPServer.java Sun Nov 20 19:00:57 2011
@@ -19,8 +19,6 @@
package org.apache.james.lmtpserver.netty;
-import javax.net.ssl.SSLContext;
-
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.HierarchicalConfiguration;
import org.apache.james.lmtpserver.CoreCmdHandlerLoader;
@@ -143,17 +141,6 @@ public class LMTPServer extends Abstract
return new SMTPChannelUpstreamHandler(protocol, getLogger());
}
-
- @Override
- protected SSLContext getSSLContext() {
- return null;
- }
-
- @Override
- protected boolean isSSLSocket() {
- return false;
- }
-
@Override
protected Class<? extends HandlersPackage> getCoreHandlersPackage() {
return CoreCmdHandlerLoader.class;
Modified: james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3Server.java
URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3Server.java?rev=1204210&r1=1204209&r2=1204210&view=diff
==============================================================================
--- james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3Server.java (original)
+++ james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3Server.java Sun Nov 20 19:00:57 2011
@@ -21,7 +21,6 @@ package org.apache.james.pop3server.nett
import org.apache.james.pop3server.core.CoreCmdHandlerLoader;
import org.apache.james.pop3server.jmx.JMXHandlersLoader;
-import org.apache.james.protocols.api.Secure;
import org.apache.james.protocols.api.handler.HandlersPackage;
import org.apache.james.protocols.impl.BasicChannelUpstreamHandler;
import org.apache.james.protocols.lib.netty.AbstractProtocolAsyncServer;
@@ -66,26 +65,14 @@ public class POP3Server extends Abstract
public String getHelloName() {
return POP3Server.this.getHelloName();
}
-
- /**
- * @see org.apache.james.pop3server.POP3HandlerConfiguration#isStartTLSSupported()
- */
- public boolean isStartTLSSupported() {
- return POP3Server.this.isStartTLSSupported();
- }
}
@Override
protected void preInit() throws Exception {
super.preInit();
POP3Protocol protocol = new POP3Protocol(getProtocolHandlerChain(), theConfigData);
- Secure secure;
- if (isStartTLSSupported()) {
- secure = Secure.createStartTls(getSSLContext(), getEnabledCipherSuites());
- } else {
- secure = Secure.createTls(getSSLContext(), getEnabledCipherSuites());
- }
- coreHandler = new BasicChannelUpstreamHandler(protocol, getLogger(), secure);
+
+ coreHandler = new BasicChannelUpstreamHandler(protocol, getLogger(), getSecure());
}
Modified: james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java
URL: http://svn.apache.org/viewvc/james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java?rev=1204210&r1=1204209&r2=1204210&view=diff
==============================================================================
--- james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java (original)
+++ james/server/trunk/protocols-library/src/main/java/org/apache/james/protocols/lib/netty/AbstractConfigurableAsyncServer.java Sun Nov 20 19:00:57 2011
@@ -43,6 +43,7 @@ import org.apache.james.filesystem.api.F
import org.apache.james.lifecycle.api.Configurable;
import org.apache.james.lifecycle.api.LogEnabled;
+import org.apache.james.protocols.api.Secure;
import org.apache.james.protocols.impl.AbstractAsyncServer;
import org.apache.james.protocols.lib.jmx.ServerMBean;
import org.apache.james.util.concurrent.JMXEnabledThreadPoolExecutor;
@@ -101,7 +102,7 @@ public abstract class AbstractConfigurab
private String secret;
- private SSLContext context;
+ private Secure secure;
protected String jmxName;
@@ -385,22 +386,8 @@ public abstract class AbstractConfigurab
return helloName;
}
- /**
- * Return if startTLS is supported by this server
- *
- * @return startTlsSupported
- */
- protected boolean isStartTLSSupported() {
- return useStartTLS;
- }
-
- /**
- * Return if the socket is using SSL
- *
- * @return useSSL
- */
- protected boolean isSSLSocket() {
- return useSSL;
+ protected Secure getSecure() {
+ return secure;
}
/**
@@ -422,8 +409,13 @@ public abstract class AbstractConfigurab
kmf.init(ks, secret.toCharArray());
// Initialize the SSLContext to work with our key managers.
- context = SSLContext.getInstance("TLS");
+ SSLContext context = SSLContext.getInstance("TLS");
context.init(kmf.getKeyManagers(), null, null);
+ if (useStartTLS) {
+ secure = Secure.createStartTls(context, enabledCipherSuites);
+ } else {
+ secure = Secure.createTls(context, enabledCipherSuites);
+ }
} finally {
if (fis != null) {
fis.close();
@@ -440,14 +432,6 @@ public abstract class AbstractConfigurab
*/
protected abstract int getDefaultPort();
- /**
- * Return the SSLContext to use
- *
- * @return sslContext
- */
- protected SSLContext getSSLContext() {
- return context;
- }
/**
* Return the socket type. The Socket type can be secure or plain
@@ -455,7 +439,7 @@ public abstract class AbstractConfigurab
* @return the socket type ('plain' or 'secure')
*/
public String getSocketType() {
- if (isSSLSocket()) {
+ if (secure != null && !secure.isStartTLS()) {
return "secure";
}
return "plain";
@@ -465,7 +449,7 @@ public abstract class AbstractConfigurab
* @see org.apache.james.protocols.lib.jmx.ServerMBean#getStartTLSSupported()
*/
public boolean getStartTLSSupported() {
- return isStartTLSSupported();
+ return secure != null && secure.isStartTLS();
}
/**
@@ -597,13 +581,16 @@ public abstract class AbstractConfigurab
return new AbstractExecutorAwareChannelPipelineFactory(getTimeout(), connectionLimit, connPerIP, group, enabledCipherSuites, getExecutionHandler()) {
@Override
protected SSLContext getSSLContext() {
- return AbstractConfigurableAsyncServer.this.getSSLContext();
-
+ if (secure == null) {
+ return null;
+ } else {
+ return secure.getContext();
+ }
}
@Override
protected boolean isSSLSocket() {
- return AbstractConfigurableAsyncServer.this.isSSLSocket();
+ return secure != null && !secure.isStartTLS();
}
Modified: james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java?rev=1204210&r1=1204209&r2=1204210&view=diff
==============================================================================
--- james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java (original)
+++ james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPChannelUpstreamHandler.java Sun Nov 20 19:00:57 2011
@@ -27,6 +27,7 @@ import org.apache.james.smtpserver.SMTPC
import org.jboss.netty.channel.ChannelHandler.Sharable;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ChannelUpstreamHandler;
+import org.jboss.netty.channel.ExceptionEvent;
import org.slf4j.Logger;
/**
@@ -61,4 +62,10 @@ public class SMTPChannelUpstreamHandler
super.cleanup(ctx);
}
+ @Override
+ public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {
+ e.getCause().printStackTrace();
+ super.exceptionCaught(ctx, e);
+ }
+
}
Modified: james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java
URL: http://svn.apache.org/viewvc/james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java?rev=1204210&r1=1204209&r2=1204210&view=diff
==============================================================================
--- james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java (original)
+++ james/server/trunk/smtpserver/src/main/java/org/apache/james/smtpserver/netty/SMTPServer.java Sun Nov 20 19:00:57 2011
@@ -28,7 +28,6 @@ import org.apache.james.dnsservice.api.D
import org.apache.james.dnsservice.library.netmatcher.NetMatcher;
import org.apache.james.protocols.api.ProtocolSession;
import org.apache.james.protocols.api.ProtocolTransport;
-import org.apache.james.protocols.api.Secure;
import org.apache.james.protocols.api.handler.HandlersPackage;
import org.apache.james.protocols.lib.netty.AbstractProtocolAsyncServer;
import org.apache.james.protocols.smtp.SMTPConfiguration;
@@ -121,13 +120,7 @@ public class SMTPServer extends Abstract
}
};
- Secure secure;
- if (isStartTLSSupported()) {
- secure = Secure.createStartTls(getSSLContext(), getEnabledCipherSuites());
- } else {
- secure = Secure.createTls(getSSLContext(), getEnabledCipherSuites());
- }
- coreHandler = new SMTPChannelUpstreamHandler(transport, getLogger(), secure);
+ coreHandler = new SMTPChannelUpstreamHandler(transport, getLogger(), getSecure());
}
@@ -284,13 +277,6 @@ public class SMTPServer extends Abstract
}
/**
- * @see org.apache.james.protocols.smtp.SMTPConfiguration#isStartTLSSupported()
- */
- public boolean isStartTLSSupported() {
- return SMTPServer.this.isStartTLSSupported();
- }
-
- /**
* Return true if the username and mail from must match for a authorized
* user
*
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org