From 0750a66984bb12e672ce6e3bcfad12932a32fa08 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 17 Jun 2020 15:15:26 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/configurations/security/TokenFilter.java      |    5 +++--
 src/main/java/com/xcong/excoin/common/system/controller/LoginController.java |    4 ++--
 src/main/java/com/xcong/excoin/common/LoginUserUtils.java                    |   15 +++++++++++++--
 3 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/common/LoginUserUtils.java b/src/main/java/com/xcong/excoin/common/LoginUserUtils.java
index 8f2400a..117b8ff 100644
--- a/src/main/java/com/xcong/excoin/common/LoginUserUtils.java
+++ b/src/main/java/com/xcong/excoin/common/LoginUserUtils.java
@@ -1,7 +1,12 @@
 package com.xcong.excoin.common;
 
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.xcong.excoin.common.contants.AppContants;
 import com.xcong.excoin.common.exception.GlobalException;
 import com.xcong.excoin.modules.member.entity.MemberEntity;
+import com.xcong.excoin.utils.RedisUtils;
+import com.xcong.excoin.utils.SpringContextHolder;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.http.HttpRequest;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
@@ -35,8 +40,14 @@
     }
 
     public static void resetAppLoginUser(MemberEntity memberEntity) {
-        Authentication authentication = new UsernamePasswordAuthenticationToken(memberEntity, getAppLoginUserToken(), new ArrayList<>());
-        SecurityContextHolder.getContext().setAuthentication(authentication);
+        String token = getAppLoginUserToken();
+        RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class);
+        String jsonStr = redisUtils.getString(AppContants.PC_LOGIN_PREFIX + token);
+        if (StrUtil.isNotBlank(jsonStr)) {
+            redisUtils.set(AppContants.PC_LOGIN_PREFIX + token, JSONObject.toJSONString(memberEntity));
+        } else {
+            redisUtils.set(AppContants.APP_LOGIN_PREFIX + token, JSONObject.toJSONString(memberEntity));
+        }
     }
 
     /**
diff --git a/src/main/java/com/xcong/excoin/common/system/controller/LoginController.java b/src/main/java/com/xcong/excoin/common/system/controller/LoginController.java
index e2bb955..d8bfd99 100644
--- a/src/main/java/com/xcong/excoin/common/system/controller/LoginController.java
+++ b/src/main/java/com/xcong/excoin/common/system/controller/LoginController.java
@@ -90,13 +90,13 @@
                 redisUtils.del(AppContants.PC_LOGIN_PREFIX + redisUtils.getString(redisMember));
             }
         }
-        redisUtils.set(redisToken, JSONObject.toJSONString(loginUserBean), applicationProperties.getRedisExpire());
+        redisUtils.set(redisToken, JSONObject.toJSONString(loginUserBean.getMemberEntity()), applicationProperties.getRedisExpire());
         redisUtils.set(redisMember, token);
         Map<String, Object> authInfo = new HashMap<>();
         // 开启debug模式,则将加密后的token返回
         if (applicationProperties.isDebug()) {
             authInfo.put("token", token);
-            authInfo.put("rsaToken", generateAsaToken(token));
+            authInfo.put("rsaToken", AppContants.TOKEN_START_WITH + generateAsaToken(token));
             authInfo.put("user", loginUserBean);
         } else {
             authInfo.put("token", token);
diff --git a/src/main/java/com/xcong/excoin/configurations/security/TokenFilter.java b/src/main/java/com/xcong/excoin/configurations/security/TokenFilter.java
index 8b98b0b..2284d12 100644
--- a/src/main/java/com/xcong/excoin/configurations/security/TokenFilter.java
+++ b/src/main/java/com/xcong/excoin/configurations/security/TokenFilter.java
@@ -9,6 +9,7 @@
 import com.xcong.excoin.common.system.bean.LoginUserBean;
 import com.xcong.excoin.configurations.properties.ApplicationProperties;
 import com.xcong.excoin.configurations.properties.SecurityProperties;
+import com.xcong.excoin.modules.member.entity.MemberEntity;
 import com.xcong.excoin.utils.RedisUtils;
 import com.xcong.excoin.utils.SpringContextHolder;
 import lombok.extern.slf4j.Slf4j;
@@ -54,8 +55,8 @@
 
             String loginStr = (String) redisUtils.get(redisKey);
             if (StrUtil.isNotBlank(loginStr)) {
-                LoginUserBean loginUser = JSONObject.parseObject(loginStr, LoginUserBean.class);
-                Authentication authentication = new UsernamePasswordAuthenticationToken(loginUser.getMemberEntity(), token, new ArrayList<>());
+                MemberEntity loginUser = JSONObject.parseObject(loginStr, MemberEntity.class);
+                Authentication authentication = new UsernamePasswordAuthenticationToken(loginUser, token, new ArrayList<>());
                 SecurityContextHolder.getContext().setAuthentication(authentication);
                 redisUtils.expire(redisKey, 300000);
             } else {

--
Gitblit v1.9.1