1 /* $Id: SessionServiceLocal.java 94 2008-12-18 11:07:17Z dobashi $
\r
2 * 作成日: 2006/01/20 14:29:33
\r
5 package com.lavans.luz2.http.session;
\r
7 import java.util.Collections;
\r
8 import java.util.Enumeration;
\r
9 import java.util.HashMap;
\r
10 import java.util.Map;
\r
12 import javax.servlet.http.HttpSession;
\r
14 import org.apache.commons.logging.Log;
\r
15 import org.apache.commons.logging.LogFactory;
\r
18 * SessionServiceApクラス。
\r
20 * This is generated by lamen.
\r
22 public class SessionServiceLocal{
\r
24 private static Log logger = LogFactory.getLog(SessionServiceLocal.class.getName());
\r
27 private static SessionServiceLocal instance = null;
\r
29 /** セッションを格納するMap */
\r
30 private Map<String, HttpSession> sessionMap = Collections.synchronizedMap(new HashMap<String, HttpSession>());
\r
34 * Singletonのため呼び出し不可。
\r
36 protected SessionServiceLocal(){
\r
44 public static SessionServiceLocal getInstance(){
\r
46 instance = new SessionServiceLocal();
\r
54 * 要求されたsessionIdが存在しないならnullを返す。
\r
56 @SuppressWarnings("unchecked")
\r
57 public Map<String, Object> getRemoteSessionAttribute(String sessionId){
\r
58 logger.debug("SessionServiceLocal#getRemoteSessionAttribute("+ sessionId +")");
\r
59 HttpSession session = sessionMap.remove(sessionId);
\r
60 // 要求されたsessionIdが存在しないならnullを返す。
\r
61 if(session == null){
\r
62 //logger.log("is not exist:"+ sessionId);
\r
67 Enumeration<String> attrNames = session.getAttributeNames();
\r
69 Map<String, Object> attr = Collections.synchronizedMap(new HashMap<String, Object>());
\r
70 while(attrNames.hasMoreElements()){
\r
71 String attrName = attrNames.nextElement();
\r
72 attr.put(attrName, session.getAttribute(attrName));
\r
75 }catch (Exception e) {
\r
76 // sessionが無効な場合はgetAttributeNames()に失敗する。
\r
83 * セッションをこのサービスに登録する。
\r
86 public void setSession(HttpSession session){
\r
87 logger.debug("set session:"+ session.getId());
\r
88 sessionMap.put(session.getId(), session);
\r
96 public boolean exists(String sessionId){
\r
97 return sessionMap.containsKey(sessionId);
\r
103 public Boolean invalidate(String sessionId){
\r
104 HttpSession session = sessionMap.get(sessionId);
\r
106 // logger.log(logLevel,"invalid sessionId invalidate():"+ sessionId);
\r
107 return Boolean.FALSE;
\r
109 session.invalidate();
\r
110 logger.debug("remove:"+ sessionId);
\r
111 sessionMap.remove(sessionId);
\r
112 return Boolean.TRUE;
\r