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.
		
		
		
		
			
				
					
					
						
							72 lines
						
					
					
						
							2.2 KiB
						
					
					
				
			
		
		
	
	
							72 lines
						
					
					
						
							2.2 KiB
						
					
					
				| 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);
 | |
|     }
 | |
| }
 | |
| 
 |