⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usercommand.java

📁 Java Mail Server JAVA编写的邮件服务器
💻 JAVA
字号:
/**************************************************************** * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.     * *                                                              * * Copyright 2008 Jun Li(SiChuan University, the School of      * * Software Enginerring). All rights reserved.                  * *                                                              * * Licensed to the JMS under one  or more contributor license   * * agreements.  See the LICENCE file  distributed with this     * * work for additional information regarding copyright          * * ownership.  The JMS licenses this file  you may not use this * * file except in compliance  with the License.                 * *                                                              * * 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.jpxx.mail.plugin.console.command;import java.util.Iterator;import java.util.List;import org.jpxx.mail.Exception.ArgumentException;import org.jpxx.mail.Service.CommandHandler;import org.jpxx.mail.Service.Session;import org.jpxx.mail.User.User;import org.jpxx.mail.User.UserHandler;import org.jpxx.mail.plugin.console.ConsoleStates;/** * * This command manages users. *  * Syntax: * USER [Command] [Name] [……] *   * @author Jun Li * @version $Revision: 0.0.3 $, $Date: 2008/10/25 $ * @since JMS 0.0.3 */public class UserCommand implements CommandHandler, ConsoleStates {    /**     * Manages users.     *      * @see org.jpxx.mail.Service.CommandHandler#onCommand(Session session)     * @param session The Session of Server and client     */    public void onCommand(Session session) {        int state = session.getLastAction();        if (state == AUTHENTICATION || state == TRANSACTION) {            session.setLastAction(TRANSACTION);            try {                String action = session.getCommandLine().getArgument(0).toUpperCase().trim();                if (action.equals("LIS")) {                    try {                        String domain = session.getCommandLine().getArgument(1).trim();                        UserHandler uh = new UserHandler();                        List list = uh.list(domain);                        StringBuffer buffer = new StringBuffer(64);                        if (list == null || list.size() == 0) {                            buffer.append(OK);                            buffer.append(" ");                            buffer.append("There is no user.");                            session.writeResponse(buffer.toString());                            session.writeResponse(".");                            return;                        } else {                            int size = list.size();                            buffer.append(OK);                            buffer.append(" ");                            buffer.append(                                    "There " + (size > 1 ? "are " : "is ") +                                    size + " user" + (size > 1 ? "s" : "") + ".");                            session.writeResponse(buffer.toString());                            for (Iterator i = list.iterator(); i.hasNext();) {                                session.writeResponse(i.next().toString());                            }                            session.writeResponse(".");                            return;                        }                    } catch (ArgumentException e) {                        StringBuffer buffer = new StringBuffer(64);                        buffer.append(ERR);                        buffer.append(" ");                        buffer.append("Usage: USER LIS <domain>");                        session.writeResponse(buffer.toString());                        return;                    }                } else if (action.equals("VIE")) {                    try {                        String user = session.getCommandLine().getArgument(1).trim();                        String domain = session.getCommandLine().getArgument(2).trim();                        UserHandler uh = new UserHandler();                        User u = uh.getUser(user, domain);                        StringBuffer buffer = new StringBuffer(64);                                                if (u==null) {                            buffer.append(ERR);                            buffer.append(" ");                            buffer.append(user +" was not found");                            session.writeResponse(buffer.toString());                        } else {                            buffer.append(OK);                            buffer.append(" ");                            buffer.append("---UserName Password Domain Size---");                            session.writeResponse(buffer.toString());                            session.writeResponse(u.getUserName());                            session.writeResponse(u.getPassword());                            session.writeResponse(u.getDomain());                            session.writeResponse(String.valueOf(u.getSize()));                            session.writeResponse(".");                        }                    } catch (ArgumentException e) {                        StringBuffer buffer = new StringBuffer(64);                        buffer.append(ERR);                        buffer.append(" ");                        buffer.append("Usage: USER VIE <userName> <domain>");                        session.writeResponse(buffer.toString());                    }                    return;                } else {                    String user = session.getCommandLine().getArgument(1).trim();                    if (action.equals("ADD") || action.equals("MOD")) {                        try {                            String pass = session.getCommandLine().getArgument(2).trim();                            String domain = session.getCommandLine().getArgument(3).trim();                            long size = 0;                            try {                                size = Long.parseLong(                                        session.getCommandLine().getArgument(4).trim());                            } catch (ArgumentException ae) {                                size = 0;                            }                            StringBuffer buffer = new StringBuffer(64);                            boolean result = false;                            UserHandler uh = new UserHandler();                            if (action.equals("ADD")) {                                if (size <= 0) {                                    result = uh.addUser(user, pass, domain);                                } else {                                    result = uh.addUser(user, pass, domain, size);                                }                                if (result) {                                    buffer.append(OK);                                    buffer.append(" ");                                    buffer.append("Add new user successfully");                                    session.writeResponse(buffer.toString());                                } else {                                    buffer.append(ERR);                                    buffer.append(" ");                                    buffer.append("Error, add unsuccessfully");                                    session.writeResponse(buffer.toString());                                }                            } else {                                if (size <= 0) {                                    result = uh.modifyUser(user, pass, domain);                                } else {                                    result = uh.modifyUser(user, pass, domain, size);                                }                                if (result) {                                    buffer.append(OK);                                    buffer.append(" ");                                    buffer.append("Modify successfully");                                    session.writeResponse(buffer.toString());                                } else {                                    buffer.append(ERR);                                    buffer.append(" ");                                    buffer.append("Error, modify unsuccessfully");                                    session.writeResponse(buffer.toString());                                }                            }                        } catch (ArgumentException e) {                            StringBuffer buffer = new StringBuffer(64);                            buffer.append(ERR);                            buffer.append(" ");                            buffer.append("Usage: USER <action> <userName> <password>" +                                    " <domain> [size]   action=add or mod");                            session.writeResponse(buffer.toString());                            return;                        }                    } else if (action.equals("DEL")) {                        try {                            String domain = session.getCommandLine().getArgument(2).trim();                            UserHandler uh = new UserHandler();                            StringBuffer buffer = new StringBuffer(64);                            boolean result = uh.deleteUser(user, domain);                            if (result) {                                buffer.append(OK);                                buffer.append(" ");                                buffer.append("Delete successfully");                                session.writeResponse(buffer.toString());                            } else {                                buffer.append(ERR);                                buffer.append(" ");                                buffer.append("Error, delete unsuccessfully");                                session.writeResponse(buffer.toString());                            }                        } catch (ArgumentException e) {                            StringBuffer buffer = new StringBuffer(64);                            buffer.append(ERR);                            buffer.append(" ");                            buffer.append("Usage: USER DEL <userName> <domain>");                            session.writeResponse(buffer.toString());                            return;                        }                    }                }            } catch (ArgumentException ae) {                StringBuffer buffer = new StringBuffer(64);                buffer.append(ERR);                buffer.append(" ");                buffer.append(                        "Usage: USER <action> <userName> [……]");                session.writeResponse(buffer.toString());                return;            }        } else {            StringBuffer buffer = new StringBuffer(64);            buffer.append(ERR);            buffer.append(" ");            buffer.append("USER not allowed here");            session.writeResponse(buffer.toString());        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -