1 package sessionViewer.business; 2 3 import java.util.Vector ; 4 import java.util.Enumeration ; 5 import com.lutris.appserver.server.httpPresentation.servlet.*; 6 import com.lutris.appserver.server.*; 7 import com.lutris.appserver.server.session.*; 8 import com.lutris.appserver.server.session.Session; 9 import com.lutris.appserver.server.sessionContainerAdapter.*; 10 import sessionViewer.spec.*; 11 import javax.servlet.*; 12 import javax.servlet.http.*; 13 import org.mortbay.jetty.*; 14 import org.mortbay.http.*; 15 import org.mortbay.servlet.*; 16 import org.mortbay.jetty.servlet.*; 17 import java.util.Date ; 18 19 public class AppDetailSessionListImpl implements AppDetailSessionList{ 20 21 22 public Vector [] getList(String application) throws Exception { 23 24 Vector [] result = new Vector [5]; 25 result[0] = new Vector (); 26 result[1] = new Vector (); 27 result[2] = new Vector (); 28 result[3] = new Vector (); 29 result[4] = new Vector (); 30 31 Application app = null; 32 com.lutris.appserver.server.session.SessionManager sessionManager = null; 33 String sessionID=null; 34 Session session = null; 35 36 HttpContext sc=GlobalImpl.getServlet(application); 37 38 try{ 39 Servlet s=null; 40 ServletHandler ttt=(ServletHandler)sc.getHandler(Class.forName("org.mortbay.jetty.servlet.ServletHandler")); 41 ServletHolder sss=ttt.getServletHolder("enhydra"); 42 try{ 43 s= sss.getServlet(); 44 }catch(Exception e){ 45 } 46 if (s!=null){ 47 app = ((HttpPresentationServlet)s).getApplication(); 48 49 sessionManager = app.getSessionManager(); 50 51 if ((sessionManager instanceof ContainerAdapterSessionManager) || (sessionManager instanceof JmxContainerAdapterSessionManager)) 52 { 53 AbstractSessionManager manager=(AbstractSessionManager)((ServletHandler)(sc.getHandler(Class.forName("org.mortbay.jetty.servlet.ServletHandler")))).getSessionManager(); 54 java.util.Map ses= manager.getSessionMap(); 55 java.util.Set keys=ses.keySet(); 56 Object [] keysId=keys.toArray(); 57 try{ 58 for(int i=0;i<keysId.length;i++) 59 { 60 com.lutris.appserver.server.session.Session es=null; 61 HttpSession httpsession=null; 62 httpsession=(HttpSession)ses.get((String )keysId[i]); 63 es=(com.lutris.appserver.server.session.Session)httpsession.getAttribute("session"); 64 try { 65 result[0].addElement((String )keysId[i]); 66 }catch (Exception e){ 67 result[0].addElement("Couldn't get Enhydra Session ID !"); 68 } 69 if (httpsession!=null){ 70 manageEnhydraData(es,result); 71 manageTime(httpsession,result); 72 }else { 73 result[1].addElement("Couldn't get Enhydra Session User!"); 74 result[2].addElement("Couldn't get SessionData!"); 75 result[3].addElement("Couldn't get session creation time!"); 76 result[4].addElement("Couldn't get session last access time!"); 77 } 78 } 80 } catch (Exception ex){ 81 System.out.println("Couldn't get number of active sessions for "+application+" servlet!"); 82 83 } 84 }else{ 85 try{ 86 Enumeration sessionKeys = sessionManager.getSessionKeys(); 87 88 while (sessionKeys.hasMoreElements()) { 89 sessionID = (String ) sessionKeys.nextElement(); 90 91 if (sessionManager.sessionExists(sessionID)){ 92 result[0].addElement(sessionID); 93 session = sessionManager.getSession(Thread.currentThread(),sessionID); 94 95 if (session!=null){ 96 97 manageEnhydraData(session,result); 98 manageTime(session.getHttpSession(),result); 99 100 }else { 101 result[1].addElement("Couldn't get Enhydra Session User!"); 102 result[2].addElement("Couldn't get SessionData!"); 103 result[3].addElement("Couldn't get session creation time!"); 104 result[4].addElement("Couldn't get session last access time!"); 105 } 106 }else { 107 result[0].addElement("Couldn't get SessionID!"); 108 result[1].addElement("Couldn't get Enhydra Session User!"); 109 result[2].addElement("Couldn't get SessionData!"); 110 result[3].addElement("Couldn't get session creation time!"); 111 result[4].addElement("Couldn't get session last access time!"); 112 } 113 114 115 } 117 } catch (SessionException ex){ 118 System.out.println("Couldn't get number of active sessions for "+application+" servlet!"); 119 120 } 121 122 123 } 125 126 }else{ try{ 128 HashSessionManager manager=(HashSessionManager)((ServletHandler)(sc.getHandler(Class.forName("org.mortbay.jetty.servlet.ServletHandler")))).getSessionManager(); 129 java.util.Map ses= manager.getSessionMap(); 130 java.util.Set keys=ses.keySet(); 131 Object [] keysId=keys.toArray(); 132 HttpSession httpsession=null; 133 134 for(int i=0;i<keysId.length;i++) 135 { 136 httpsession=(HttpSession)ses.get((String )keysId[i]); 137 try{ 138 result[0].addElement((String )keysId[i]); 139 }catch (Exception e){ 140 result[0].addElement("Couldn't get Session ID !"); 141 } 142 result[1].addElement("Couldn't get Enhydra Session User!"); 143 result[2].addElement("Couldn't get SessionData!"); 144 manageTime(httpsession,result); 145 } 146 } catch (Exception ex){ 147 System.out.println("Couldn't get number of active sessions for "+application+" servlet!"); 148 149 } 150 } 151 152 153 }catch(Exception e){ 154 155 System.out.println("Couldn't acess to servlet :"+application+" !"); 156 157 } 158 return result; 159 } 160 161 private void manageTime(HttpSession httpsession,Vector [] result){ 162 163 try { 164 Date d = new Date (httpsession.getCreationTime()); 165 result[3].addElement( d.toString()); 166 }catch (Exception e){ 167 result[3].addElement("Couldn't get session creation time!"); 168 } 169 try { 170 Date d = new Date (httpsession.getLastAccessedTime()); 171 result[4].addElement( d.toString()); 172 }catch (Exception e){ 173 result[4].addElement("Couldn't get session last access time!"); 174 } 175 176 } 177 178 179 private void manageEnhydraData(Session session,Vector [] result){ 180 try { 181 result[1].addElement(session.getUser().getName()); 182 }catch (Exception e){ 183 result[1].addElement("Couldn't get Enhydra Session User!"); 184 } 185 try { 186 result[2].addElement(session.getSessionData().toString()); 187 }catch (Exception e){ 188 result[2].addElement("Couldn't get SessionData!"); 189 } 190 191 192 } 193 194 } 195 196
| Popular Tags
|