From e23c8975e6bb0934cb5db46a94d0f83c9739d9ab Mon Sep 17 00:00:00 2001 From: 935090232@qq.com <ak473600000> Date: Sun, 20 Mar 2022 16:33:17 +0800 Subject: [PATCH] 重构:套餐项目 --- zq-erp/src/main/java/com/matrix/system/common/interceptor/ApiUserLoginInterceptor.java | 44 +++++++++++++++++++++++++++----------------- 1 files changed, 27 insertions(+), 17 deletions(-) diff --git a/zq-erp/src/main/java/com/matrix/system/common/interceptor/ApiUserLoginInterceptor.java b/zq-erp/src/main/java/com/matrix/system/common/interceptor/ApiUserLoginInterceptor.java index f783a97..cb284a7 100644 --- a/zq-erp/src/main/java/com/matrix/system/common/interceptor/ApiUserLoginInterceptor.java +++ b/zq-erp/src/main/java/com/matrix/system/common/interceptor/ApiUserLoginInterceptor.java @@ -2,14 +2,14 @@ import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.databind.ObjectMapper; -import com.matrix.component.redis.RedisClient; -import com.matrix.component.redis.RedisUserLoginUtils; import com.matrix.core.constance.MatrixConstance; import com.matrix.core.pojo.AjaxResult; import com.matrix.core.tools.LogUtil; import com.matrix.core.tools.RSAUtils; import com.matrix.core.tools.StringUtils; import com.matrix.system.common.bean.SysUsers; +import com.matrix.system.common.dao.SysUsersDao; +import com.matrix.system.common.init.LocalCache; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; @@ -18,6 +18,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.Objects; /** * @author wzy @@ -26,18 +27,28 @@ @Component public class ApiUserLoginInterceptor implements HandlerInterceptor { - @Autowired - private RedisClient redisClient; @Value("${login_private_key}") - private String privateKey; + private String privateKey; - private final String TOKEN_HEADER = "Authorization"; - private final String TOKEN_START_WITH = "Bearer "; + @Value("${evn}") + private String evn; + + @Autowired + private SysUsersDao sysUsersDao; + + private static final String TOKEN_HEADER = "Authorization"; + private static final String TOKEN_START_WITH = "Bearer "; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { - String token = resolveToken(request); +// if ("dev".equals(evn)) { +// SysUsers sysUsers = sysUsersDao.selectById(1022L); +// request.getSession().setAttribute(MatrixConstance.LOGIN_KEY, sysUsers); +// return true; +// } + + String token = resolveToken(request,privateKey); AjaxResult ajaxResult = new AjaxResult(); ajaxResult.setStatus(AjaxResult.STATUS_LOGIN_INVALID); @@ -50,16 +61,14 @@ return false; } - String userStr = redisClient.getCachedValue(token); - redisClient.resetExpire(token); - if (StringUtils.isBlank(userStr)) { + SysUsers sysUsers = LocalCache.get(token); + if (Objects.isNull(sysUsers)) { ajaxResult.setInfo("login time out"); response.getWriter().write(new ObjectMapper().writeValueAsString(ajaxResult)); response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); return false; } - SysUsers sysUsers = JSONObject.parseObject(userStr, SysUsers.class); request.getSession().setAttribute(MatrixConstance.LOGIN_KEY, sysUsers); return true; } @@ -80,23 +89,24 @@ * @param request * @return */ - private String resolveToken(HttpServletRequest request) { + public static String resolveToken(HttpServletRequest request,String privateKey) { String headToken = request.getHeader(TOKEN_HEADER); - StringBuffer sb = request.getRequestURL(); + String sb = request.getRequestURI(); if (StringUtils.isNotBlank(headToken) && headToken.startsWith(TOKEN_START_WITH)) { // 去掉令牌前缀 String rsaToken = headToken.replace(TOKEN_START_WITH, ""); try { - String decryptTokten = new String(RSAUtils.decryptByPrivateKey(rsaToken, privateKey)); + String decryptToken = new String(RSAUtils.decryptByPrivateKey(rsaToken, privateKey)); - String[] s = decryptTokten.split("_"); + String[] s = decryptToken.split("_"); if (s == null || s.length != 3) { return ""; } - if (!sb.toString().equals(s[2])) { + LogUtil.info("请求路径:{} -- {}", sb, s[2]); + if (!sb.equals(s[2])) { return ""; } -- Gitblit v1.9.1