Author: norman Date: Wed Jan 11 15:35:28 2012 New Revision: 1230094 URL: http://svn.apache.org/viewvc?rev=1230094&view=rev Log: Adjust for latest protocols changes
Added: james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/PassCmdHandler.java Removed: james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/JamesPassCmdHandler.java james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/WelcomeMessageHandler.java james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/mailbox/JamesMailboxFactory.java Modified: james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/CoreCmdHandlerLoader.java james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/netty/POP3Server.java james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/POP3ServerTest.java Modified: james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/CoreCmdHandlerLoader.java URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/CoreCmdHandlerLoader.java?rev=1230094&r1=1230093&r2=1230094&view=diff ============================================================================== --- james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/CoreCmdHandlerLoader.java (original) +++ james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/CoreCmdHandlerLoader.java Wed Jan 11 15:35:28 2012 @@ -37,12 +37,13 @@ import org.apache.james.protocols.pop3.c import org.apache.james.protocols.pop3.core.UidlCmdHandler; import org.apache.james.protocols.pop3.core.UnknownCmdHandler; import org.apache.james.protocols.pop3.core.UserCmdHandler; +import org.apache.james.protocols.pop3.core.WelcomeMessageHandler; public class CoreCmdHandlerLoader implements HandlersPackage { private final static String CAPACMDHANDLER = CapaCmdHandler.class.getName(); private final static String USERCMDHANDLER = UserCmdHandler.class.getName(); - private final static String PASSCMDHANDLER = JamesPassCmdHandler.class.getName(); + private final static String PASSCMDHANDLER = PassCmdHandler.class.getName(); private final static String LISTCMDHANDLER = ListCmdHandler.class.getName(); private final static String UIDLCMDHANDLER = UidlCmdHandler.class.getName(); private final static String RSETCMDHANDLER = RsetCmdHandler.class.getName(); Added: james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/PassCmdHandler.java URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/PassCmdHandler.java?rev=1230094&view=auto ============================================================================== --- james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/PassCmdHandler.java (added) +++ james/server/trunk/pop3server/src/main/java/org/apache/james/pop3server/core/PassCmdHandler.java Wed Jan 11 15:35:28 2012 @@ -0,0 +1,90 @@ +/**************************************************************** + * 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.pop3server.core; + +import java.io.IOException; + +import javax.annotation.Resource; + +import org.apache.james.mailbox.BadCredentialsException; +import org.apache.james.mailbox.MailboxException; +import org.apache.james.mailbox.MailboxManager; +import org.apache.james.mailbox.MailboxPath; +import org.apache.james.mailbox.MailboxSession; +import org.apache.james.mailbox.MessageManager; +import org.apache.james.pop3server.mailbox.MailboxAdapter; +import org.apache.james.protocols.api.Request; +import org.apache.james.protocols.api.Response; +import org.apache.james.protocols.lib.POP3BeforeSMTPHelper; +import org.apache.james.protocols.lib.Slf4jLoggerAdapter; +import org.apache.james.protocols.pop3.POP3Response; +import org.apache.james.protocols.pop3.POP3Session; +import org.apache.james.protocols.pop3.core.AbstractPassCmdHandler; +import org.apache.james.protocols.pop3.mailbox.Mailbox; + +/** + * {@link PassCmdHandler} which also handles POP3 Before SMTP + * + */ +public class PassCmdHandler extends AbstractPassCmdHandler { + + private MailboxManager manager; + + + @Resource(name = "mailboxmanager") + public void setMailboxManager(MailboxManager manager) { + this.manager = manager; + } + + public Response onCommand(POP3Session session, Request request) { + Response response = super.onCommand(session, request); + if (POP3Response.OK_RESPONSE.equals(response.getRetCode())) { + POP3BeforeSMTPHelper.addIPAddress(session.getRemoteAddress().getAddress().getHostAddress()); + } + return response; + } + + + @Override + protected Mailbox auth(POP3Session session, String password) throws Exception { + MailboxSession mSession = null; + try { + mSession = manager.login(session.getUser(), password, new Slf4jLoggerAdapter(session.getLogger())); + manager.startProcessingRequest(mSession); + MailboxPath inbox = MailboxPath.inbox(mSession); + + // check if the mailbox exists, if not create it + if (!manager.mailboxExists(inbox, mSession)) { + manager.createMailbox(inbox, mSession); + } + MessageManager mailbox = manager.getMailbox(MailboxPath.inbox(mSession), mSession); + return new MailboxAdapter(manager, mailbox, mSession); + } catch (BadCredentialsException e) { + return null; + } catch (MailboxException e) { + throw new IOException("Unable to access mailbox for user " + session.getUser(), e); + } finally { + if (mSession != null) { + manager.endProcessingRequest(mSession); + } + } + + } + +} 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=1230094&r1=1230093&r2=1230094&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 Wed Jan 11 15:35:28 2012 @@ -21,11 +21,11 @@ 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.ProtocolConfiguration; import org.apache.james.protocols.api.logger.ProtocolLoggerAdapter; import org.apache.james.protocols.lib.handler.HandlersPackage; import org.apache.james.protocols.lib.netty.AbstractProtocolAsyncServer; import org.apache.james.protocols.netty.BasicChannelUpstreamHandler; -import org.apache.james.protocols.pop3.POP3Configuration; import org.apache.james.protocols.pop3.POP3Protocol; import org.jboss.netty.channel.ChannelUpstreamHandler; @@ -36,7 +36,7 @@ public class POP3Server extends Abstract /** * The configuration data to be passed to the handler */ - private POP3Configuration theConfigData = new POP3HandlerConfigurationDataImpl(); + private ProtocolConfiguration theConfigData = new POP3Configuration(); private BasicChannelUpstreamHandler coreHandler; @Override @@ -54,7 +54,7 @@ public class POP3Server extends Abstract /** * A class to provide POP3 handler configuration to the handlers */ - private class POP3HandlerConfigurationDataImpl extends POP3Configuration { + private class POP3Configuration implements ProtocolConfiguration { /** * @see org.apache.james.pop3server.POP3HandlerConfiguration#getHelloName() @@ -62,6 +62,16 @@ public class POP3Server extends Abstract public String getHelloName() { return POP3Server.this.getHelloName(); } + + @Override + public String getGreeting() { + return null; + } + + @Override + public String getSoftwareName() { + return "JAMES POP3 Server "; + } } @Override Modified: james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/POP3ServerTest.java URL: http://svn.apache.org/viewvc/james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/POP3ServerTest.java?rev=1230094&r1=1230093&r2=1230094&view=diff ============================================================================== --- james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/POP3ServerTest.java (original) +++ james/server/trunk/pop3server/src/test/java/org/apache/james/pop3server/POP3ServerTest.java Wed Jan 11 15:35:28 2012 @@ -42,7 +42,6 @@ import org.apache.james.mailbox.MessageM import org.apache.james.mailbox.inmemory.InMemoryMailboxSessionMapperFactory; import org.apache.james.mailbox.store.Authenticator; import org.apache.james.mailbox.store.StoreMailboxManager; -import org.apache.james.pop3server.mailbox.JamesMailboxFactory; import org.apache.james.pop3server.netty.POP3Server; import org.apache.james.protocols.lib.POP3BeforeSMTPHelper; import org.apache.james.protocols.lib.PortUtil; @@ -125,11 +124,7 @@ public class POP3ServerTest extends Test } }); manager.init(); - - //chain.put("mailboxmanager", manager); - JamesMailboxFactory mailboxFactory = new JamesMailboxFactory(); - mailboxFactory.setMailboxManager(manager); - chain.put("mailboxfactory", mailboxFactory); + chain.put("mailboxmanager", manager); fSystem = new MockFileSystem(); chain.put("filesystem", fSystem); --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org