pull/74/head
shao1121353141 2024-01-07 22:32:43 +08:00
parent eeffe4d3de
commit c84bced48a
1 changed files with 27 additions and 24 deletions

View File

@ -108,30 +108,33 @@ public class ClusterSessionRegistryImpl<T extends org.springframework.session.Se
SecurityContext securityContext = session.getAttribute(SPRING_SECURITY_CONTEXT); SecurityContext securityContext = session.getAttribute(SPRING_SECURITY_CONTEXT);
//转为实体 //转为实体
Authentication authentication = securityContext.getAuthentication(); Authentication authentication = securityContext.getAuthentication();
UserDetails principal = (UserDetails) authentication.getPrincipal(); Object principal = authentication.getPrincipal();
WebAuthenticationDetails details = (WebAuthenticationDetails) authentication if(principal instanceof UserDetails){
.getDetails(); UserDetails userDetails = (UserDetails) principal;
Session sessionDetails = new Session(principal.getId(), principal.getUsername()); WebAuthenticationDetails details = (WebAuthenticationDetails) authentication
//last request .getDetails();
Instant instant = session.getLastAccessedTime(); Session sessionDetails = new Session(userDetails.getId(), userDetails.getUsername());
ZoneId zoneId = ZoneId.systemDefault(); //last request
//最后请求时间 Instant instant = session.getLastAccessedTime();
LocalDateTime lastRequestTime = instant.atZone(zoneId).toLocalDateTime(); ZoneId zoneId = ZoneId.systemDefault();
sessionDetails.setLastRequestTime(lastRequestTime); //最后请求时间
//登录时间 LocalDateTime lastRequestTime = instant.atZone(zoneId).toLocalDateTime();
sessionDetails.setAuthenticationTime(details.getAuthenticationTime()); sessionDetails.setLastRequestTime(lastRequestTime);
//登录时间 //登录时间
sessionDetails sessionDetails.setAuthenticationTime(details.getAuthenticationTime());
.setAuthenticationProvider(details.getAuthenticationProvider().getType()); //登录时间
//用户类型 sessionDetails
sessionDetails.setUserType(principal.getUserType()); .setAuthenticationProvider(details.getAuthenticationProvider().getType());
//地理位置 //用户类型
sessionDetails.setGeoLocation(details.getGeoLocation()); sessionDetails.setUserType(userDetails.getUserType());
//用户代理 //地理位置
sessionDetails.setUserAgent(details.getUserAgent()); sessionDetails.setGeoLocation(details.getGeoLocation());
//会话ID //用户代理
sessionDetails.setSessionId(session.getId()); sessionDetails.setUserAgent(details.getUserAgent());
list.add(sessionDetails); //会话ID
sessionDetails.setSessionId(session.getId());
list.add(sessionDetails);
}
} catch (NullPointerException ignored) { } catch (NullPointerException ignored) {
} }
} }