mirror of
https://github.com/dbeaver/cloudbeaver.git
synced 2026-09-24 16:04:36 +08:00
dbeaver/pro#2116 send user deleted event for headless session (#2659)
Co-authored-by: Elizabeth <e1izabeth.k@outlook.com>
This commit is contained in:
co-authored by
Elizabeth
parent
a84f822124
commit
e7f6cbd2fc
+1
-1
@@ -45,7 +45,7 @@ public class WSUserEventHandler<EVENT extends WSAbstractEvent> implements WSEven
|
||||
break;
|
||||
case USER_DELETED:
|
||||
if (event instanceof WSUserDeletedEvent userDeletedEvent) {
|
||||
sessionManager.closeUserSession(userDeletedEvent.getDeletedUserId());
|
||||
sessionManager.closeUserSession(userDeletedEvent);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
|
||||
+7
-2
@@ -37,6 +37,7 @@ import org.jkiss.dbeaver.Log;
|
||||
import org.jkiss.dbeaver.model.auth.SMAuthInfo;
|
||||
import org.jkiss.dbeaver.model.security.user.SMAuthPermissions;
|
||||
import org.jkiss.dbeaver.model.websocket.WSConstants;
|
||||
import org.jkiss.dbeaver.model.websocket.event.WSUserDeletedEvent;
|
||||
import org.jkiss.dbeaver.model.websocket.event.session.WSSessionStateEvent;
|
||||
import org.jkiss.utils.CommonUtils;
|
||||
|
||||
@@ -347,11 +348,15 @@ public class WebSessionManager {
|
||||
}
|
||||
}
|
||||
|
||||
public void closeUserSession(@NotNull String userId) {
|
||||
public void closeUserSession(@NotNull WSUserDeletedEvent userDeletedEvent) {
|
||||
synchronized (sessionMap) {
|
||||
for (Iterator<BaseWebSession> iterator = sessionMap.values().iterator(); iterator.hasNext(); ) {
|
||||
var session = iterator.next();
|
||||
if (CommonUtils.equalObjects(session.getUserContext().getUserId(), userId)) {
|
||||
if (CommonUtils.equalObjects(session.getUserContext().getUserId(),
|
||||
userDeletedEvent.getDeletedUserId())) {
|
||||
if (session instanceof WebHeadlessSession headlessSession) {
|
||||
headlessSession.addSessionEvent(userDeletedEvent);
|
||||
}
|
||||
iterator.remove();
|
||||
session.close();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user