From a2f23bc97d133bcf7b950cd269eda577be4c0cac Mon Sep 17 00:00:00 2001
From: chenjiantian <214228265@qq.com>
Date: 星期一, 17 一月 2022 17:57:44 +0800
Subject: [PATCH] token优化

---
 sandu-common/src/main/java/com/sandu/common/redis/online/OnlineUserService.java |  226 ++++++++++++++++++++++++++++----------------------------
 1 files changed, 113 insertions(+), 113 deletions(-)

diff --git a/sandu-common/src/main/java/com/sandu/common/redis/online/OnlineUserService.java b/sandu-common/src/main/java/com/sandu/common/redis/online/OnlineUserService.java
index 220c181..3a5f287 100644
--- a/sandu-common/src/main/java/com/sandu/common/redis/online/OnlineUserService.java
+++ b/sandu-common/src/main/java/com/sandu/common/redis/online/OnlineUserService.java
@@ -1,115 +1,115 @@
-package com.sandu.common.redis.online;
-
-import cn.hutool.extra.servlet.ServletUtil;
-import cn.hutool.http.useragent.UserAgent;
-import cn.hutool.http.useragent.UserAgentInfo;
-import cn.hutool.http.useragent.UserAgentUtil;
-import com.baomidou.mybatisplus.core.toolkit.StringUtils;
-import com.sandu.common.redis.RedisService;
-import com.sandu.common.security.config.SecurityProperties;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.security.core.userdetails.UserDetails;
-
-import javax.servlet.http.HttpServletRequest;
-import java.time.LocalDateTime;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Optional;
-import java.util.Set;
-
-/**
- * @author chenjiantian
- * @date 2021/8/6 16:26
- * 鍦ㄧ嚎鐢ㄦ埛鏈嶅姟绫�
- * 鍦� BaseRedisConfig 娉ㄥ叆
- */
-@Slf4j
-public class OnlineUserService {
-
-    private final SecurityProperties properties;
-    private final RedisService redisService;
-
-    public OnlineUserService(SecurityProperties properties, RedisService redisService) {
-        this.properties = properties;
-        this.redisService = redisService;
-    }
-
-    /**
-     * 淇濆瓨鍦ㄧ嚎鐢ㄦ埛淇℃伅
-     */
-    public void save(UserDetails userDetails, String token, Long userId,HttpServletRequest request) {
-        String ip = ServletUtil.getClientIP(request);
-        UserAgent userAgent = UserAgentUtil.parse(request.getHeader("User-Agent"));
-        String browser = Optional.ofNullable(userAgent).map(UserAgent::getBrowser).map(UserAgentInfo::getName).orElse("");
-        OnlineUser onlineUser = new OnlineUser(userId,userDetails.getUsername(), token, ip, browser, LocalDateTime.now());
-//        redisService.set(properties.getOnlineKey() + token, onlineUser, properties.getTokenValidityInSeconds() / 1000);
-        redisService.set(properties.getOnlineKey() + userDetails.getUsername(), onlineUser);
-    }
-
-    /**
-     * 鏌ヨ鍏ㄩ儴鏁版嵁
-     *
-     * @param filter
-     * @return
-     */
-    public List<OnlineUser> getAll(String filter) {
-        Set<String> keys = redisService.keys(properties.getOnlineKey() + "*");
-
-        List<OnlineUser> onlineUsers = new ArrayList<>();
-        for (String key : keys) {
-            OnlineUser onlineUser = (OnlineUser) redisService.get(key);
-            if (StringUtils.isNotBlank(filter)) {
-                if (onlineUser.toString().contains(filter)) {
-                    onlineUsers.add(onlineUser);
-                }
-            } else {
-                onlineUsers.add(onlineUser);
-            }
-        }
-        onlineUsers.sort((o1, o2) -> o2.getLoginTime().compareTo(o1.getLoginTime()));
-        return onlineUsers;
-    }
-
-    private boolean kickOut(String token) throws Exception {
-        token = properties.getOnlineKey() + token;
-        return redisService.del(token);
-    }
-
-    public OnlineUser getOne(String key) {
-        return (OnlineUser) redisService.get(key);
-    }
-
-    /**
-     * 妫�娴嬬敤鎴锋槸鍚﹀湪涔嬪墠宸茬粡鐧诲綍锛屽凡缁忕櫥褰曡涪涓嬬嚎
-     *
-     * @param userName 鐢ㄦ埛鍚�
-     */
-    public void checkLoginOnUser(String userName, String ignoreToken) {
-//        List<OnlineUser> onlineUsers = getAll(userName);
-//        if (onlineUsers == null || onlineUsers.isEmpty()) {
+//package com.sandu.common.redis.online;
+//
+//import cn.hutool.extra.servlet.ServletUtil;
+//import cn.hutool.http.useragent.UserAgent;
+//import cn.hutool.http.useragent.UserAgentInfo;
+//import cn.hutool.http.useragent.UserAgentUtil;
+//import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+//import com.sandu.common.redis.RedisService;
+//import com.sandu.common.security.config.SecurityProperties;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.security.core.userdetails.UserDetails;
+//
+//import javax.servlet.http.HttpServletRequest;
+//import java.time.LocalDateTime;
+//import java.util.ArrayList;
+//import java.util.List;
+//import java.util.Optional;
+//import java.util.Set;
+//
+///**
+// * @author chenjiantian
+// * @date 2021/8/6 16:26
+// * 鍦ㄧ嚎鐢ㄦ埛鏈嶅姟绫�
+// * 鍦� BaseRedisConfig 娉ㄥ叆
+// */
+//@Slf4j
+//public class OnlineUserService {
+//
+//    private final SecurityProperties properties;
+//    private final RedisService redisService;
+//
+//    public OnlineUserService(SecurityProperties properties, RedisService redisService) {
+//        this.properties = properties;
+//        this.redisService = redisService;
+//    }
+//
+//    /**
+//     * 淇濆瓨鍦ㄧ嚎鐢ㄦ埛淇℃伅
+//     */
+//    public void save(UserDetails userDetails, String token, Long userId,HttpServletRequest request) {
+//        String ip = ServletUtil.getClientIP(request);
+//        UserAgent userAgent = UserAgentUtil.parse(request.getHeader("User-Agent"));
+//        String browser = Optional.ofNullable(userAgent).map(UserAgent::getBrowser).map(UserAgentInfo::getName).orElse("");
+//        OnlineUser onlineUser = new OnlineUser(userId,userDetails.getUsername(), token, ip, browser, LocalDateTime.now());
+////        redisService.set(properties.getOnlineKey() + token, onlineUser, properties.getTokenValidityInSeconds() / 1000);
+//        redisService.set(properties.getOnlineKey() + userDetails.getUsername(), onlineUser);
+//    }
+//
+//    /**
+//     * 鏌ヨ鍏ㄩ儴鏁版嵁
+//     *
+//     * @param filter
+//     * @return
+//     */
+//    public List<OnlineUser> getAll(String filter) {
+//        Set<String> keys = redisService.keys(properties.getOnlineKey() + "*");
+//
+//        List<OnlineUser> onlineUsers = new ArrayList<>();
+//        for (String key : keys) {
+//            OnlineUser onlineUser = (OnlineUser) redisService.get(key);
+//            if (StringUtils.isNotBlank(filter)) {
+//                if (onlineUser.toString().contains(filter)) {
+//                    onlineUsers.add(onlineUser);
+//                }
+//            } else {
+//                onlineUsers.add(onlineUser);
+//            }
+//        }
+//        onlineUsers.sort((o1, o2) -> o2.getLoginTime().compareTo(o1.getLoginTime()));
+//        return onlineUsers;
+//    }
+//
+//    private boolean kickOut(String token) throws Exception {
+//        token = properties.getOnlineKey() + token;
+//        return redisService.del(token);
+//    }
+//
+//    public OnlineUser getOne(String key) {
+//        return (OnlineUser) redisService.get(key);
+//    }
+//
+//    /**
+//     * 妫�娴嬬敤鎴锋槸鍚﹀湪涔嬪墠宸茬粡鐧诲綍锛屽凡缁忕櫥褰曡涪涓嬬嚎
+//     *
+//     * @param userName 鐢ㄦ埛鍚�
+//     */
+//    public void checkLoginOnUser(String userName, String ignoreToken) {
+////        List<OnlineUser> onlineUsers = getAll(userName);
+////        if (onlineUsers == null || onlineUsers.isEmpty()) {
+////            return;
+////        }
+//        OnlineUser onlineUser = getOne(properties.getOnlineKey() + userName);
+//        if(onlineUser == null){
 //            return;
 //        }
-        OnlineUser onlineUser = getOne(properties.getOnlineKey() + userName);
-        if(onlineUser == null){
-            return;
-        }
-//        for (OnlineUser onlineUser : onlineUsers) {
-            if (onlineUser.getUserName().equals(userName)) {
-                try {
-                    String token = onlineUser.getToken();
-                    if (StringUtils.isNotBlank(ignoreToken) && !ignoreToken.equals(token)) {
-                        this.kickOut(token);
-                    } else if (StringUtils.isBlank(ignoreToken)) {
-                        this.kickOut(token);
-                    }
-                } catch (Exception e) {
-                    log.error("checkUser is error", e);
-                }
-            }
-//        }
-    }
-
-    public void updateOne(OnlineUser onlineUser) {
-        redisService.set(properties.getOnlineKey() + onlineUser.getUserName(), onlineUser);
-    }
-}
+////        for (OnlineUser onlineUser : onlineUsers) {
+//            if (onlineUser.getUserName().equals(userName)) {
+//                try {
+//                    String token = onlineUser.getToken();
+//                    if (StringUtils.isNotBlank(ignoreToken) && !ignoreToken.equals(token)) {
+//                        this.kickOut(token);
+//                    } else if (StringUtils.isBlank(ignoreToken)) {
+//                        this.kickOut(token);
+//                    }
+//                } catch (Exception e) {
+//                    log.error("checkUser is error", e);
+//                }
+//            }
+////        }
+//    }
+//
+//    public void updateOne(OnlineUser onlineUser) {
+//        redisService.set(properties.getOnlineKey() + onlineUser.getUserName(), onlineUser);
+//    }
+//}

--
Gitblit v1.9.3