📄 usermanager.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 + -