|
@@ -290,6 +290,7 @@ public class LoginController {
|
|
|
@GetMapping("/logout")
|
|
|
public ResponseEntity logout(HttpServletRequest request, HttpServletResponse response) {
|
|
|
Authentication auth = SecurityUtils.getAuthentication ( );
|
|
|
+ UserDTO currentUserDTO = SecurityUtils.getCurrentUserDTO();
|
|
|
if ( auth != null ) {
|
|
|
userApi.clearCache ( SecurityUtils.getCurrentUserDTO ( ) );
|
|
|
String token = TokenProvider.resolveToken ( request );
|
|
@@ -297,6 +298,13 @@ public class LoginController {
|
|
|
redisUtils.delete ( CacheNames.USER_CACHE_ONLINE_USERS, token );
|
|
|
new SecurityContextLogoutHandler ( ).logout ( request, response, auth );
|
|
|
}
|
|
|
+ //查询系统中是否存在相同登录名的其他登录信息。若存在,则将其他信息同时进行下线处理
|
|
|
+ List<UserDTO> onLineUserList = SpringUtil.getBean(IUserApi.class).getOnLineUserList(currentUserDTO.getLoginName(), "");
|
|
|
+ for (UserDTO userDTO : onLineUserList) {
|
|
|
+ userApi.clearCache ( userDTO );
|
|
|
+ redisUtils.delete ( CacheNames.USER_CACHE_TOKEN, userDTO.getToken() );
|
|
|
+ redisUtils.delete ( CacheNames.USER_CACHE_ONLINE_USERS, userDTO.getToken() );
|
|
|
+ }
|
|
|
return ResponseEntity.ok ( "退出成功" );
|
|
|
}
|
|
|
|