You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.2 KiB
73 lines
2.2 KiB
2 years ago
|
package com.ynxbd.wx.config;
|
||
|
|
||
|
import com.ynxbd.common.helper.ProperHelper;
|
||
|
import com.ynxbd.common.helper.common.HMACHelper;
|
||
|
import lombok.extern.slf4j.Slf4j;
|
||
|
import org.apache.commons.lang3.ObjectUtils;
|
||
|
|
||
|
import javax.servlet.http.HttpServletRequest;
|
||
|
|
||
|
/**
|
||
|
* 智能导诊
|
||
|
*/
|
||
|
|
||
|
@Slf4j
|
||
|
public class AIGuidanceConfig {
|
||
|
private AIGuidanceConfig() {
|
||
|
}
|
||
|
|
||
|
final public static boolean IS_ENABLE;
|
||
|
|
||
|
//配置文件读取项
|
||
|
final public static String HOS_ID;
|
||
|
// 密钥
|
||
|
final public static String KEY;
|
||
|
final public static String PARTNER_ID;
|
||
|
final public static String HOS_NAME;
|
||
|
final public static String HOS_ADDRESS;
|
||
|
final public static String HOS_INTRO;
|
||
|
final public static String HOS_LEVEL;
|
||
|
final public static String HOS_TELEPHONE;
|
||
|
|
||
|
static {
|
||
|
ProperHelper config = new ProperHelper().read("ai-guidance.properties");
|
||
|
IS_ENABLE = config.getBoolean("ai.is_enable", false);
|
||
|
config.setIsEnable(IS_ENABLE);
|
||
|
|
||
|
PARTNER_ID = config.getString("ai.partner_id");
|
||
|
KEY = config.getString("ai.key");
|
||
|
HOS_ID = config.getString("ai.hos_id");
|
||
|
HOS_NAME = config.getString("ai.hos_name");
|
||
|
HOS_ADDRESS = config.getString("ai.hos_address");
|
||
|
HOS_INTRO = config.getString("ai.hos_intro");
|
||
|
HOS_LEVEL = config.getString("ai.hos_level");
|
||
|
HOS_TELEPHONE = config.getString("ai.hos_telephone");
|
||
|
|
||
|
if (PARTNER_ID == null) {
|
||
|
log.error("读取AI配置文件失败");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 验签
|
||
|
*
|
||
|
* @param request 请求
|
||
|
* @return 是否通过
|
||
|
*/
|
||
|
public static boolean isVerifySign(HttpServletRequest request) {
|
||
|
if (!IS_ENABLE) {
|
||
|
return false;
|
||
|
}
|
||
|
String signature = request.getHeader("god-portal-signature"); // 签名
|
||
|
if (ObjectUtils.isEmpty(signature)) {
|
||
|
return false;
|
||
|
}
|
||
|
String timestamp = request.getHeader("god-portal-timestamp"); // 时间戳
|
||
|
|
||
|
log.info("[智能导诊]验签 timestamp={}, signature={}", timestamp, signature);
|
||
|
String str = PARTNER_ID + timestamp;
|
||
|
String cacheSign = HMACHelper.sha256(str, KEY);
|
||
|
return signature.equals(cacheSign);
|
||
|
}
|
||
|
}
|