mirror of https://gitee.com/topiam/eiam
pull/74/head
parent
c84bced48a
commit
17c955341d
|
@ -25,6 +25,7 @@ import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.springframework.data.redis.core.Cursor;
|
import org.springframework.data.redis.core.Cursor;
|
||||||
import org.springframework.data.redis.core.RedisCallback;
|
import org.springframework.data.redis.core.RedisCallback;
|
||||||
import org.springframework.data.redis.core.RedisOperations;
|
import org.springframework.data.redis.core.RedisOperations;
|
||||||
|
@ -109,30 +110,8 @@ public class ClusterSessionRegistryImpl<T extends org.springframework.session.Se
|
||||||
//转为实体
|
//转为实体
|
||||||
Authentication authentication = securityContext.getAuthentication();
|
Authentication authentication = securityContext.getAuthentication();
|
||||||
Object principal = authentication.getPrincipal();
|
Object principal = authentication.getPrincipal();
|
||||||
if(principal instanceof UserDetails){
|
if (principal instanceof UserDetails userDetails) {
|
||||||
UserDetails userDetails = (UserDetails) principal;
|
Session sessionDetails = getSession(session, userDetails, authentication);
|
||||||
WebAuthenticationDetails details = (WebAuthenticationDetails) authentication
|
|
||||||
.getDetails();
|
|
||||||
Session sessionDetails = new Session(userDetails.getId(), userDetails.getUsername());
|
|
||||||
//last request
|
|
||||||
Instant instant = session.getLastAccessedTime();
|
|
||||||
ZoneId zoneId = ZoneId.systemDefault();
|
|
||||||
//最后请求时间
|
|
||||||
LocalDateTime lastRequestTime = instant.atZone(zoneId).toLocalDateTime();
|
|
||||||
sessionDetails.setLastRequestTime(lastRequestTime);
|
|
||||||
//登录时间
|
|
||||||
sessionDetails.setAuthenticationTime(details.getAuthenticationTime());
|
|
||||||
//登录时间
|
|
||||||
sessionDetails
|
|
||||||
.setAuthenticationProvider(details.getAuthenticationProvider().getType());
|
|
||||||
//用户类型
|
|
||||||
sessionDetails.setUserType(userDetails.getUserType());
|
|
||||||
//地理位置
|
|
||||||
sessionDetails.setGeoLocation(details.getGeoLocation());
|
|
||||||
//用户代理
|
|
||||||
sessionDetails.setUserAgent(details.getUserAgent());
|
|
||||||
//会话ID
|
|
||||||
sessionDetails.setSessionId(session.getId());
|
|
||||||
list.add(sessionDetails);
|
list.add(sessionDetails);
|
||||||
}
|
}
|
||||||
} catch (NullPointerException ignored) {
|
} catch (NullPointerException ignored) {
|
||||||
|
@ -142,6 +121,33 @@ public class ClusterSessionRegistryImpl<T extends org.springframework.session.Se
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private static Session getSession(MapSession session, UserDetails userDetails, Authentication authentication) {
|
||||||
|
WebAuthenticationDetails details = (WebAuthenticationDetails) authentication
|
||||||
|
.getDetails();
|
||||||
|
Session sessionDetails = new Session(userDetails.getId(), userDetails.getUsername());
|
||||||
|
//last request
|
||||||
|
Instant instant = session.getLastAccessedTime();
|
||||||
|
ZoneId zoneId = ZoneId.systemDefault();
|
||||||
|
//最后请求时间
|
||||||
|
LocalDateTime lastRequestTime = instant.atZone(zoneId).toLocalDateTime();
|
||||||
|
sessionDetails.setLastRequestTime(lastRequestTime);
|
||||||
|
//登录时间
|
||||||
|
sessionDetails.setAuthenticationTime(details.getAuthenticationTime());
|
||||||
|
//登录时间
|
||||||
|
sessionDetails
|
||||||
|
.setAuthenticationProvider(details.getAuthenticationProvider().getType());
|
||||||
|
//用户类型
|
||||||
|
sessionDetails.setUserType(userDetails.getUserType());
|
||||||
|
//地理位置
|
||||||
|
sessionDetails.setGeoLocation(details.getGeoLocation());
|
||||||
|
//用户代理
|
||||||
|
sessionDetails.setUserAgent(details.getUserAgent());
|
||||||
|
//会话ID
|
||||||
|
sessionDetails.setSessionId(session.getId());
|
||||||
|
return sessionDetails;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据用户名获取session列表
|
* 根据用户名获取session列表
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue