From 695cb6d76b838b1e4cb161bae335faa948dca12a Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期三, 27 十月 2021 13:16:19 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into satoken --- ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java | 73 +++++++++++++++++++++++++----------- 1 files changed, 50 insertions(+), 23 deletions(-) diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java index c3cdc94..6200634 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java @@ -1,5 +1,14 @@ package com.ruoyi.framework.config; +import cn.dev33.satoken.interceptor.SaAnnotationInterceptor; +import cn.dev33.satoken.interceptor.SaRouteInterceptor; +import cn.dev33.satoken.router.SaRouter; +import cn.dev33.satoken.stp.StpUtil; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.framework.config.properties.SecurityProperties; +import com.ruoyi.framework.Interceptor.PlusWebInvokeTimeInterceptor; +import com.yomahub.tlog.web.interceptor.TLogWebInterceptor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -9,54 +18,72 @@ import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; -import com.ruoyi.common.config.RuoYiConfig; -import com.ruoyi.common.constant.Constants; -import com.ruoyi.framework.interceptor.RepeatSubmitInterceptor; + +import java.util.Arrays; +import java.util.Collections; /** * 閫氱敤閰嶇疆 * - * @author ruoyi + * @author Lion Li */ @Configuration -public class ResourcesConfig implements WebMvcConfigurer -{ - @Autowired - private RepeatSubmitInterceptor repeatSubmitInterceptor; +public class ResourcesConfig implements WebMvcConfigurer { + @Autowired + private SecurityProperties securityProperties; + + // 娉ㄥ唽sa-token鐨勬嫤鎴櫒 @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) - { - /** 鏈湴鏂囦欢涓婁紶璺緞 */ - registry.addResourceHandler(Constants.RESOURCE_PREFIX + "/**").addResourceLocations("file:" + RuoYiConfig.getProfile() + "/"); + public void addInterceptors(InterceptorRegistry registry) { + // 鍏ㄥ眬閾捐矾璺熻釜鎷︽埅鍣� + registry.addInterceptor(new TLogWebInterceptor()); + // 鍏ㄥ眬璁块棶鎬ц兘鎷︽埅 + registry.addInterceptor(new PlusWebInvokeTimeInterceptor()); + // 娉ㄥ唽璺敱鎷︽埅鍣紝鑷畾涔夐獙璇佽鍒� + registry.addInterceptor(new SaRouteInterceptor((request, response, handler) -> { + // 鐧诲綍楠岃瘉 -- 鎺掗櫎澶氫釜璺緞 + SaRouter + // 鑾峰彇鎵�鏈夌殑 + .match(Collections.singletonList("/**")) + // 鎺掗櫎涓嬩笉闇�瑕佹嫤鎴殑 + .notMatch(Arrays.asList(securityProperties.getExcludes())) + .check(() -> { + Long userId = SecurityUtils.getUserId(); + if(StringUtils.isNotNull(userId) ) { + long tokenTimeout = StpUtil.getTokenTimeout(); + long tokenActivityTimeout = StpUtil.getTokenActivityTimeout(); + System.out.println("鍓╀綑鏈夋晥鏃堕棿: " + tokenTimeout); + System.out.println("涓存椂鏈夋晥鏃堕棿: " + tokenActivityTimeout); + } + }); + })).addPathPatterns("/**"); + registry.addInterceptor(new SaAnnotationInterceptor()).addPathPatterns("/**"); } - /** - * 鑷畾涔夋嫤鎴鍒� - */ @Override - public void addInterceptors(InterceptorRegistry registry) - { - registry.addInterceptor(repeatSubmitInterceptor).addPathPatterns("/**"); + public void addResourceHandlers(ResourceHandlerRegistry registry) { } /** * 璺ㄥ煙閰嶇疆 */ @Bean - public CorsFilter corsFilter() - { - UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); + public CorsFilter corsFilter() { CorsConfiguration config = new CorsConfiguration(); config.setAllowCredentials(true); // 璁剧疆璁块棶婧愬湴鍧� - config.addAllowedOriginPattern("*"); + config.addAllowedOriginPattern("*"); // 璁剧疆璁块棶婧愯姹傚ご config.addAllowedHeader("*"); // 璁剧疆璁块棶婧愯姹傛柟娉� config.addAllowedMethod("*"); - // 瀵规帴鍙i厤缃法鍩熻缃� + // 鏈夋晥鏈� 1800绉� + config.setMaxAge(1800L); + // 娣诲姞鏄犲皠璺緞锛屾嫤鎴竴鍒囪姹� + UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); source.registerCorsConfiguration("/**", config); + // 杩斿洖鏂扮殑CorsFilter return new CorsFilter(source); } } -- Gitblit v1.9.3