블로그 이미지
개발자의 조건은 어떤것도아닌 3일은 기본으로 날샐수있는 체력과 3일을 안씻어도 찝찝합을 못느끼는 것과 라면을 먹어도 탈없는 위입니다.
DefineJAVA

공지사항

최근에 받은 트랙백

글 보관함

calendar

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
크리에이티브 커먼즈 라이선스
Creative Commons License

기본적으로 HttpSessionListener를 구현(Implements)하여 세션이 생성 되는 시점과 세션이 사라지는 시점을 가지고 올 수 있다.

세션을 생성 되는 시점에 DB나 특정 Static 변수에 세션 정보를 저장 하고 세션이 종료될 때 그 세션 정보를 지워 줌으로써

해당 세션의 중복 로그인을 막을 수 있으며 현재 접속중이 접속자 정보를 가지고 올 수 있다.

package com.moainfo.http.session;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

public class MoaSessionListener implements HttpSessionListener
{
 public void sessionCreated(HttpSessionEvent se)
 {
  HttpSession session = se.getSession();
  System.out.println("Create session : " + session.getId());
 }
 public void sessionDestroyed(HttpSessionEvent se)
 {
  HttpSession session = se.getSession();
  System.out.println("Close session : " + session.getId());
  
 }
}

저작자 표시 비영리 변경 금지

세션 강제 종료(강제 로그 아웃)

2011/05/05 13:46 | Posted by DefineJAVA
크리에이티브 커먼즈 라이선스
Creative Commons License

Servlet 버젼이 올라 감으로 HttpSession에서 HttpSessionContext을 가져오는 메소드인 getSessionContext를 사용 못하게 되었다.
실제 사용을 하면 객체을 반환을 하기는 하지만 객체 안에 세션은 비워져 있다.

문서를 뒤져 보니 보안 관계상 사용을 못한다고 어쩌고 적혀 있기는 하는데.....그래도 관리자가 강제 로그아웃 시키거나 세션을 지워줘야 할 경우가 있을 것 같아서 고민끝에 편법을 하나 생각 해 냈다.(Jeus에서는 된다는 말도 있음)

HttpSessionContext 사용이 가능 하다면 HttpSessionContext .getSession(아이디)를 사용하여 세션 객체를 반환받고 HttpSession.invalidate() 메소드를 호출 하면된다.

HttpSessionContext 사용이 불가능 하다면 아래 소스와 같이 jsessionId값을 뒤쪽에 붙여 보내에 해당 세션으로 연결 시켜서 로그 아웃을 실행 하면 된다.


call.jsp

String jsessionId = "288B29804635D51357A52F6CCF25617B";
BufferedReader in = null;
String address = "http://me:8080/cms/logout.jsp;jsessionid="+ jsessionId;
try
{
 URL url = new URL(address);
 in = new BufferedReader(new InputStreamReader(url.openStream()));
 String line = in.readLine();
 in.close();
} catch (Exception e) {
 System.out.println("-.-;;");
}
in = null;

logout.jsp
System.out.println(session.getId());
 session.invalidate();

이 편법은 Session Hijacking이라는 다른 사람의 세션을 훔치는 방법을 응용한 방법이다.

약간의 문제가 있을 수도 있지만 우선은 이렇게 처리했다.

jsessionId값을 모르면 아무 소용이 없기 때문에 HttpSessionListener를 구현하여 세션이 생성되고 세션을 종료 되는 시점을 체크 하여 특정 저장 공간에 세션아이디 값과 아이피등 여러 정보를 저장 해 놓고 사용 하면된다.
저작자 표시 비영리 변경 금지

2011년 5월 현재 나는......

2011/05/03 13:28 | Posted by DefineJAVA
크리에이티브 커먼즈 라이선스
Creative Commons License

이름: 이성민

소속: (주) 모아정보기술, 호남대학교 인터넷 소프트웨어 공학과




나이: 1986년생 26세

프로젝트 경험
1. KT메가패스 도우미 프로젝트(분석, 설계, 개발)
2. 조선대 기계공학과 홈페이지 및 교수 홈페이지 개발(분석, 설계, 개발)
3. 도곡 농협 쇼핑몰 제작(분석, 설계, 개발)
4. 쥬니어 도서관(분석, 설계, 개발)
5. 주식회사 Intelink(분석, 설계, 개발)
6. 학교기업 Geotech(분석, 설계, 개발)
7. 영광 원자력 발전소 1발전소, 2발전소 사내 인트라넷 개발(설계, 개발)
8. 영광 원자력 발전소 예약관리 시스템 개발(분석, 설계, 개발)
9. 영광 원자력 발전소 재석등 관리 시스템 개발(분석, 설계, 개발)
10. 영광 원자력 발전소 사외, 사택 홈페이지 개발(분석, 설계, 개발)
11. 영광 원자력 발전소 웹프로그램 보안 사업(분석, 설계, 개발)
12. 영광 원자력 발전소 3발전소 사내 인트라넷 개발(분석, 설계, 개발)
13. 영광 원자력 발전소 붕산부식관리 시스템 개발(분석, 설계, 개발)
14. 영광 원자력 발전소 화학물관리 시스템 개발(분석, 설계, 개발)
15. 영광 원자력 발전소 법정관리 시스템 개발(분석, 설계, 개발)
16. 삼성 코닝 정밀 유리 CEMS 프로젝트(설계, 개발)
17. 영광 원자력 발전소 운전현황 관리 시스템 개발(분석, 설계, 개발)
18. 영광 원자력 발전소 공기구 관리 시스템(분석, 설계, 개발)
19. 전라남도 교육정보원 JNEI 홈페이지(분석, 설계, 개발)
20. 전라남도 교육정보원 인터넷방송 홈페이지(분석, 설계, 개발)
21. 영광원자력 발전소 수질종합관리시스템 재개발(분석, 설계, 개발)
22. 영광원자력 발전소 정보기기 반출입 관리 시스템 개발(분석, 설계)
23. 영광원자력 발전소 통합행정지원 시스템(분석, 설계, 개발)
24. 영광원자력 발전소 물품 관리 시스템 개발(분석, 설계, 개발)
25. 영광원자력 발전소 통합작업관리 스케쥴링 시스템 개발(분석, 설계, 개발)
26. 전라남도 교육 정보원 인터넷미디어센터(분석, 설계)
27. (주) 구태현아카데미 교육시스템 개발(분석, 설계)



저작자 표시 비영리 변경 금지
이 장소를 Daum지도에서 확인해보세요.
광주광역시 북구 문화동 | 청호나이스렌탈(대) 각화동대리점/렌탈센타
도움말 Daum 지도

'Define Me > Profile' 카테고리의 다른 글

2011년 5월 현재 나는......  (0) 2011/05/03
저는요~  (1) 2007/02/12
이전 1 다음