mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-30 09:48:43 +08:00 
			
		
		
		
	优化防重提交唯一标识
This commit is contained in:
		| @@ -61,6 +61,11 @@ public class Constants | |||||||
|      * 登录用户 redis key |      * 登录用户 redis key | ||||||
|      */ |      */ | ||||||
|     public static final String LOGIN_TOKEN_KEY = "login_tokens:"; |     public static final String LOGIN_TOKEN_KEY = "login_tokens:"; | ||||||
|  |      | ||||||
|  |     /** | ||||||
|  |      * 防重提交 redis key | ||||||
|  |      */ | ||||||
|  |     public static final String REPEAT_SUBMIT_KEY = "repeat_submit:"; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 验证码有效期(分钟) |      * 验证码有效期(分钟) | ||||||
|   | |||||||
| @@ -5,8 +5,10 @@ import java.util.Map; | |||||||
| import java.util.concurrent.TimeUnit; | import java.util.concurrent.TimeUnit; | ||||||
| import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||||
|  | import org.springframework.beans.factory.annotation.Value; | ||||||
| import org.springframework.stereotype.Component; | import org.springframework.stereotype.Component; | ||||||
| import com.alibaba.fastjson.JSONObject; | import com.alibaba.fastjson.JSONObject; | ||||||
|  | import com.ruoyi.common.constant.Constants; | ||||||
| import com.ruoyi.common.core.redis.RedisCache; | import com.ruoyi.common.core.redis.RedisCache; | ||||||
| import com.ruoyi.common.filter.RepeatedlyRequestWrapper; | import com.ruoyi.common.filter.RepeatedlyRequestWrapper; | ||||||
| import com.ruoyi.common.utils.StringUtils; | import com.ruoyi.common.utils.StringUtils; | ||||||
| @@ -26,7 +28,9 @@ public class SameUrlDataInterceptor extends RepeatSubmitInterceptor | |||||||
|  |  | ||||||
|     public final String REPEAT_TIME = "repeatTime"; |     public final String REPEAT_TIME = "repeatTime"; | ||||||
|  |  | ||||||
|     public final String CACHE_REPEAT_KEY = "repeatData"; |     // 令牌自定义标识 | ||||||
|  |     @Value("${token.header}") | ||||||
|  |     private String header; | ||||||
|  |  | ||||||
|     @Autowired |     @Autowired | ||||||
|     private RedisCache redisCache; |     private RedisCache redisCache; | ||||||
| @@ -62,7 +66,10 @@ public class SameUrlDataInterceptor extends RepeatSubmitInterceptor | |||||||
|         // 请求地址(作为存放cache的key值) |         // 请求地址(作为存放cache的key值) | ||||||
|         String url = request.getRequestURI(); |         String url = request.getRequestURI(); | ||||||
|  |  | ||||||
|         Object sessionObj = redisCache.getCacheObject(CACHE_REPEAT_KEY); |         // 唯一标识(指定key + 消息头) | ||||||
|  |         String cache_repeat_key = Constants.REPEAT_SUBMIT_KEY + request.getHeader(header); | ||||||
|  |  | ||||||
|  |         Object sessionObj = redisCache.getCacheObject(cache_repeat_key); | ||||||
|         if (sessionObj != null) |         if (sessionObj != null) | ||||||
|         { |         { | ||||||
|             Map<String, Object> sessionMap = (Map<String, Object>) sessionObj; |             Map<String, Object> sessionMap = (Map<String, Object>) sessionObj; | ||||||
| @@ -77,7 +84,7 @@ public class SameUrlDataInterceptor extends RepeatSubmitInterceptor | |||||||
|         } |         } | ||||||
|         Map<String, Object> cacheMap = new HashMap<String, Object>(); |         Map<String, Object> cacheMap = new HashMap<String, Object>(); | ||||||
|         cacheMap.put(url, nowDataMap); |         cacheMap.put(url, nowDataMap); | ||||||
|         redisCache.setCacheObject(CACHE_REPEAT_KEY, cacheMap, intervalTime, TimeUnit.SECONDS); |         redisCache.setCacheObject(cache_repeat_key, cacheMap, intervalTime, TimeUnit.SECONDS); | ||||||
|         return false; |         return false; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 RuoYi
					RuoYi