mirror of
https://gitee.com/dromara/MaxKey.git
synced 2026-05-23 22:08:40 +08:00
SessionManager and UI Fix
This commit is contained in:
@@ -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 .");
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -40,11 +40,11 @@ maxkey.server.persistence =0
|
||||
#identity none, Kafka ,RocketMQ
|
||||
maxkey.server.message.queue =${SERVER_MESSAGE_QUEUE:none}
|
||||
|
||||
maxkey.session.timeout =${SERVER_SESSION_TIMEOUT:1800}
|
||||
maxkey.session.timeout =${SERVER_SESSION_TIMEOUT:600}
|
||||
|
||||
maxkey.auth.jwt.issuer =${maxkey.server.uri}
|
||||
|
||||
maxkey.auth.jwt.expires =900
|
||||
#default 900
|
||||
maxkey.auth.jwt.expires =300
|
||||
maxkey.auth.jwt.secret =7heM-14BtxjyKPuH3ITIm7q2-ps5MuBirWCsrrdbzzSAOuSPrbQYiaJ54AeA0uH2XdkYy3hHAkTFIsieGkyqxOJZ_dQzrCbaYISH9rhUZAKYx8tUY0wkE4ArOC6LqHDJarR6UIcMsARakK9U4dhoOPO1cj74XytemI-w6ACYfzRUn_Rn4e-CQMcnD1C56oNEukwalf06xVgXl41h6K8IBEzLVod58y_VfvFn-NGWpNG0fy_Qxng6dg8Dgva2DobvzMN2eejHGLGB-x809MvC4zbG7CKNVlcrzMYDt2Gt2sOVDrt2l9YqJNfgaLFjrOEVw5cuXemGkX1MvHj6TAsbLg
|
||||
maxkey.auth.jwt.refresh.secret =7heM-14BtxjyKPuH3ITIm7q2-ps5MuBirWCsrrdbzzSAOuSPrbQYiaJ54AeA0uH2XdkYy3hHAkTFIsieGkyqxOJZ_dQzrCbaYISH9rhUZAKYx8tUY0wkE4ArOC6LqHDJarR6UIcMsARakK9U4dhoOPO1cj74XytemI-w6ACYfzRUn_Rn4e-CQMcnD1C56oNEukwalf06xVgXl41h6K8IBEzLVod58y_VfvFn-NGWpNG0fy_Qxng6dg8Dgva2DobvzMN2eejHGLGB-x809MvC4zbG7CKNVlcrzMYDt2Gt2sOVDrt2l9YqJNfgaLFjrOEVw5cuXemGkX1MvHj6TAsbLg
|
||||
############################################################################
|
||||
|
||||
Reference in New Issue
Block a user