/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package vn.mobile.id.utils;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Properties;
import org.apache.log4j.Logger;
/**
*
* @author TuoiCM
*/
public class Configuration {
//
private static final Logger logger = Logger.getLogger(Configuration.class);
private static Configuration instance;
private String relyingPartyName;
//FMS properties
private Properties fmsProperties = new Properties();
private String fmsUrl;
private String fmsUsername;
private String fmsPassword;
private String fmsMaxSession;
private String fmsMaxFileInFolder;
private String fmsWorkSpace;
//
//
public static Configuration getInstance(String rpName) {
if (instance == null) {
instance = new Configuration(rpName);
}
return instance;
}
//
//
private Configuration(String rpName) {
try {
this.relyingPartyName = rpName.toUpperCase();
logger.info("LOAD THE CONFIGUATION FILE FOR RP " + rpName);
ClassLoader loader = Thread.currentThread().getContextClassLoader();
//Fms properties
InputStream fmsProp = loader.getResourceAsStream("fms.properties");
if (null != fmsProp) {
this.fmsProperties.load(fmsProp);
if (null == this.fmsProperties) {
String propertiesFile = Utils.getPropertiesFile("fms.properties");
if (propertiesFile != null) {
logger.info("READ THE CONFIGUATION FILE FROM " + propertiesFile);
try (InputStream in = new FileInputStream(propertiesFile)) {
this.fmsProperties.load(in);
}
} else {
logger.error("CANNOT FIND FMS CONFIGUATION FILE. THIS IS A BIG PROBLEM");
}
}
fmsProp.close();
} else {
String propertiesFile = Utils.getPropertiesFile("app.properties");
if (propertiesFile != null) {
logger.info("Read the configuation file from " + propertiesFile);
this.fmsProperties.load(new FileInputStream(propertiesFile));
} else {
logger.error("Cannot find any configuation file. This is a big problem");
}
}
RelyingPartyName rpNameEnum = RelyingPartyName.valueOf(rpName);
switch (rpNameEnum) {
case ISAPP:
this.fmsUrl = fmsProperties.getProperty("fms.conf.isapp.url");
this.fmsUsername = fmsProperties.getProperty("fms.conf.isapp.username");
this.fmsPassword = fmsProperties.getProperty("fms.conf.isapp.password");
this.fmsMaxSession = fmsProperties.getProperty("fms.conf.isapp.maxsession");
this.fmsMaxFileInFolder = fmsProperties.getProperty("fms.conf.isapp.maxfileinfolder");
this.fmsWorkSpace = fmsProperties.getProperty("fms.conf.isapp.workspace");
break;
case CMCCA:
this.fmsUrl = fmsProperties.getProperty("fms.conf.cmcca.url");
this.fmsUsername = fmsProperties.getProperty("fms.conf.cmcca.username");
this.fmsPassword = fmsProperties.getProperty("fms.conf.cmcca.password");
this.fmsMaxSession = fmsProperties.getProperty("fms.conf.cmcca.maxsession");
this.fmsMaxFileInFolder = fmsProperties.getProperty("fms.conf.cmcca.maxfileinfolder");
this.fmsWorkSpace = fmsProperties.getProperty("fms.conf.cmcca.workspace");
break;
case FPTCA:
this.fmsUrl = fmsProperties.getProperty("fms.conf.fptca.url");
this.fmsUsername = fmsProperties.getProperty("fms.conf.fptca.username");
this.fmsPassword = fmsProperties.getProperty("fms.conf.fptca.password");
this.fmsMaxSession = fmsProperties.getProperty("fms.conf.fptca.maxsession");
this.fmsMaxFileInFolder = fmsProperties.getProperty("fms.conf.fptca.maxfileinfolder");
this.fmsWorkSpace = fmsProperties.getProperty("fms.conf.fptca.workspace");
break;
case MOBILE_ID:
this.fmsUrl = fmsProperties.getProperty("fms.conf.mobileid.url");
this.fmsUsername = fmsProperties.getProperty("fms.conf.mobileid.username");
this.fmsPassword = fmsProperties.getProperty("fms.conf.mobileid.password");
this.fmsMaxSession = fmsProperties.getProperty("fms.conf.mobileid.maxsession");
this.fmsMaxFileInFolder = fmsProperties.getProperty("fms.conf.mobileid.maxfileinfolder");
this.fmsWorkSpace = fmsProperties.getProperty("fms.conf.mobileid.workspace");
break;
case MOBILE_ID_DEV:
this.fmsUrl = fmsProperties.getProperty("fms.conf.mobileiddev.url");
this.fmsUsername = fmsProperties.getProperty("fms.conf.mobileiddev.username");
this.fmsPassword = fmsProperties.getProperty("fms.conf.mobileiddev.password");
this.fmsMaxSession = fmsProperties.getProperty("fms.conf.mobileiddev.maxsession");
this.fmsMaxFileInFolder = fmsProperties.getProperty("fms.conf.mobileiddev.maxfileinfolder");
this.fmsWorkSpace = fmsProperties.getProperty("fms.conf.mobileiddev.workspace");
break;
case FASTCA:
this.fmsUrl = fmsProperties.getProperty("fms.conf.fastca.url");
this.fmsUsername = fmsProperties.getProperty("fms.conf.fastca.username");
this.fmsPassword = fmsProperties.getProperty("fms.conf.fastca.password");
this.fmsMaxSession = fmsProperties.getProperty("fms.conf.fastca.maxsession");
this.fmsMaxFileInFolder = fmsProperties.getProperty("fms.conf.fastca.maxfileinfolder");
this.fmsWorkSpace = fmsProperties.getProperty("fms.conf.fastca.workspace");
break;
case VIETTELCA:
this.fmsUrl = fmsProperties.getProperty("fms.conf.viettelca.url");
this.fmsUsername = fmsProperties.getProperty("fms.conf.viettelca.username");
this.fmsPassword = fmsProperties.getProperty("fms.conf.viettelca.password");
this.fmsMaxSession = fmsProperties.getProperty("fms.conf.viettelca.maxsession");
this.fmsMaxFileInFolder = fmsProperties.getProperty("fms.conf.viettelca.maxfileinfolder");
this.fmsWorkSpace = fmsProperties.getProperty("fms.conf.viettelca.workspace");
break;
case EASYCA:
this.fmsUrl = fmsProperties.getProperty("fms.conf.easyca.url");
this.fmsUsername = fmsProperties.getProperty("fms.conf.easyca.username");
this.fmsPassword = fmsProperties.getProperty("fms.conf.easyca.password");
this.fmsMaxSession = fmsProperties.getProperty("fms.conf.easyca.maxsession");
this.fmsMaxFileInFolder = fmsProperties.getProperty("fms.conf.easyca.maxfileinfolder");
this.fmsWorkSpace = fmsProperties.getProperty("fms.conf.easyca.workspace");
break;
case PVCOMBANK:
this.fmsUrl = fmsProperties.getProperty("fms.conf.pvcombank.url");
this.fmsUsername = fmsProperties.getProperty("fms.conf.pvcombank.username");
this.fmsPassword = fmsProperties.getProperty("fms.conf.pvcombank.password");
this.fmsMaxSession = fmsProperties.getProperty("fms.conf.pvcombank.maxsession");
this.fmsMaxFileInFolder = fmsProperties.getProperty("fms.conf.pvcombank.maxfileinfolder");
this.fmsWorkSpace = fmsProperties.getProperty("fms.conf.pvcombank.workspace");
break;
case PVCOMBANK_TEST:
this.fmsUrl = fmsProperties.getProperty("fms.conf.pvcombanktest.url");
this.fmsUsername = fmsProperties.getProperty("fms.conf.pvcombanktest.username");
this.fmsPassword = fmsProperties.getProperty("fms.conf.pvcombanktest.password");
this.fmsMaxSession = fmsProperties.getProperty("fms.conf.pvcombanktest.maxsession");
this.fmsMaxFileInFolder = fmsProperties.getProperty("fms.conf.pvcombanktest.maxfileinfolder");
this.fmsWorkSpace = fmsProperties.getProperty("fms.conf.pvcombanktest.workspace");
break;
case DEMO:
this.fmsUrl = fmsProperties.getProperty("fms.conf.demo.url");
this.fmsUsername = fmsProperties.getProperty("fms.conf.demo.username");
this.fmsPassword = fmsProperties.getProperty("fms.conf.demo.password");
this.fmsMaxSession = fmsProperties.getProperty("fms.conf.demo.maxsession");
this.fmsMaxFileInFolder = fmsProperties.getProperty("fms.conf.demo.maxfileinfolder");
this.fmsWorkSpace = fmsProperties.getProperty("fms.conf.demo.workspace");
break;
default:
logger.error("INVALID RELYINGPART NAME " + rpName);
this.fmsUrl = null;
this.fmsUsername = null;
this.fmsPassword = null;
this.fmsMaxSession = null;
this.fmsMaxFileInFolder = null;
this.fmsWorkSpace = null;
break;
}
} catch (Exception ex) {
this.fmsUrl = null;
this.fmsUsername = null;
this.fmsPassword = null;
this.fmsMaxSession = null;
this.fmsMaxFileInFolder = null;
this.fmsWorkSpace = null;
logger.error(Utils.printStackTrace(ex));
}
}
//
//
public Properties getFmsProperties() {
return fmsProperties;
}
public void setFmsProperties(Properties fmsProperties) {
this.fmsProperties = fmsProperties;
}
public String getFmsUrl() {
return fmsUrl;
}
public void setFmsUrl(String fmsUrl) {
this.fmsUrl = fmsUrl;
}
public String getFmsUsername() {
return fmsUsername;
}
public void setFmsUsername(String fmsUsername) {
this.fmsUsername = fmsUsername;
}
public String getFmsPassword() {
return fmsPassword;
}
public void setFmsPassword(String fmsPassword) {
this.fmsPassword = fmsPassword;
}
public String getFmsMaxSession() {
return fmsMaxSession;
}
public void setFmsMaxSession(String fmsMaxSession) {
this.fmsMaxSession = fmsMaxSession;
}
public String getFmsMaxFileInFolder() {
return fmsMaxFileInFolder;
}
public void setFmsMaxFileInFolder(String fmsMaxFileInFolder) {
this.fmsMaxFileInFolder = fmsMaxFileInFolder;
}
public String getFmsWorkSpace() {
return fmsWorkSpace;
}
public void setFmsWorkSpace(String fmsWorkSpace) {
this.fmsWorkSpace = fmsWorkSpace;
}
//
}