package com.pccw.mobile.fixipapi.util;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.pccw.mobile.fixipapi.response.mode.UserInfo;
public class UserConfig {
private static Logger logger = LoggerFactory.getLogger(UserConfig.class);
//file operation
private FileReader fileReader;
private BufferedReader bufferedReader;
private Map<String, UserInfo> users;
private static boolean isReady = false;
private static UserConfig instanced = new UserConfig();
private UserConfig() {
if (!isReady){
isReady = true;
String path = SystemConfig.getUser_conf_path();
initConfiguration(path);
}
}
public static UserConfig getInstanced() {
return instanced;
}
public void initConfiguration(String filePath) {
// first step, read file
// second step, init configuration
// third step, close red file
if (filePath == null) {
logger.info("file path is null");
return;
}
BufferedReader bf = null;
Map<String, UserInfo> userMap = new HashMap<String, UserInfo>();
try {
bf = readFile(filePath);
if (bf == null) {
logger.info("file is empty");
return;
}
String line = null;
while ((line = bf.readLine()) != null) {
String[] arr = line.trim().replace(" ", "").split(",");
if (arr.length == 2) {
UserInfo userInfo = new UserInfo();
userInfo.setUsername(arr[0]);
userInfo.setPassword(arr[1]);
userMap.put(arr[0].trim(), userInfo);
}
}
if (userMap.size() > 0) {
users = userMap;
}
} catch (FileNotFoundException e) {
logger.error("action:config;error message:" + e.getMessage());
} catch (IOException e) {
logger.error("action:config;error message:" + e.getMessage());
} finally {
try {
closeReadFile();
} catch (IOException e) {
logger.error("action:config;error message:" + e.getMessage());
}
}
}
protected BufferedReader readFile(String filePath) throws FileNotFoundException{
File file = new File(filePath);
//read file
fileReader=new FileReader(file);
bufferedReader = new BufferedReader(fileReader);
return bufferedReader;
}
protected void closeReadFile() throws IOException{
if (bufferedReader!=null){
bufferedReader.close();
}
if (fileReader!=null){
fileReader.close();
}
}
public Map<String, UserInfo> getUsers() {
if(users == null){
return null;
}
return users;
}
public UserInfo getUser(String userName){
if (userName==null){
return null;
}
if (users!=null){
return users.get(userName);
}
return null;
}
}
user.conf:
##http basic authorization #user & pwd information pccw,123 csl,888 SunMobile,000