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

📄 mockusersrepository.java

📁 java mail,java mailjava mailjava mailjava mail
💻 JAVA
字号:
/**************************************************************** * 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.userrepository;import org.apache.james.security.DigestUtil;import org.apache.james.services.User;import org.apache.james.services.UsersRepository;import java.util.HashMap;import java.util.Iterator;import java.util.LinkedList;import java.util.List;public class MockUsersRepository implements UsersRepository {    private final HashMap m_users = new HashMap();    /**     * force the repository to hold implementations of JamesUser interface, instead of User     * JamesUser is _not_ required as of the UsersRepository interface, so the necessarity forcing it     * is due to code using UsersRepository while at the same time expecting it to hold JamesUsers     * (like in RemoteManagerHandler)      */    private boolean m_forceUseJamesUser = false;    public void setForceUseJamesUser() {        m_forceUseJamesUser = true;    }    public boolean addUser(User user) {        if (m_forceUseJamesUser && user instanceof DefaultUser ) {            DefaultUser aUser = (DefaultUser)user;            user = new DefaultJamesUser(aUser.getUserName(),                                             aUser.getHashedPassword(),                                             aUser.getHashAlgorithm());        }        String key = user.getUserName();        if (m_users.containsKey(key)) return false;        m_users.put(key, user);        return true;    }    public void addUser(String name, Object attributes) {        try {            String passwordHash = DigestUtil.digestString(((String) attributes), "SHA");            User user;            if (m_forceUseJamesUser) {                user = new DefaultJamesUser(name, passwordHash, "SHA");            } else {                user = new DefaultUser(name, passwordHash, "SHA");            }                       addUser(user);        } catch (Exception e) {            e.printStackTrace();  // encoding failed        }    }    public boolean addUser(String username, String password) {        if (m_users.containsKey(username)) return false;        try {            String passwordHash = DigestUtil.digestString((password), "SHA");            User user;            if (m_forceUseJamesUser) {                user = new DefaultJamesUser(username, passwordHash, "SHA");            } else {                user = new DefaultUser(username, passwordHash, "SHA");            }                       return addUser(user);        } catch (Exception e) {            e.printStackTrace();  // encoding failed        }        return false;    }    public Object getAttributes(String name) {        return null;  // trivial implementation    }    public User getUserByName(String name) {        return (User) m_users.get(name);    }    public User getUserByNameCaseInsensitive(String name) {        return null;  // trivial implementation    }    public String getRealName(String name) {        return ((User) m_users.get(name)).getUserName();    }    public boolean updateUser(User user) {        return false;  // trivial implementation    }    public void removeUser(String name) {        m_users.remove(name);    }    public boolean contains(String name) {        return m_users.containsKey(name);    }    public boolean containsCaseInsensitive(String name) {        return false;  // trivial implementation    }    public boolean test(String name, Object attributes) {        return false;  // trivial implementation    }    public boolean test(String name, String password) {        User user = getUserByName(name);        if (user == null) return false;        return user.verifyPassword(password);    }    public int countUsers() {        return m_users.size();    }    protected List listUserNames() {        Iterator users = m_users.values().iterator();        List userNames = new LinkedList();        while ( users.hasNext() ) {            User user = (User)users.next();            userNames.add(user.getUserName());        }        return userNames;    }    public Iterator list() {        return listUserNames().iterator();     }}

⌨️ 快捷键说明

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