This commit is contained in:
zhangchenbiao
2023-06-09 10:02:00 +08:00
parent 0b0e2d3f9e
commit 7734a4fbcc
7 changed files with 21 additions and 10 deletions

View File

@@ -16,7 +16,7 @@ public class CommonConstants {
public static final String DEFAULT_AVATAR = "DefaultAvatar"; public static final String DEFAULT_AVATAR = "DefaultAvatar";
public static final int ACTION_TOKEN_EXPIRE = 14400; public static final int ACCESS_TOKEN_EXPIRE = 14400;
public static final int REFRESH_TOKEN_EXPIRE = 60*60*24*30; public static final int REFRESH_TOKEN_EXPIRE = 60*60*24*30;

View File

@@ -24,5 +24,10 @@ public class CurrentUser {
*/ */
private Boolean isAdmin; private Boolean isAdmin;
/**
* 头像
*/
private String avatar;
private SysRoleDO sysRoleDO; private SysRoleDO sysRoleDO;
} }

View File

@@ -6,7 +6,7 @@ import org.apache.commons.lang3.StringUtils;
/** /**
* *
*/ */
public class UserContext { public class CurrentUserContext {
private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>(); private static final ThreadLocal<String> contextHolder = new ThreadLocal<String>();

View File

@@ -41,7 +41,7 @@ public class LoginServiceImpl implements LoginService {
private RedisUtilPool redisUtilPool; private RedisUtilPool redisUtilPool;
@Resource @Resource
private EnterpriseUserRoleDAO enterpriseUserRoleDAO; private EnterpriseUserRoleDAO enterpriseUserRoleDAO;
@Value("${corpId:null}") @Value("${corp.id:null}")
private String corpId; private String corpId;
@Override @Override
@@ -78,13 +78,14 @@ public class LoginServiceImpl implements LoginService {
currentUser.setIsAdmin(enterpriseUser.getIsAdmin()); currentUser.setIsAdmin(enterpriseUser.getIsAdmin());
currentUser.setSysRoleDO(sysRole); currentUser.setSysRoleDO(sysRole);
currentUser.setCorpId(corpId); currentUser.setCorpId(corpId);
currentUser.setAvatar(enterpriseUser.getAvatar());
//生成令牌 //生成令牌
RandomNumberGenerator randomNumberGenerator = new SecureRandomNumberGenerator(); RandomNumberGenerator randomNumberGenerator = new SecureRandomNumberGenerator();
String token = randomNumberGenerator.nextBytes().toHex(); String token = randomNumberGenerator.nextBytes().toHex();
String refreshToken = randomNumberGenerator.nextBytes().toHex(); String refreshToken = randomNumberGenerator.nextBytes().toHex();
currentUser.setName(enterpriseUser.getName()); currentUser.setName(enterpriseUser.getName());
currentUser.setAccessToken(token); currentUser.setAccessToken(token);
redisUtilPool.setString(CommonConstants.ACCESS_TOKEN_KEY + ":" + token, JSON.toJSONString(currentUser), CommonConstants.ACTION_TOKEN_EXPIRE); redisUtilPool.setString(CommonConstants.ACCESS_TOKEN_KEY + ":" + token, JSON.toJSONString(currentUser), CommonConstants.ACCESS_TOKEN_EXPIRE);
redisUtilPool.setString(currentUser.getUserId(), token); redisUtilPool.setString(currentUser.getUserId(), token);
redisUtilPool.setString(CommonConstants.REFRESH_TOKEN_KEY+":"+refreshToken,JSON.toJSONString(refreshUser), CommonConstants.REFRESH_TOKEN_EXPIRE); redisUtilPool.setString(CommonConstants.REFRESH_TOKEN_KEY+":"+refreshToken,JSON.toJSONString(refreshUser), CommonConstants.REFRESH_TOKEN_EXPIRE);
log.info("[" + enterpriseUser.getName() + "; action_token"+ token + "; userId" + currentUser.getUserId() +"]登入系统成功"); log.info("[" + enterpriseUser.getName() + "; action_token"+ token + "; userId" + currentUser.getUserId() +"]登入系统成功");

View File

@@ -3,7 +3,7 @@ package com.cool.store.config;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.response.ResponseResult; import com.cool.store.response.ResponseResult;
import com.cool.store.context.UserContext; import com.cool.store.context.CurrentUserContext;
import com.cool.store.utils.RedisUtilPool; import com.cool.store.utils.RedisUtilPool;
import com.cool.store.context.CurrentUser; import com.cool.store.context.CurrentUser;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
@@ -74,7 +74,7 @@ public class TokenValidateFilter implements Filter {
String userStr = ""; String userStr = "";
CurrentUser currentUser = null; CurrentUser currentUser = null;
boolean isInWhiteList = excludePath(uri); boolean isInWhiteList = excludePath(uri);
String accessToken = reqs.getParameter("access_token"); String accessToken = reqs.getHeader("accessToken");
String key = "access_token:" + accessToken; String key = "access_token:" + accessToken;
if(StringUtils.isNotBlank(accessToken)){ if(StringUtils.isNotBlank(accessToken)){
userStr = redisUtilPool.getString(key); userStr = redisUtilPool.getString(key);
@@ -105,10 +105,10 @@ public class TokenValidateFilter implements Filter {
return; return;
} }
try { try {
UserContext.setUser(userStr); CurrentUserContext.setUser(userStr);
filterChain.doFilter(servletRequest, servletResponse); filterChain.doFilter(servletRequest, servletResponse);
} finally { } finally {
UserContext.removeUser(); CurrentUserContext.removeUser();
} }
} }

View File

@@ -1,9 +1,9 @@
package com.cool.store.controller; package com.cool.store.controller;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.cool.store.context.CurrentUserContext;
import com.cool.store.dto.login.FeiShuLoginDTO; import com.cool.store.dto.login.FeiShuLoginDTO;
import com.cool.store.dto.login.UserIdInfoDTO; import com.cool.store.dto.login.UserIdInfoDTO;
import com.cool.store.enums.AppTypeEnum;
import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.exception.ServiceException; import com.cool.store.exception.ServiceException;
import com.cool.store.http.ISVHttpRequest; import com.cool.store.http.ISVHttpRequest;
@@ -56,4 +56,9 @@ public class LoginController {
} }
} }
@PostMapping("/getUserInfoByToken")
public ResponseResult getUserInfoByToken(){
return ResponseResult.success(CurrentUserContext.getUser());
}
} }

View File

@@ -34,7 +34,7 @@ public class OssClientController {
private String endpoint; private String endpoint;
@Value("${oss.bucket:null}") @Value("${oss.bucket:null}")
private String bucket; private String bucket;
@Value("${corpId:null}") @Value("${corp.id:null}")
private String corpId; private String corpId;
@GetMapping("/getUploadFileConfig") @GetMapping("/getUploadFileConfig")