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