SessionManager and UI Fix

This commit is contained in:
MaxKey
2022-05-22 19:52:29 +08:00
parent f22e71c1ef
commit 853f45a315
52 changed files with 1168 additions and 1456 deletions

View File

@@ -46,7 +46,7 @@ public class MaxKeyMgtListenerConfig implements InitializingBean {
SessionListenerAdapter.class,
scheduler,
new ListenerParameter().add("sessionManager",sessionManager).build(),
"0 0/10 * * * ?",//10 minutes
"0 0/1 * * * ?",//10 minutes
SessionListenerAdapter.class.getSimpleName()
);
_logger.debug("Session ListenerAdapter inited .");

View File

@@ -16,9 +16,12 @@
package org.maxkey.listener;
import java.io.Serializable;
import java.util.Date;
import org.maxkey.authn.session.Session;
import org.maxkey.authn.session.SessionManager;
import org.maxkey.entity.HistoryLogin;
import org.maxkey.util.DateUtils;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
@@ -41,14 +44,32 @@ public class SessionListenerAdapter extends ListenerAdapter implements Job , S
jobStatus = JOBSTATUS.RUNNING;
try {
if(sessionManager != null) {
for (HistoryLogin onlineSession : sessionManager.querySessions()) {
if(sessionManager.get(onlineSession.getSessionId()) == null) {
int sessionCount = 0;
for (HistoryLogin login : sessionManager.querySessions()) {
Session session = sessionManager.get(login.getSessionId());
if(session == null) {
_logger.debug("user {} session {} Login at {} and TimeOut at {} ." ,
login.getUsername(),
login.getId(),
login.getLoginTime(),
DateUtils.formatDateTime(new Date())
);
sessionManager.terminate(
onlineSession.getSessionId(),
onlineSession.getUserId(),
onlineSession.getUsername());
login.getSessionId(),
login.getUserId(),
login.getUsername());
}else {
_logger.debug("user {} session {} Login at {} , Last Access at {} will Expired at {}." ,
login.getUsername(),
login.getId(),
session.getStartTimestamp(),
session.getLastAccessTime(),
session.getExpiredTime()
);
sessionCount ++ ;
}
}
_logger.debug("current session count {} ." ,sessionCount);
}
_logger.debug("finished " );
jobStatus = JOBSTATUS.FINISHED;