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
			| 
											3 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);
 | ||
|  |     }
 | ||
|  | }
 |