package com.base.constant; import java.io.FileInputStream; import java.net.URL; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Properties; import com.amarsoft.are.ARE; import com.amarsoft.awe.Configure; public class RestfullConstant { /** * KEY OF SESSION ================== parameter ============================ * PROPERTY_KEY_USER_ID. 用户ID PROPERTY_KEY_TOKEN. 访问令牌 PROPERTY_KEY_DEV_ID. * 手机设备ID PROPERTY_KEY_DEV_OS. 手机设备类型 EY_EXPIRE. 到期时间 PROPERTY_KEY_WEB_API. * 接口服务是否开启 . PROPERTY_KEY_REQ_URI. 请求访问路径. */ public static final String PROPERTY_KEY_USER_ID = "base.session.check.user.id"; public static final String PROPERTY_KEY_TOKEN = "base.session.check.token"; public static final String PROPERTY_KEY_DEV_ID = "base.session.check.dev.id"; public static final String PROPERTY_KEY_DEV_OS = "base.session.check.dev.os"; public static final String PROPERTY_KEY_EXPIRE = "base.session.check.expire"; public static final String PROPERTY_KEY_WEB_API = "base.session.web.api.page"; public static final String PROPERTY_KEY_REQ_URI = "base.session.req.uri"; /** * KEY OF BASE ================== parameter ============================ * PROPERTY_KEY_TOKEN_HOLD_TIME. 令牌有效期 5分钟 PROPERTY_KEY_ENDCODING. 编码 * encoding PROPERTY_KEY_NO_FILETER. 免过滤请求路径 PROPERTY_KEY_DATA_ENCODING. * 编码格式 GBK PROPERTY_KEY_FORCE_ENCODING. 返回编码设置 TRUE GBK FALSE 不设置 * PROPERTY_KEY_DATA_SOURCE. 数据来源 als PROPERTY_KEY_SERVICE_RETURN_TYPE_VOID. * 接口返回类型 void. PROPERTY_KEY_SERVICE_RETURN_TYPE_APPATT. 接口返回类型 APP附件. * * PROPERTY_KEY_CODE_500. 异常返回 CODE PROPERTY_KEY_MSG_500. 异常返回信息 * PROPERTY_KEY_CODE_404. 接口不存在CODE PROPERTY_KEY_CODE_406. 令牌失效 CODE * PROPERTY_KEY_MSG_406. 令牌失效信息 PROPERTY_KEY_RESULT_SUCCESS_CODE. 返回成功 CODE * PROPERTY_KEY_RESULT_FAIL_CODE. 返回失败CODE * * 推送功能 配置 (小米jar) PROPERTY_KEY_PUSH_ENABLE. 推送是否开启 * PROPERTY_KEY_PUSH_SECRET_IOS. IOS推送秘钥 PROPERTY_KEY_PUSH_SECRET_ANDROID. * 安卓推送秘钥 PROPERTY_KEY_PAGE_NAME. 包名 FAIL_SAVE. 保存失败 FAIL_EDIT. 编辑失败 * FAIL_DELETE. 删除失败 FAIL_INIT_DISPLAY. 加载页面失败 SUCCESS_SAVE.保存成功 * SUCCESS_EDIT.编辑成功 SUCCESS_DELETE. 删除成功 SUCCESS_INIT_DISPLAY.加载页面成功 * DES_SECRET_KEY_ONE. 加密参数1 DES_SECRET_KEY_TWO. 加密参数2 DES_SECRET_KEY_THREE. * 加密参数3 */ public static final String PROPERTY_KEY_TOKEN_HOLD_TIME = "base.param.key.hold.time"; public static final String PROPERTY_KEY_ENCODING = "base.param.key.encoding"; public static final String PROPERTY_KEY_NO_FILETER = "base.param.key.no.check.uri"; public final static String PROPERTY_KEY_DATA_ENCODING = "base.data.encoding"; public final static String PROPERTY_KEY_FORCE_ENCODING = "base.data.fource.encoding"; public final static String PROPERTY_KEY_DATA_SOURCE = "base.data.source"; public final static String PROPERTY_KEY_SERVICE_RETURN_TYPE_VOID = "base.return.type.void"; public final static String PROPERTY_KEY_SERVICE_RETURN_TYPE_APPATT = "base.return.type.app.att"; public final static String PROPERTY_KEY_CODE_500 = "base.return.code.500"; public final static String PROPERTY_KEY_MSG_500 = "base.return.msg.500"; public final static String PROPERTY_KEY_CODE_404 = "base.return.code.404"; public final static String PROPERTY_KEY_CODE_406 = "base.return.code.406"; public final static String PROPERTY_KEY_MSG_406 = "base.return.msg.406"; public final static String PROPERTY_KEY_RESULT_SUCCESS_CODE = "base.return.result.success.code"; public final static String PROPERTY_KEY_RESULT_FAIL_CODE = "base.return.result.fail.code"; public final static String BUSINESS_TYPE = "base.business.type"; public final static String PROPERTY_KEY_PUSH_ENABLE = "push.message.switch"; public final static String PROPERTY_KEY_PUSH_SECRET_IOS = "push.message.secret.key.ios"; public final static String PROPERTY_KEY_PUSH_SECRET_ANDROID = "push.message.secret.key.android"; public final static String PROPERTY_KEY_PACKAGE_NAME = "push.message.package.name"; public static final String FAIL_SAVE = "base.return.msg.save.fail"; public static final String FAIL_EDIT = "base.return.msg.edit.fail"; public static final String FAIL_DELETE = "base.return.msg.del.fail"; public static final String FAIL_INIT_DISPLAY = "base.return.msg.init.display.fail"; public static final String SUCCESS_SAVE = "base.return.msg.save.success"; public static final String SUCCESS_EDIT = "base.return.msg.edit.success"; public static final String SUCCESS_DELETE = "base.return.msg.del.success"; public static final String SUCCESS_INIT_DISPLAY = "base.return.msg.init.display.success"; public static final String DES_SECRET_KEY_ONE = "base.pwd.encryption.des.one"; public static final String DES_SECRET_KEY_TWO = "base.pwd.encryption.des.two"; public static final String DES_SECRET_KEY_THREE = "base.pwd.encryption.des.three"; public static final String CUSTOMER_TYPE_COMPANY = "base.customer.type.company"; public static final String CUSTOMER_TYPE_PERSON = "base.customer.type.person"; public static final String FILTER_USER_ROLE_ID = "base.filter.user.role.id"; public static final String COMPANY_DOC_NAME = "base.company.doc.name"; public static final String PERSON_DOC_NAME = "base.person.doc.name"; public static final String CALCULATION_TOOL_FLOW_UNID = "base.calculation.tool.flow.unid"; /** * APP SESSION 配置 */ public static Map sessionProperty; /** * APP 基本配置 */ public static Map baseProperty; private static void setMap(Map objMap, String sKey, String sValue) { ARE.getLog().debug("Map >> key :" + sKey + ", value :" + sValue); objMap.put(sKey.toLowerCase(), sValue); objMap.put(sKey.toUpperCase(), sValue); } private static void loadBaseKey(Properties pro) { baseProperty = new HashMap(); // base : 令牌有效期 setMap(baseProperty, "TOKENHOLDTIME", pro.getProperty(PROPERTY_KEY_TOKEN_HOLD_TIME)); // base : 编码 setMap(baseProperty, "ENCODING", pro.getProperty(PROPERTY_KEY_ENCODING)); // base : 免过滤地址 setMap(baseProperty, "NOFILETER", pro.getProperty(PROPERTY_KEY_NO_FILETER)); // base : GBK setMap(baseProperty, "DATAENCODING", pro.getProperty(PROPERTY_KEY_DATA_ENCODING)); // base : response return value encoding enable true // [setcharencoding=GBK] false [setcharencoding=default] setMap(baseProperty, "FORCEENCODING", pro.getProperty(PROPERTY_KEY_FORCE_ENCODING)); // base : transaction & JBOTransaction source = [als] setMap(baseProperty, "DATASOURCE", pro.getProperty(PROPERTY_KEY_DATA_SOURCE)); // base : response return type setMap(baseProperty, "VOID", pro.getProperty(PROPERTY_KEY_SERVICE_RETURN_TYPE_VOID)); setMap(baseProperty, "APPATT", pro.getProperty(PROPERTY_KEY_SERVICE_RETURN_TYPE_APPATT)); // base : code & massage setMap(baseProperty, "CODE500", pro.getProperty(PROPERTY_KEY_CODE_500)); setMap(baseProperty, "MSG500", pro.getProperty(PROPERTY_KEY_MSG_500)); setMap(baseProperty, "CODE404", pro.getProperty(PROPERTY_KEY_CODE_404)); setMap(baseProperty, "CODE406", pro.getProperty(PROPERTY_KEY_CODE_406)); setMap(baseProperty, "MSG406", pro.getProperty(PROPERTY_KEY_MSG_406)); setMap(baseProperty, "FAIL_SAVE", pro.getProperty(FAIL_SAVE)); setMap(baseProperty, "FAIL_EDIT", pro.getProperty(FAIL_EDIT)); setMap(baseProperty, "FAIL_DELETE", pro.getProperty(FAIL_DELETE)); setMap(baseProperty, "FAIL_INIT_DISPLAY", pro.getProperty(FAIL_INIT_DISPLAY)); setMap(baseProperty, "SUCCESS_SAVE", pro.getProperty(SUCCESS_SAVE)); setMap(baseProperty, "SUCCESS_EDIT", pro.getProperty(SUCCESS_EDIT)); setMap(baseProperty, "SUCCESS_DELETE", pro.getProperty(SUCCESS_DELETE)); setMap(baseProperty, "SUCCESS_INIT_DISPLAY", pro.getProperty(SUCCESS_INIT_DISPLAY)); setMap(baseProperty, "FILTER_USER_ROLE_ID", pro.getProperty(FILTER_USER_ROLE_ID)); // base : result code setMap(baseProperty, "SUCCESS", pro.getProperty(PROPERTY_KEY_RESULT_SUCCESS_CODE)); setMap(baseProperty, "FAIL", pro.getProperty(PROPERTY_KEY_RESULT_FAIL_CODE)); // base : application push massage config setMap(baseProperty, "PUSHENABLE", pro.getProperty(PROPERTY_KEY_PUSH_ENABLE)); setMap(baseProperty, "SECRETIOS", pro.getProperty(PROPERTY_KEY_PUSH_SECRET_IOS)); setMap(baseProperty, "SECRETANDROID", pro.getProperty(PROPERTY_KEY_PUSH_SECRET_ANDROID)); setMap(baseProperty, "PACKAGENAME", pro.getProperty(PROPERTY_KEY_PACKAGE_NAME)); // DES setMap(baseProperty, "DES_SECRET_KEY_ONE", pro.getProperty(DES_SECRET_KEY_ONE)); setMap(baseProperty, "DES_SECRET_KEY_TWO", pro.getProperty(DES_SECRET_KEY_TWO)); setMap(baseProperty, "DES_SECRET_KEY_THREE", pro.getProperty(DES_SECRET_KEY_THREE)); // CUSTOMER TYPE 01 setMap(baseProperty, "CUSTOMER_TYPE_COMPANY", pro.getProperty(CUSTOMER_TYPE_COMPANY)); // CUSTOMER TYPE 03 setMap(baseProperty, "CUSTOMER_TYPE_PERSON", pro.getProperty(CUSTOMER_TYPE_PERSON)); // BUSINESS_TYPE setMap(baseProperty, "BUSINESS_TYPE", pro.getProperty(BUSINESS_TYPE)); // COMPANY_DOC_NAME AND PERSON_DOC_NAME setMap(baseProperty, "COMPANY_DOC_NAME", pro.getProperty(COMPANY_DOC_NAME)); setMap(baseProperty, "PERSON_DOC_NAME", pro.getProperty(PERSON_DOC_NAME)); setMap(baseProperty, "CALCULATION_TOOL_FLOW_UNID", pro.getProperty(CALCULATION_TOOL_FLOW_UNID)); } private static void loadSessionKey(Properties pro) { sessionProperty = new HashMap(); setMap(sessionProperty, "USERID", pro.getProperty(PROPERTY_KEY_USER_ID)); setMap(sessionProperty, "TOKEN", pro.getProperty(PROPERTY_KEY_TOKEN)); setMap(sessionProperty, "DEVID", pro.getProperty(PROPERTY_KEY_DEV_ID)); setMap(sessionProperty, "DEVOS", pro.getProperty(PROPERTY_KEY_DEV_OS)); setMap(sessionProperty, "EXPIRE", pro.getProperty(PROPERTY_KEY_EXPIRE)); setMap(sessionProperty, "WEBAPI", pro.getProperty(PROPERTY_KEY_WEB_API)); setMap(sessionProperty, "REQURI", pro.getProperty(PROPERTY_KEY_REQ_URI)); } public static void initProperties() throws Exception { ARE.getLog().debug("开启加载APP_CONFIG.PROPERTIES "); @SuppressWarnings("deprecation") Configure CurConfig = Configure.getInstance(); try { // String path = // request.getSession().getServletContext().getRealPath("/"); // String proRootPath = directory.getCanonicalPath(); URL url = RestfullConstant.class.getResource("/"); String sClassPath = url.getPath(); String os = System.getProperty("os.name"); if (os.toLowerCase().startsWith("win")) { sClassPath = sClassPath.startsWith("/") ? sClassPath.substring( 1, sClassPath.indexOf("/WEB-INF") + 8) : sClassPath; } else { sClassPath = sClassPath.startsWith("/") ? sClassPath.substring( 0, sClassPath.indexOf("/WEB-INF") + 8) : sClassPath; } String fileName = sClassPath + CurConfig.getConfigure("AppConfigPath"); // String fileName = CurConfig.getConfigure("AppConfigPath"); ARE.getLog().debug("文件全路径:" + fileName); Properties pro = new Properties(); FileInputStream in = new FileInputStream(fileName); pro.load(in); Iterator it = pro.stringPropertyNames().iterator(); while (it.hasNext()) { String sKey = it.next(); ARE.getLog().debug( "key:" + sKey + " property:" + pro.getProperty(sKey)); } loadSessionKey(pro); loadBaseKey(pro); in.close(); } catch (Exception e) { ARE.getLog().error(e); throw new Exception("加载APP配置文件失败" + e); } } }