고객이 다른 브라우저에서 동일한 사용자가 로그인 할 때 자동으로 사용자 로그 아웃 기능을 구현하길 원합니다. 예 : Firefox 브라우저를 통한 사용자 로그인이 성공적으로 끝나면 IE 세션이 중단됩니다. 추가 작업은 로그인 페이지로 리디렉션됩니다.다른 브라우저에서 동일한 사용자가 로그인했을 때 사용자가 강제로 로그 아웃하는 방법
아이디어가 있으십니까?
고객이 다른 브라우저에서 동일한 사용자가 로그인 할 때 자동으로 사용자 로그 아웃 기능을 구현하길 원합니다. 예 : Firefox 브라우저를 통한 사용자 로그인이 성공적으로 끝나면 IE 세션이 중단됩니다. 추가 작업은 로그인 페이지로 리디렉션됩니다.다른 브라우저에서 동일한 사용자가 로그인했을 때 사용자가 강제로 로그 아웃하는 방법
아이디어가 있으십니까?
당신은 JSESSIONID (따라서 세션 개체)와 사용자 이름을 매핑하는 세션 리스너를 구현할 수
public class SessionListener implements HttpSessionListener{
@Override
public void sessionCreated(HttpSessionEvent se) {
se.getSession().getId();
applicationScopeMap.put(se.getSession().getId(), se.getSession());
}
...
다음의 사용자 로그는 또한 세션 ID와 함께 자신의 이름을지도하고 있는지 확인해야 할 때 그는 이미지도에서 세션을 가지고 있으며 그것을 무효화했습니다 :
public String doLogin(){
String sessionId = userSessionMap.get(username);
if(sessionId != null){
applicationScopeMap.get(sessionId).invalidate();
}else{
userSessionMap.put(username, FacesContext.getCurrentInstance().getExternalContext().getSessionId(true));
}
...
}
이 줄을 설명해 주시겠습니까? applicationScopeMap.put (se.getSession(). getId(), se.getSession()); –
applicationScopeMap은 세션 ID를 키로 사용하여 세션을 지정하는 데 사용할 Map
사용자 ID로 입력되고 세션 ID로 평가되는 싱글 톤/정적 세션 맵에 액세스하는 요청 필터를 구현할 수 있습니다. 현재 요청 사용자의 세션 ID가 저장된 요청의 사용자 ID와 일치하지 않으면 강제로 로그 아웃합니다. –