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

📄 usermanageradminclient.java

📁 java 开发的邮件服务器平台。支持以下协议。 协议可以修改为自己的专门标识
💻 JAVA
字号:
/*********************************************************************** * Copyright (c) 2000-2004 The Apache Software Foundation.             * * All rights reserved.                                                * * ------------------------------------------------------------------- * * Licensed 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.client;import java.io.*;import java.util.HashMap;import java.util.ArrayList;import java.util.Iterator;import java.util.StringTokenizer;import java.rmi.Naming;import java.rmi.RemoteException;import org.apache.james.remotemanager.UserManager;import org.apache.james.remotemanager.UserManagerAdmin;/** * This class demonstrate how to use the remote user manager. *  */public class UserManagerAdminClient {    private UserManager userManager;    public UserManagerAdminClient() {    }    private void print(String text) {        System.out.print(text);    }    private void println(String text) {        print(text + "\n");    }        public void execute(String rmiURL)            throws Exception {        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));        String login = null;        String password = null;                println("JAMES Remote UserManager Administration Tool");        println("--------------------------------------------\n");        println("Please enter your login and password");        print("Login   : ");        login = in.readLine();        print("Password: ");        password = in.readLine();        UserManagerAdmin uma = (UserManagerAdmin)Naming.lookup(rmiURL);        while ((userManager = uma.login(login, password)) == null) {            println("login failed!\n");            print("Login   : ");            login = in.readLine();            print("Password: ");            password = in.readLine();        }        println("Welcome " + login + "! HELP for a list of commands");        print("> ");        while (parseCommand(in.readLine())) {            print("\n> ");        }                println("\nGoodbye...");    }    private boolean parseCommand(String commandLine) {        if ((commandLine == null) || (commandLine.equals("")))  {            return true;        }        StringTokenizer commandLineTokenizer = new StringTokenizer(commandLine.trim(), " ");        int argumentCount = commandLineTokenizer.countTokens();        if (argumentCount < 1) {            return true;        }        String command = commandLineTokenizer.nextToken();        String[] arguments = null;        arguments = new String[argumentCount - 1];        int i = 0;        while (commandLineTokenizer.hasMoreTokens()) {            arguments[i] = commandLineTokenizer.nextToken();            i++;        }        try {            if (command.equalsIgnoreCase("quit") ||                    command.equalsIgnoreCase("exit")) {                return false;            } else if (command.equalsIgnoreCase("help")) {                help();            } else if (command.equalsIgnoreCase("list")) {                listRepositories(arguments);            } else if (command.equalsIgnoreCase("select")) {                selectRepository(arguments);            } else if (command.equalsIgnoreCase("adduser")) {                addUser(arguments);            } else if (command.equalsIgnoreCase("deleteuser")) {                deleteUser(arguments);            } else if (command.equalsIgnoreCase("verifyuser")) {                verifyUser(arguments);            } else if (command.equalsIgnoreCase("listusers")) {                listUsers();            } else if (command.equalsIgnoreCase("countusers")) {                countUsers();            } else if (command.equalsIgnoreCase("setpassword")) {                setPassword(arguments);            } else if (command.equalsIgnoreCase("setalias")) {                setAlias(arguments);            } else if (command.equalsIgnoreCase("unsetalias")) {                unsetAlias(arguments);            } else if (command.equalsIgnoreCase("checkalias")) {                checkAlias(arguments);            } else if (command.equalsIgnoreCase("setforward")) {                setForward(arguments);            } else if (command.equalsIgnoreCase("unsetforward")) {                unsetForward(arguments);            } else if (command.equalsIgnoreCase("checkforward")) {                checkForward(arguments);            } else {                println("Unknown command!");            }        } catch (RemoteException re) {            println(">EXCEPTION: " + re.getMessage());        }        return true;    }        private void help() {        println("Currently implemented commmands:");        println("help                                  display this help");        println("list                                  list all repositories");        println("select [name]                         select repository");        println("adduser [username] [password]         add a new user");        println("deleteuser [username]                 delete existing user");        println("verifyuser [username]                 verify if specified user exist");        println("listusers                             display existing userss");        println("countusers                            display number of existing users");        println("setpassword [username] [newpassword]  set new password for existing user");        println("setalias [username] [alias]           set alias for existing user");        println("unsetalias [username] [alias]         unset alias for existing user");        println("checkalias [username]                 check if alias is set for existing user");        println("setforward [username] [forward]       set forward for existing user");        println("unsetforward [username] [forward]     unset forward for existing user");        println("checkforward [username]               check if forward is set for existing user");        println("quit|exit                             quit Administration Tool");    }    private void listRepositories(String[] args)             throws RemoteException {        ArrayList list = userManager.getRepositoryNames();        Iterator iterator = list.iterator();        println("Repositories:");        while (iterator.hasNext()) {            println("-> " + (String)iterator.next());        }                                                   }    private void selectRepository(String[] args)            throws RemoteException {        if (args.length != 1) {            println("usage: select [name]");            return;        }        String name = args[0];        if (userManager.setRepository(name)) {            println("select new repository [" + name + "]");        } else {            println("unknown repository!");        }    }    private void addUser(String[] args)            throws RemoteException {        if (args.length != 2) {            println("usage: adduser [username] [password]");            return;        }        String username = args[0];        String password = args[1];        if (userManager.verifyUser(username)) {            println("User " + username + " already exist!");        } else {            if (userManager.addUser(username, password)) {                println("User " + username + " added.");            } else {                println("Error adding user " + username);            }        }    }    private void deleteUser(String[] args)            throws RemoteException {        if (args.length != 1) {            println("usage: deleteuser [username]");            return;        }        String username = args[0];        if (userManager.deleteUser(username)) {            println("User " + username + " deleted.");        } else {            println("Failed to delete User " + username);        }    }    private void verifyUser(String[] args)            throws RemoteException {        if (args.length != 1) {            println("usage: verifyuser [username]");            return;        }        String username = args[0];        if (userManager.verifyUser(username)) {            println("User " + username + " exist.");        } else {            println("User " + username + " does not exist.");        }    }    private void listUsers()             throws RemoteException {        countUsers();        ArrayList list = userManager.getUserList();        Iterator iterator = list.iterator();        while (iterator.hasNext()) {            println("User: " + (String)iterator.next());        }                                                   }    private void countUsers()             throws RemoteException {        println("Existing users: " + userManager.getCountUsers());    }    private void setPassword(String[] args)            throws RemoteException {        if (args.length != 2) {            println("usage: setpassword [username] [newpassword]");            return;        }        String username = args[0];        String password = args[1];        if (userManager.setPassword(username, password)) {            println("Password for user " + username + " reset");        } else {            println("Error resetting password for user " + username);        }    }    private void setAlias(String[] args)            throws RemoteException {        if (args.length != 2) {            println("usage: setalias [username] [alias]");            return;        }        String username = args[0];        String alias = args[1];        if (userManager.setAlias(username, alias)) {            println("Alias for user " + username + " set to: " + alias);        } else {            println("Error setting alias " + alias + " for user " + username);        }    }    private void unsetAlias(String[] args)            throws RemoteException {        if (args.length != 1) {            println("usage: unsetalias [username]");            return;        }        String username = args[0];        if (userManager.unsetAlias(username)) {            println("Alias for user " + username + " unset!");        } else {            println("Error unset alias for user " + username);        }    }    private void checkAlias(String[] args)            throws RemoteException {        if (args.length != 1) {            println("usage: checkalias [username]");            return;        }        String username = args[0];        String alias = userManager.checkAlias(username);        if (alias != null) {            println("Alias for user " + username + " is set to " + alias);        } else {            println("No alias is set for user " + username);        }    }    private void setForward(String[] args)            throws RemoteException {        if (args.length != 2) {            println("usage: setforward [username] [forward]");            return;        }        String username = args[0];        String forward = args[1];        if (userManager.setForward(username, forward)) {            println("Forward for user " + username + " set to: " + forward);        } else {            println("Error setting forward " + forward + " for user " + username);        }    }    private void unsetForward(String[] args)            throws RemoteException {        if (args.length != 1) {            println("usage: unsetforward [username]");            return;        }        String username = args[0];        if (userManager.unsetForward(username)) {            println("Forward for user " + username + " unset!");        } else {            println("Error unset forward for user " + username);        }    }    private void checkForward(String[] args)            throws RemoteException {        if (args.length != 1) {            println("usage: checkforward [username]");            return;        }        String username = args[0];        String forward = userManager.checkForward(username);        if (forward != null) {            println("Forward for user " + username + " is set to " + forward);        } else {            println("No forward is set for user " + username);        }    }    public static void main(String[] args) {        try {            if (args.length != 1) {                System.out.println("usage: UserManagerAdminClient <rmi-url>");                return;            }            (new UserManagerAdminClient()).execute(args[0]);        } catch (Exception e) {            e.printStackTrace();        }    }}

⌨️ 快捷键说明

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