|
@@ -46,7 +46,10 @@ public class SecurityConfig implements WebMvcConfigurer {
|
|
|
*/
|
|
*/
|
|
|
@Override
|
|
@Override
|
|
|
public void addInterceptors(@NonNull InterceptorRegistry registry) {
|
|
public void addInterceptors(@NonNull InterceptorRegistry registry) {
|
|
|
- // 注册路由拦截器,自定义验证规则
|
|
|
|
|
|
|
+ // 获取SSE路径配置
|
|
|
|
|
+ String ssePath = SpringUtils.getProperty("sse.path", String.class, "/resource/sse");
|
|
|
|
|
+
|
|
|
|
|
+ // 注册路由拦截器,自定义验证规则
|
|
|
registry.addInterceptor(new SaInterceptor(handler -> {
|
|
registry.addInterceptor(new SaInterceptor(handler -> {
|
|
|
AllUrlHandler allUrlHandler = SpringUtils.getBean(AllUrlHandler.class);
|
|
AllUrlHandler allUrlHandler = SpringUtils.getBean(AllUrlHandler.class);
|
|
|
// 登录验证 -- 排除多个路径
|
|
// 登录验证 -- 排除多个路径
|
|
@@ -66,7 +69,7 @@ public class SecurityConfig implements WebMvcConfigurer {
|
|
|
throw new SseException(e.getMessage(), e.getCode());
|
|
throw new SseException(e.getMessage(), e.getCode());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 检查 header 与 param 里的 clientid 与 token 里的是否一致
|
|
// 检查 header 与 param 里的 clientid 与 token 里的是否一致
|
|
|
String headerCid = Objects.requireNonNull(request).getHeader(LoginHelper.CLIENT_KEY);
|
|
String headerCid = Objects.requireNonNull(request).getHeader(LoginHelper.CLIENT_KEY);
|
|
|
String paramCid = ServletUtils.getParameter(LoginHelper.CLIENT_KEY);
|
|
String paramCid = ServletUtils.getParameter(LoginHelper.CLIENT_KEY);
|
|
@@ -76,17 +79,19 @@ public class SecurityConfig implements WebMvcConfigurer {
|
|
|
throw NotLoginException.newInstance(StpUtil.getLoginType(), "-100", "客户端ID与Token不匹配",
|
|
throw NotLoginException.newInstance(StpUtil.getLoginType(), "-100", "客户端ID与Token不匹配",
|
|
|
StpUtil.getTokenValue());
|
|
StpUtil.getTokenValue());
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
// 有效率影响 用于临时测试
|
|
// 有效率影响 用于临时测试
|
|
|
// if (log.isDebugEnabled()) {
|
|
// if (log.isDebugEnabled()) {
|
|
|
// log.info("剩余有效时间: {}", StpUtil.getTokenTimeout());
|
|
// log.info("剩余有效时间: {}", StpUtil.getTokenTimeout());
|
|
|
// log.info("临时有效时间: {}", StpUtil.getTokenActivityTimeout());
|
|
// log.info("临时有效时间: {}", StpUtil.getTokenActivityTimeout());
|
|
|
// }
|
|
// }
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
});
|
|
});
|
|
|
})).addPathPatterns("/**")
|
|
})).addPathPatterns("/**")
|
|
|
// 排除不需要拦截的路径
|
|
// 排除不需要拦截的路径
|
|
|
- .excludePathPatterns(Objects.requireNonNull(securityProperties.getExcludes()));
|
|
|
|
|
|
|
+ .excludePathPatterns(Objects.requireNonNull(securityProperties.getExcludes()))
|
|
|
|
|
+ // 排除SSE路径,避免SaToken在异步上下文中出现上下文未初始化问题
|
|
|
|
|
+ .excludePathPatterns(ssePath);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
/**
|