
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package com.takensoft.common.util;
import jakarta.servlet.http.HttpSession;
import org.springframework.stereotype.Component;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author : takensoft
* @since : 2025.03.21
* @modification
* since | author | description
* 2025.03.21 | takensoft | 최초 등록
*
* 세션 로그인 방식의 유틸리티
*/
@Component
public class SessionUtil {
private final Map<String, HttpSession> sessionMap = new ConcurrentHashMap<>();
public synchronized void registerSession(String mbrId, HttpSession newSession) {
// 기존 세션 있으면 강제 로그아웃
HttpSession oldSession = sessionMap.get(mbrId);
if (oldSession != null && oldSession != newSession) {
oldSession.invalidate();
}
sessionMap.put(mbrId, newSession);
}
//로그아웃처리
public void removeSession(String mbrId) {
sessionMap.remove(mbrId);
}
//전체 로그아웃 처리
public void invalidateAllSessions() {
for (HttpSession session : sessionMap.values()) {
if (session != null) {
session.invalidate();
}
}
sessionMap.clear(); // 전체 초기화
}
}