feat:修改档案归档信息

dev
wangxy 3 weeks ago
parent c6d7ab6d8f
commit 2317788ec1

@ -1,131 +1,131 @@
/* */ package com.archive.framework.shiro.session package com.archive.framework.shiro.session
; ;
/* */
/* */ import com.archive.framework.manager.AsyncManager; import com.archive.framework.manager.AsyncManager;
/* */ import com.archive.framework.manager.factory.AsyncFactory; import com.archive.framework.manager.factory.AsyncFactory;
/* */ import com.archive.framework.shiro.session.OnlineSessionFactory; import com.archive.framework.shiro.session.OnlineSessionFactory;
/* */ import com.archive.project.monitor.online.domain.OnlineSession; import com.archive.project.monitor.online.domain.OnlineSession;
/* */ import com.archive.project.monitor.online.domain.UserOnline; import com.archive.project.monitor.online.domain.UserOnline;
/* */ import com.archive.project.monitor.online.service.IUserOnlineService; import com.archive.project.monitor.online.service.IUserOnlineService;f
/* */ import java.io.Serializable; import java.io.Serializable;
/* */ import java.util.Date; import java.util.Date;
/* */ import org.apache.shiro.session.Session; import org.apache.shiro.session.Session;
/* */ import org.apache.shiro.session.UnknownSessionException; import org.apache.shiro.session.UnknownSessionException;
/* */ import org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO; import org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO;
/* */ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
/* */ import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */ public class OnlineSessionDAO public class OnlineSessionDAO
/* */ extends EnterpriseCacheSessionDAO extends EnterpriseCacheSessionDAO
/* */ { {
/* */ @Value("${shiro.session.dbSyncPeriod}") @Value("${shiro.session.dbSyncPeriod}")
/* */ private int dbSyncPeriod; private int dbSyncPeriod;
/* 32 */ private static final String LAST_SYNC_DB_TIMESTAMP = com.archive.framework.shiro.session.OnlineSessionDAO.class.getName() + "LAST_SYNC_DB_TIMESTAMP"; private static final String LAST_SYNC_DB_TIMESTAMP = com.archive.framework.shiro.session.OnlineSessionDAO.class.getName() + "LAST_SYNC_DB_TIMESTAMP";
/* */
/* */
/* */
/* */
/* */ @Autowired @Autowired
/* */ private IUserOnlineService onlineService; private IUserOnlineService onlineService;
/* */
/* */
/* */
/* */ @Autowired @Autowired
/* */ private OnlineSessionFactory onlineSessionFactory; private OnlineSessionFactory onlineSessionFactory;
/* */
/* */
/* */
/* */
/* */ public OnlineSessionDAO() {} public OnlineSessionDAO() {}
/* */
/* */
/* */
/* */
/* */ public OnlineSessionDAO(long expireTime) {} public OnlineSessionDAO(long expireTime) {}
/* */
/* */
/* */
/* */
/* */ protected Session doReadSession(Serializable sessionId) { protected Session doReadSession(Serializable sessionId) {
/* 59 */ UserOnline userOnline = this.onlineService.selectOnlineById(String.valueOf(sessionId)); UserOnline userOnline = this.onlineService.selectOnlineById(String.valueOf(sessionId));
/* 60 */ if (userOnline == null) if (userOnline == null)
/* */ { {
/* 62 */ return null; return null;
/* */ } }
/* 64 */ return this.onlineSessionFactory.createSession(userOnline); return this.onlineSessionFactory.createSession(userOnline);
/* */ } }
/* */
/* */
/* */
/* */ public void update(Session session) throws UnknownSessionException { public void update(Session session) throws UnknownSessionException {
/* 70 */ super.update(session); super.update(session);
/* */ } }
/* */
/* */
/* */
/* */
/* */
/* */ public void syncToDb(OnlineSession onlineSession) { public void syncToDb(OnlineSession onlineSession) {
/* 78 */ Date lastSyncTimestamp = (Date)onlineSession.getAttribute(LAST_SYNC_DB_TIMESTAMP); Date lastSyncTimestamp = (Date)onlineSession.getAttribute(LAST_SYNC_DB_TIMESTAMP);
/* 79 */ if (lastSyncTimestamp != null) { if (lastSyncTimestamp != null) {
/* */
/* 81 */ boolean needSync = true; boolean needSync = true;
/* 82 */ long deltaTime = onlineSession.getLastAccessTime().getTime() - lastSyncTimestamp.getTime(); long deltaTime = onlineSession.getLastAccessTime().getTime() - lastSyncTimestamp.getTime();
/* 83 */ if (deltaTime < (this.dbSyncPeriod * 60 * 1000)) if (deltaTime < (this.dbSyncPeriod * 60 * 1000))
/* */ { {
/* */
/* 86 */ needSync = false; needSync = false;
/* */ } }
/* */
/* 89 */ boolean isGuest = (onlineSession.getUserId() == null || onlineSession.getUserId().longValue() == 0L); boolean isGuest = (onlineSession.getUserId() == null || onlineSession.getUserId().longValue() == 0L);
/* */
/* */
/* 92 */ if (!isGuest && onlineSession.isAttributeChanged()) if (!isGuest && onlineSession.isAttributeChanged())
/* */ { {
/* 94 */ needSync = true; needSync = true;
/* */ } }
/* */
/* 97 */ if (!needSync) { if (!needSync) {
/* */ return; return;
/* */ } }
/* */ } }
/* */
/* */
/* 103 */ onlineSession.setAttribute(LAST_SYNC_DB_TIMESTAMP, onlineSession.getLastAccessTime()); onlineSession.setAttribute(LAST_SYNC_DB_TIMESTAMP, onlineSession.getLastAccessTime());
/* */
/* 105 */ if (onlineSession.isAttributeChanged()) if (onlineSession.isAttributeChanged())
/* */ { {
/* 107 */ onlineSession.resetAttributeChanged(); onlineSession.resetAttributeChanged();
/* */ } }
/* 109 */ AsyncManager.me().execute(AsyncFactory.syncSessionToDb(onlineSession)); AsyncManager.me().execute(AsyncFactory.syncSessionToDb(onlineSession));
/* */ } }
/* */
/* */
/* */
/* */
/* */
/* */
/* */ protected void doDelete(Session session) { protected void doDelete(Session session) {
/* 118 */ OnlineSession onlineSession = (OnlineSession)session; OnlineSession onlineSession = (OnlineSession)session;
/* 119 */ if (null == onlineSession) { if (null == onlineSession) {
/* */ return; return;
/* */ } }
/* */
/* 123 */ onlineSession.setStatus(OnlineSession.OnlineStatus.off_line); onlineSession.setStatus(OnlineSession.OnlineStatus.off_line);
/* 124 */ this.onlineService.deleteOnlineById(String.valueOf(onlineSession.getId())); this.onlineService.deleteOnlineById(String.valueOf(onlineSession.getId()));
/* */ } }
/* */ } }
/* Location: C:\Users\Administrator\Desktop\extracted.zip!\extracted\BOOT-INF\classes\com\archive\framework\shiro\session\OnlineSessionDAO.class /* Location: C:\Users\Administrator\Desktop\extracted.zip!\extracted\BOOT-INF\classes\com\archive\framework\shiro\session\OnlineSessionDAO.class

@ -1,61 +1,61 @@
/* */ package com.archive.framework.shiro.session package com.archive.framework.shiro.session
; ;
/* */
/* */ import com.archive.common.utils.IpUtils; import com.archive.common.utils.IpUtils;
/* */ import com.archive.common.utils.ServletUtils; import com.archive.common.utils.ServletUtils;
/* */ import com.archive.common.utils.StringUtils; import com.archive.common.utils.StringUtils;
/* */ import com.archive.project.monitor.online.domain.OnlineSession; import com.archive.project.monitor.online.domain.OnlineSession;
/* */ import com.archive.project.monitor.online.domain.UserOnline; import com.archive.project.monitor.online.domain.UserOnline;
/* */ import eu.bitwalker.useragentutils.UserAgent; import eu.bitwalker.useragentutils.UserAgent;
/* */ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
/* */ import org.apache.shiro.session.Session; import org.apache.shiro.session.Session;
/* */ import org.apache.shiro.session.mgt.SessionContext; import org.apache.shiro.session.mgt.SessionContext;
/* */ import org.apache.shiro.session.mgt.SessionFactory; import org.apache.shiro.session.mgt.SessionFactory;
/* */ import org.apache.shiro.web.session.mgt.WebSessionContext; import org.apache.shiro.web.session.mgt.WebSessionContext;
/* */ import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/* */
/* */
/* */
/* */
/* */
/* */
/* */ @Component @Component
/* */ public class OnlineSessionFactory public class OnlineSessionFactory
/* */ implements SessionFactory implements SessionFactory
/* */ { {
/* */ public Session createSession(UserOnline userOnline) { public Session createSession(UserOnline userOnline) {
/* 26 */ OnlineSession onlineSession = userOnline.getSession(); OnlineSession onlineSession = userOnline.getSession();
/* 27 */ if (StringUtils.isNotNull(onlineSession) && onlineSession.getId() == null) if (StringUtils.isNotNull(onlineSession) && onlineSession.getId() == null)
/* */ { {
/* 29 */ onlineSession.setId(userOnline.getSessionId()); onlineSession.setId(userOnline.getSessionId());
/* */ } }
/* 31 */ return (Session)userOnline.getSession(); return (Session)userOnline.getSession();
/* */ } }
/* */
/* */
/* */
/* */ public Session createSession(SessionContext initData) { public Session createSession(SessionContext initData) {
/* 37 */ OnlineSession session = new OnlineSession(); OnlineSession session = new OnlineSession();
/* 38 */ if (initData != null && initData instanceof WebSessionContext) { if (initData != null && initData instanceof WebSessionContext) {
/* */
/* 40 */ WebSessionContext sessionContext = (WebSessionContext)initData; WebSessionContext sessionContext = (WebSessionContext)initData;
/* 41 */ HttpServletRequest request = (HttpServletRequest)sessionContext.getServletRequest(); HttpServletRequest request = (HttpServletRequest)sessionContext.getServletRequest();
/* 42 */ if (request != null) { if (request != null) {
/* */
/* 44 */ UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent")); UserAgent userAgent = UserAgent.parseUserAgentString(ServletUtils.getRequest().getHeader("User-Agent"));
/* */
/* 46 */ String os = userAgent.getOperatingSystem().getName(); String os = userAgent.getOperatingSystem().getName();
/* */
/* 48 */ String browser = userAgent.getBrowser().getName(); String browser = userAgent.getBrowser().getName();
/* 49 */ session.setHost(IpUtils.getIpAddr(request)); session.setHost(IpUtils.getIpAddr(request));
/* 50 */ session.setBrowser(browser); session.setBrowser(browser);
/* 51 */ session.setOs(os); session.setOs(os);
/* */ } }
/* */ } }
/* 54 */ return (Session)session; return (Session)session;
/* */ } }
/* */ } }
/* Location: C:\Users\Administrator\Desktop\extracted.zip!\extracted\BOOT-INF\classes\com\archive\framework\shiro\session\OnlineSessionFactory.class /* Location: C:\Users\Administrator\Desktop\extracted.zip!\extracted\BOOT-INF\classes\com\archive\framework\shiro\session\OnlineSessionFactory.class

Loading…
Cancel
Save