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/19 20:28:42 UTC
svn commit: r1204047 - in /james/protocols/trunk:
api/src/main/java/org/apache/james/protocols/api/
impl/src/main/java/org/apache/james/protocols/impl/
lmtp/src/main/java/org/apache/james/protocols/lmtp/ pop3/
pop3/src/main/java/org/apache/james/protoc...
Author: norman
Date: Sat Nov 19 19:28:41 2011
New Revision: 1204047
URL: http://svn.apache.org/viewvc?rev=1204047&view=rev
Log:
Make configuration of STARTLS more consistent. See PROTOCOLS-51
Added:
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolImpl.java (with props)
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/Secure.java (with props)
Modified:
james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Protocol.java
james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyServer.java
james/protocols/trunk/lmtp/src/main/java/org/apache/james/protocols/lmtp/LMTPConfigurationImpl.java
james/protocols/trunk/pop3/.classpath
james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3HandlerConfiguration.java
james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Protocol.java
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPConfiguration.java
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPConfigurationImpl.java
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java
james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java
james/protocols/trunk/smtp/src/test/java/org/apache/james/protocols/smtp/BaseFakeSMTPSession.java
Modified: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Protocol.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Protocol.java?rev=1204047&r1=1204046&r2=1204047&view=diff
==============================================================================
--- james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Protocol.java (original)
+++ james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/Protocol.java Sat Nov 19 19:28:41 2011
@@ -40,12 +40,5 @@ public interface Protocol {
* @return session
*/
ProtocolSession newSession(ProtocolTransport transport);
-
- /**
- * Returns <code>true</code> if STARTTLS is supported
- *
- * @return starttlsSupported
- */
- boolean isStartTLSSupported();
}
Added: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolImpl.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolImpl.java?rev=1204047&view=auto
==============================================================================
--- james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolImpl.java (added)
+++ james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolImpl.java Sat Nov 19 19:28:41 2011
@@ -0,0 +1,25 @@
+package org.apache.james.protocols.api;
+
+import org.apache.james.protocols.api.handler.ProtocolHandlerChain;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ProtocolImpl implements Protocol{
+ protected final Logger logger = LoggerFactory.getLogger(getClass());
+ private ProtocolHandlerChain chain;
+
+ public ProtocolImpl(ProtocolHandlerChain chain) {
+ this.chain = chain;
+ }
+
+ @Override
+ public ProtocolHandlerChain getProtocolChain() {
+ return chain;
+ }
+
+ @Override
+ public ProtocolSession newSession(ProtocolTransport transport) {
+ return new ProtocolSessionImpl(logger, transport);
+ }
+
+}
Propchange: james/protocols/trunk/api/src/main/java/org/apache/james/protocols/api/ProtocolImpl.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyServer.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyServer.java?rev=1204047&r1=1204046&r2=1204047&view=diff
==============================================================================
--- james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyServer.java (original)
+++ james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/NettyServer.java Sat Nov 19 19:28:41 2011
@@ -35,25 +35,25 @@ import org.slf4j.LoggerFactory;
*/
public class NettyServer extends AbstractAsyncServer {
- protected Protocol protocol;
+ protected final Protocol protocol;
- protected Logger logger = LoggerFactory.getLogger(NettyServer.class);
-
- protected SSLContext context;
+ protected final Logger logger = LoggerFactory.getLogger(NettyServer.class);
private ExecutionHandler eHandler;
private ChannelUpstreamHandler coreHandler;
+ protected final Secure secure;
+
public NettyServer(Protocol protocol) {
this(protocol, null);
}
- public NettyServer(Protocol protocol, SSLContext context) {
+ public NettyServer(Protocol protocol, Secure secure) {
super();
this.protocol = protocol;
- this.context = context;
+ this.secure = secure;
}
protected ExecutionHandler createExecutionHandler(int size) {
@@ -75,7 +75,11 @@ public class NettyServer extends Abstrac
protected ChannelUpstreamHandler createCoreHandler() {
- return new BasicChannelUpstreamHandler(protocol, logger, context, null);
+ SSLContext sslContext = null;
+ if (secure != null) {
+ sslContext = secure.getContext();
+ }
+ return new BasicChannelUpstreamHandler(protocol, logger, sslContext, null);
}
@Override
@@ -96,12 +100,16 @@ public class NettyServer extends Abstrac
@Override
protected boolean isSSLSocket() {
- return context != null && !protocol.isStartTLSSupported();
+ return getSSLContext() != null && secure != null && !secure.isStartTLS();
}
@Override
protected SSLContext getSSLContext() {
- return context;
+ if (secure != null) {
+ return secure.getContext();
+ } else {
+ return null;
+ }
}
};
Added: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/Secure.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/Secure.java?rev=1204047&view=auto
==============================================================================
--- james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/Secure.java (added)
+++ james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/Secure.java Sat Nov 19 19:28:41 2011
@@ -0,0 +1,49 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+
+package org.apache.james.protocols.impl;
+
+import javax.net.ssl.SSLContext;
+
+public final class Secure {
+
+ private final SSLContext context;
+ private final boolean starttls;
+
+ private Secure(SSLContext context, boolean starttls) {
+ this.context = context;
+ this.starttls = starttls;
+ }
+
+ public static Secure createTls(SSLContext context) {
+ return new Secure(context, false);
+ }
+
+ public static Secure createStartTls(SSLContext context) {
+ return new Secure(context, true);
+ }
+
+ public SSLContext getContext() {
+ return context;
+ }
+
+ public boolean isStartTLS() {
+ return starttls;
+ }
+}
Propchange: james/protocols/trunk/impl/src/main/java/org/apache/james/protocols/impl/Secure.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: james/protocols/trunk/lmtp/src/main/java/org/apache/james/protocols/lmtp/LMTPConfigurationImpl.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/lmtp/src/main/java/org/apache/james/protocols/lmtp/LMTPConfigurationImpl.java?rev=1204047&r1=1204046&r2=1204047&view=diff
==============================================================================
--- james/protocols/trunk/lmtp/src/main/java/org/apache/james/protocols/lmtp/LMTPConfigurationImpl.java (original)
+++ james/protocols/trunk/lmtp/src/main/java/org/apache/james/protocols/lmtp/LMTPConfigurationImpl.java Sat Nov 19 19:28:41 2011
@@ -23,7 +23,6 @@ public class LMTPConfigurationImpl exten
private String helloName = "localhost";
private long maxMessageSize = 0;
private String greeting = "JAMES Protocols LMTP Server";
- private boolean startTLSsupported = false;
@Override
public String getHelloName() {
@@ -53,13 +52,4 @@ public class LMTPConfigurationImpl exten
public void setGreeting(String greeting) {
this.greeting = greeting;
}
-
- @Override
- public boolean isStartTLSSupported() {
- return startTLSsupported;
- }
-
- public void setStartTLSSupported(boolean startTLSsupported) {
- this.startTLSsupported = startTLSsupported;
- }
}
Modified: james/protocols/trunk/pop3/.classpath
URL: http://svn.apache.org/viewvc/james/protocols/trunk/pop3/.classpath?rev=1204047&r1=1204046&r2=1204047&view=diff
==============================================================================
--- james/protocols/trunk/pop3/.classpath (original)
+++ james/protocols/trunk/pop3/.classpath Sat Nov 19 19:28:41 2011
@@ -1,8 +1,8 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src/main/java"/>
- <classpathentry kind="src" path="src/test/java"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
- <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
- <classpathentry kind="output" path="target/classes"/>
-</classpath>
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" output="target/classes" path="src/main/java"/>
+ <classpathentry kind="src" output="target/test-classes" path="src/test/java"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"/>
+ <classpathentry kind="output" path="target/classes"/>
+</classpath>
Modified: james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3HandlerConfiguration.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3HandlerConfiguration.java?rev=1204047&r1=1204046&r2=1204047&view=diff
==============================================================================
--- james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3HandlerConfiguration.java (original)
+++ james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3HandlerConfiguration.java Sat Nov 19 19:28:41 2011
@@ -31,11 +31,4 @@ public interface POP3HandlerConfiguratio
*/
String getHelloName();
- /**
- * Return if starttls is supported by the POP3Server
- *
- * @return startTLSSupported
- */
- boolean isStartTLSSupported();
-
}
Modified: james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Protocol.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Protocol.java?rev=1204047&r1=1204046&r2=1204047&view=diff
==============================================================================
--- james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Protocol.java (original)
+++ james/protocols/trunk/pop3/src/main/java/org/apache/james/protocols/pop3/POP3Protocol.java Sat Nov 19 19:28:41 2011
@@ -19,26 +19,18 @@
package org.apache.james.protocols.pop3;
-import org.apache.james.protocols.api.Protocol;
+import org.apache.james.protocols.api.ProtocolImpl;
import org.apache.james.protocols.api.ProtocolSession;
import org.apache.james.protocols.api.ProtocolTransport;
import org.apache.james.protocols.api.handler.ProtocolHandlerChain;
-import org.slf4j.Logger;
-public class POP3Protocol implements Protocol{
+public class POP3Protocol extends ProtocolImpl{
- private ProtocolHandlerChain chain;
- private POP3HandlerConfiguration config;
- private Logger logger;
+ private final POP3HandlerConfiguration config;
- public POP3Protocol(ProtocolHandlerChain chain, POP3HandlerConfiguration config, Logger logger) {
- this.chain = chain;
+ public POP3Protocol(ProtocolHandlerChain chain, POP3HandlerConfiguration config) {
+ super(chain);
this.config = config;
- this.logger = logger;
- }
- @Override
- public ProtocolHandlerChain getProtocolChain() {
- return chain;
}
@@ -47,9 +39,4 @@ public class POP3Protocol implements Pro
return new POP3SessionImpl(logger, transport, config);
}
- @Override
- public boolean isStartTLSSupported() {
- return config.isStartTLSSupported();
- }
-
}
Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPConfiguration.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPConfiguration.java?rev=1204047&r1=1204046&r2=1204047&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPConfiguration.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPConfiguration.java Sat Nov 19 19:28:41 2011
@@ -82,12 +82,5 @@ public interface SMTPConfiguration {
* @return true or false
*/
boolean useAddressBracketsEnforcement();
-
- /**
- * Return <code>true</code> if STARTTLS is supported.
- *
- * @return starttls
- */
- boolean isStartTLSSupported();
}
Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPConfigurationImpl.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPConfigurationImpl.java?rev=1204047&r1=1204046&r2=1204047&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPConfigurationImpl.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPConfigurationImpl.java Sat Nov 19 19:28:41 2011
@@ -28,7 +28,6 @@ public class SMTPConfigurationImpl imple
private boolean bracketsEnforcement = true;
private String greeting = "JAMES SMTP Protocols";
private boolean enforceHeloEhlo = true;
- private boolean startTLSsupported = false;
public String getHelloName() {
return helloName;
@@ -71,14 +70,5 @@ public class SMTPConfigurationImpl imple
public void setUseAddressBracketsEnforcement(boolean bracketsEnforcement) {
this.bracketsEnforcement = bracketsEnforcement;
}
-
-
- @Override
- public boolean isStartTLSSupported() {
- return startTLSsupported;
- }
- public void setStartTLSSupported(boolean startTLSsupported) {
- this.startTLSsupported = startTLSsupported;
- }
}
Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java?rev=1204047&r1=1204046&r2=1204047&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPProtocol.java Sat Nov 19 19:28:41 2011
@@ -19,35 +19,20 @@
package org.apache.james.protocols.smtp;
-import org.apache.james.protocols.api.Protocol;
+import org.apache.james.protocols.api.ProtocolImpl;
import org.apache.james.protocols.api.ProtocolSession;
import org.apache.james.protocols.api.ProtocolTransport;
import org.apache.james.protocols.api.handler.ProtocolHandlerChain;
import org.apache.james.protocols.smtp.SMTPConfiguration;
import org.apache.james.protocols.smtp.SMTPSessionImpl;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+public class SMTPProtocol extends ProtocolImpl {
-public class SMTPProtocol implements Protocol {
-
- private ProtocolHandlerChain chain;
private SMTPConfiguration config;
- private Logger logger = LoggerFactory.getLogger(getClass());
-
public SMTPProtocol(ProtocolHandlerChain chain, SMTPConfiguration config) {
- this.chain = chain;
+ super(chain);
this.config = config;
}
-
- public ProtocolHandlerChain getProtocolChain() {
- return chain;
- }
-
-
- public boolean isStartTLSSupported() {
- return config.isStartTLSSupported();
- }
public ProtocolSession newSession(ProtocolTransport transport) {
return new SMTPSessionImpl(config, logger, transport);
Modified: james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java
URL: http://svn.apache.org/viewvc/james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java?rev=1204047&r1=1204046&r2=1204047&view=diff
==============================================================================
--- james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java (original)
+++ james/protocols/trunk/smtp/src/main/java/org/apache/james/protocols/smtp/SMTPSessionImpl.java Sat Nov 19 19:28:41 2011
@@ -161,11 +161,4 @@ public class SMTPSessionImpl extends Pro
public Response newFatalErrorResponse() {
return new SMTPResponse(SMTPRetCode.LOCAL_ERROR, "Unable to process request");
}
-
- @Override
- public boolean isStartTLSSupported() {
- return super.isStartTLSSupported() && theConfigData.isStartTLSSupported();
- }
-
-
}
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=1204047&r1=1204046&r2=1204047&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 Sat Nov 19 19:28:41 2011
@@ -187,7 +187,7 @@ public class BaseFakeSMTPSession impleme
}
public boolean isStartTLSSupported() {
- return getConfigurationData().isStartTLSSupported();
+ return false;
}
public boolean isTLSStarted() {
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org