diff --git a/ad-platform-common/ad-platform-common-auth/src/main/java/com/baiye/security/TokenProvider.java b/ad-platform-common/ad-platform-common-auth/src/main/java/com/baiye/security/TokenProvider.java index 66386913..5967f115 100644 --- a/ad-platform-common/ad-platform-common-auth/src/main/java/com/baiye/security/TokenProvider.java +++ b/ad-platform-common/ad-platform-common-auth/src/main/java/com/baiye/security/TokenProvider.java @@ -112,6 +112,7 @@ public class TokenProvider implements InitializingBean { if (differ <= properties.getDetect()) { long renew = time + properties.getRenew(); redisUtils.expire(properties.getOnlineKey() + token, renew, TimeUnit.MILLISECONDS); + redisUtils.expire(token, renew, TimeUnit.MILLISECONDS); return true; } return false; diff --git a/ad-platform-pojo/src/main/java/com/baiye/model/dto/OnlineUserDto.java b/ad-platform-pojo/src/main/java/com/baiye/model/dto/OnlineUserDto.java index 5792cd18..1cabf679 100644 --- a/ad-platform-pojo/src/main/java/com/baiye/model/dto/OnlineUserDto.java +++ b/ad-platform-pojo/src/main/java/com/baiye/model/dto/OnlineUserDto.java @@ -19,7 +19,6 @@ import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import java.io.Serializable; import java.util.Date; /** @@ -31,6 +30,7 @@ import java.util.Date; @NoArgsConstructor public class OnlineUserDto { + /** * 用户名 */ diff --git a/manage/ad-platform-management/src/main/java/com/baiye/modules/security/service/OnlineUserService.java b/manage/ad-platform-management/src/main/java/com/baiye/modules/security/service/OnlineUserService.java index f6e6ffbe..e5914bab 100644 --- a/manage/ad-platform-management/src/main/java/com/baiye/modules/security/service/OnlineUserService.java +++ b/manage/ad-platform-management/src/main/java/com/baiye/modules/security/service/OnlineUserService.java @@ -49,11 +49,12 @@ public class OnlineUserService { /** * 保存在线用户信息 + * * @param jwtUserDto / - * @param token / - * @param request / + * @param token / + * @param request / */ - public void save(JwtUserDto jwtUserDto, String token, HttpServletRequest request){ + public void save(JwtUserDto jwtUserDto, String token, HttpServletRequest request) { String ip = StringUtils.getIp(request); String browser = StringUtils.getBrowser(request); String address = StringUtils.getCityInfo(ip); @@ -61,39 +62,41 @@ public class OnlineUserService { try { onlineUserDto = new OnlineUserDto(jwtUserDto.getUsername(), jwtUserDto.getUser().getNickName(), "", browser, ip, address, EncryptUtils.desEncrypt(token), new Date()); } catch (Exception e) { - log.error(e.getMessage(),e); + log.error(e.getMessage(), e); } - redisUtils.set(properties.getOnlineKey() + token, onlineUserDto, properties.getTokenValidityInSeconds()/1000); - redisUtils.set(token, jwtUserDto.getUser().getId(), properties.getTokenValidityInSeconds()/1000); + redisUtils.set(properties.getOnlineKey() + token, onlineUserDto, properties.getTokenValidityInSeconds() / 1000); + redisUtils.set(token, jwtUserDto.getUser().getId(), properties.getTokenValidityInSeconds() / 1000); } /** * 查询全部数据 - * @param filter / + * + * @param filter / * @param pageable / * @return / */ - public Map getAll(String filter, Pageable pageable){ + public Map getAll(String filter, Pageable pageable) { List onlineUserDtos = getAll(filter); return PageUtil.toPage( - PageUtil.toPage(pageable.getPageNumber(),pageable.getPageSize(), onlineUserDtos), + PageUtil.toPage(pageable.getPageNumber(), pageable.getPageSize(), onlineUserDtos), onlineUserDtos.size() ); } /** * 查询全部数据,不分页 + * * @param filter / * @return / */ - public List getAll(String filter){ + public List getAll(String filter) { List keys = redisUtils.scan(properties.getOnlineKey() + "*"); Collections.reverse(keys); List onlineUserDtos = new ArrayList<>(); for (String key : keys) { OnlineUserDto onlineUserDto = (OnlineUserDto) redisUtils.get(key); - if(StringUtils.isNotBlank(filter)){ - if(onlineUserDto.toString().contains(filter)){ + if (StringUtils.isNotBlank(filter)) { + if (onlineUserDto.toString().contains(filter)) { onlineUserDtos.add(onlineUserDto); } } else { @@ -106,15 +109,17 @@ public class OnlineUserService { /** * 踢出用户 + * * @param key / */ - public void kickOut(String key){ + public void kickOut(String key) { key = properties.getOnlineKey() + key; redisUtils.del(key); } /** * 退出登录 + * * @param token / */ public void logout(String token) { @@ -124,14 +129,15 @@ public class OnlineUserService { /** * 导出 - * @param all / + * + * @param all / * @param response / * @throws IOException / */ public void download(List all, HttpServletResponse response) throws IOException { List> list = new ArrayList<>(); for (OnlineUserDto user : all) { - Map map = new LinkedHashMap<>(); + Map map = new LinkedHashMap<>(); map.put("用户名", user.getUserName()); map.put("部门", user.getDept()); map.put("登录IP", user.getIp()); @@ -145,6 +151,7 @@ public class OnlineUserService { /** * 查询用户 + * * @param key / * @return / */ @@ -154,24 +161,25 @@ public class OnlineUserService { /** * 检测用户是否在之前已经登录,已经登录踢下线 + * * @param userName 用户名 */ - public void checkLoginOnUser(String userName, String igoreToken){ + public void checkLoginOnUser(String userName, String igoreToken) { List onlineUserDtos = getAll(userName); - if(onlineUserDtos ==null || onlineUserDtos.isEmpty()){ + if (onlineUserDtos == null || onlineUserDtos.isEmpty()) { return; } - for(OnlineUserDto onlineUserDto : onlineUserDtos){ - if(onlineUserDto.getUserName().equals(userName)){ + for (OnlineUserDto onlineUserDto : onlineUserDtos) { + if (onlineUserDto.getUserName().equals(userName)) { try { - String token =EncryptUtils.desDecrypt(onlineUserDto.getKey()); - if(StringUtils.isNotBlank(igoreToken)&&!igoreToken.equals(token)){ + String token = EncryptUtils.desDecrypt(onlineUserDto.getKey()); + if (StringUtils.isNotBlank(igoreToken) && !igoreToken.equals(token)) { this.kickOut(token); - }else if(StringUtils.isBlank(igoreToken)){ + } else if (StringUtils.isBlank(igoreToken)) { this.kickOut(token); } } catch (Exception e) { - log.error("checkUser is error",e); + log.error("checkUser is error", e); } } } @@ -179,6 +187,7 @@ public class OnlineUserService { /** * 根据用户名强退用户 + * * @param username / */ @Async @@ -186,7 +195,7 @@ public class OnlineUserService { List onlineUsers = getAll(username); for (OnlineUserDto onlineUser : onlineUsers) { if (onlineUser.getUserName().equals(username)) { - String token =EncryptUtils.desDecrypt(onlineUser.getKey()); + String token = EncryptUtils.desDecrypt(onlineUser.getKey()); kickOut(token); } } diff --git a/manage/ad-platform-management/src/main/java/com/baiye/socket/WebSocketServer.java b/manage/ad-platform-management/src/main/java/com/baiye/socket/WebSocketServer.java index 1dcbdb06..6f5c8f78 100644 --- a/manage/ad-platform-management/src/main/java/com/baiye/socket/WebSocketServer.java +++ b/manage/ad-platform-management/src/main/java/com/baiye/socket/WebSocketServer.java @@ -135,6 +135,7 @@ public class WebSocketServer { break; case DefaultNumberConstants.FIVE_NUMBER: Long userId = getUserId(session); + log.info("================= userId as {} ====================", userId); if (userId != null) { messageNotificationService.create (message, userId);