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

📄 usermanager.java

📁 java 文件下载器。可自定义
💻 JAVA
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space 
// Source File Name:   UserManager.java

package org.gudy.azureus2.ui.console.multiuser;

import com.aelitis.azureus.core.AzureusCoreException;
import java.beans.XMLDecoder;
import java.beans.XMLEncoder;
import java.io.*;
import java.util.*;
import org.gudy.azureus2.plugins.PluginInterface;
import org.gudy.azureus2.plugins.utils.Utilities;
import org.gudy.azureus2.ui.console.UserProfile;

public class UserManager
{
	public static final class UserManagerConfig
	{

		private List users;

		public List getUsers()
		{
			return users;
		}

		public void setUsers(List users)
		{
			this.users = users;
		}

		public void addUser(UserProfile user)
		{
			users.add(user);
		}

		public void clear()
		{
			users.clear();
		}

		public UserManagerConfig()
		{
			users = new ArrayList();
		}
	}


	private static final String USER_DB_CONFIG_FILE = "console.users.properties";
	private static UserManager instance;
	private Map usersMap;
	private final String fileName;

	public UserManager(String fileName)
	{
		usersMap = new HashMap();
		this.fileName = fileName;
	}

	public UserProfile authenticate(String username, String password)
	{
		UserProfile profile = getUser(username);
		if (profile != null && profile.authenticate(password))
			return profile;
		else
			return null;
	}

	public UserProfile getUser(String username)
	{
		return (UserProfile)usersMap.get(username.toLowerCase());
	}

	public void addUser(UserProfile user)
	{
		usersMap.put(user.getUsername().toLowerCase(), user);
	}

	public Collection getUsers()
	{
		return Collections.unmodifiableCollection(usersMap.values());
	}

	public void load()
		throws FileNotFoundException
	{
		BufferedInputStream bis = new BufferedInputStream(new FileInputStream(fileName));
		doLoad(bis);
	}

	protected void doLoad(InputStream in)
	{
		XMLDecoder decoder = new XMLDecoder(in);
		UserManagerConfig managerConfig = (UserManagerConfig)decoder.readObject();
		UserProfile user;
		for (Iterator iter = managerConfig.getUsers().iterator(); iter.hasNext(); usersMap.put(user.getUsername().toLowerCase(), user))
			user = (UserProfile)iter.next();

		System.out.println((new StringBuilder()).append("UserManager: registered ").append(usersMap.size()).append(" users").toString());
		decoder.close();
	}

	public void save()
		throws FileNotFoundException
	{
		OutputStream out = new FileOutputStream(fileName);
		doSave(out);
	}

	protected void doSave(OutputStream out)
	{
		UserManagerConfig config = new UserManagerConfig();
		List users = new ArrayList(usersMap.values());
		config.setUsers(users);
		XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(out));
		encoder.writeObject(config);
		encoder.close();
	}

	public static UserManager getInstance(PluginInterface pi)
	{
		if (instance == null)
		{
			String azureusUserDir = pi.getUtilities().getAzureusUserDir();
			File dbFile = new File(azureusUserDir, "console.users.properties");
			try
			{
				instance = new UserManager(dbFile.getCanonicalPath());
				if (dbFile.exists())
				{
					System.out.println((new StringBuilder()).append("loading user configuration from: ").append(dbFile.getCanonicalPath()).toString());
					instance.load();
				} else
				{
					System.out.println((new StringBuilder()).append("file: ").append(dbFile.getCanonicalPath()).append(" does not exist. using 'null' user manager").toString());
				}
			}
			catch (IOException e)
			{
				throw new AzureusCoreException("Unable to instantiate default user manager");
			}
		}
		return instance;
	}

	public void deleteUser(String userName)
	{
		usersMap.remove(userName.toLowerCase());
	}
}

⌨️ 快捷键说明

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