mirror of
https://gitee.com/dromara/RuoYi-Vue-Plus.git
synced 2026-09-20 10:13:28 +08:00
Pre Merge pull request !466 from RebelTinker/dev
This commit is contained in:
commit
37d9736dff
@ -43,7 +43,7 @@ spring:
|
||||
driverClassName: com.mysql.cj.jdbc.Driver
|
||||
# jdbc 所有参数配置参考 https://lionli.blog.csdn.net/article/details/122018562
|
||||
# rewriteBatchedStatements=true 批处理优化 大幅提升批量插入更新删除性能(对数据库有性能损耗 使用批量操作应考虑性能问题)
|
||||
url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true
|
||||
url: jdbc:mysql://127.0.0.1:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true
|
||||
username: root
|
||||
password: root
|
||||
# 从库数据源
|
||||
@ -92,11 +92,11 @@ spring:
|
||||
spring.data:
|
||||
redis:
|
||||
# 地址
|
||||
host: localhost
|
||||
host: 127.0.0.1
|
||||
# 端口,默认为6379
|
||||
port: 6379
|
||||
# 数据库索引
|
||||
database: 0
|
||||
database: 9
|
||||
# 密码(如没有密码请注释掉)
|
||||
# password:
|
||||
# 连接超时时间
|
||||
|
||||
@ -7,6 +7,7 @@ import cn.dev33.satoken.stp.StpLogic;
|
||||
import org.dromara.common.core.factory.YmlPropertySourceFactory;
|
||||
import org.dromara.common.satoken.core.dao.PlusSaTokenDao;
|
||||
import org.dromara.common.satoken.core.service.SaPermissionImpl;
|
||||
import org.dromara.common.satoken.handler.UserInfoThreadHandler;
|
||||
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.PropertySource;
|
||||
@ -42,4 +43,9 @@ public class SaTokenConfig {
|
||||
return new PlusSaTokenDao();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public UserInfoThreadHandler userInfoThreadHandler() {
|
||||
return new UserInfoThreadHandler();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,27 @@
|
||||
package org.dromara.common.satoken.config;
|
||||
|
||||
import org.dromara.common.satoken.interceptor.LoginInterceptor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.AutoConfiguration;
|
||||
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||
|
||||
/**
|
||||
* @Author RebelTinker
|
||||
* @Date 2023/12/25 09:43
|
||||
**/
|
||||
@AutoConfiguration
|
||||
public class WebMvcConfig implements WebMvcConfigurer {
|
||||
|
||||
@Autowired
|
||||
private LoginInterceptor loginInterceptor;
|
||||
|
||||
|
||||
//注册拦截器
|
||||
@Override
|
||||
public void addInterceptors(InterceptorRegistry registry) {
|
||||
|
||||
registry.addInterceptor(loginInterceptor).addPathPatterns("/**");
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,40 @@
|
||||
package org.dromara.common.satoken.handler;
|
||||
|
||||
import org.dromara.common.core.domain.model.LoginUser;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
|
||||
/**
|
||||
* @Author RebelTinker
|
||||
* @Date 2023/12/25 09:37
|
||||
**/
|
||||
public class UserInfoThreadHandler {
|
||||
|
||||
private static final ThreadLocal<LoginUser> userThreadLocal = new ThreadLocal<>();
|
||||
|
||||
/**
|
||||
* 添加当前登录用户方法
|
||||
*/
|
||||
public static void addCurrentUser() {
|
||||
|
||||
//登录对象从这里获取然后set进ThreadLocal
|
||||
LoginUser loginUser = LoginHelper.getLoginUser();
|
||||
|
||||
userThreadLocal.set(loginUser);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户信息
|
||||
*
|
||||
* @return LoginUser
|
||||
*/
|
||||
public static LoginUser getCurrentUser() {
|
||||
return userThreadLocal.get();
|
||||
}
|
||||
|
||||
/**
|
||||
* 防止内存泄漏
|
||||
*/
|
||||
public static void remove() {
|
||||
userThreadLocal.remove();
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
package org.dromara.common.satoken.interceptor;
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import org.dromara.common.satoken.handler.UserInfoThreadHandler;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.servlet.HandlerInterceptor;
|
||||
|
||||
/**
|
||||
* @Author RebelTinker
|
||||
* @Date 2023/12/25 09:42
|
||||
**/
|
||||
@Component
|
||||
public class LoginInterceptor implements HandlerInterceptor {
|
||||
@Override
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||
UserInfoThreadHandler.addCurrentUser();
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 避免内存泄露
|
||||
*/
|
||||
@Override
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
|
||||
UserInfoThreadHandler.remove();
|
||||
}
|
||||
}
|
||||
@ -1 +1,2 @@
|
||||
org.dromara.common.satoken.config.SaTokenConfig
|
||||
org.dromara.common.satoken.config.WebMvcConfig
|
||||
|
||||
Loading…
Reference in New Issue
Block a user