001 package coldfusion.runtime; 002 003 import railo.runtime.CFMLFactoryImpl; 004 import railo.runtime.PageContext; 005 import railo.runtime.engine.ThreadLocalPageContext; 006 import railo.runtime.type.Struct; 007 import railo.runtime.type.scope.ScopeContext; 008 009 public class SessionTracker { 010 011 /* 012 * prepare to restrict access to this class 013 * private String webAdminPassword; 014 015 public SessionTracker(){ 016 throw new RuntimeException("for Security reasons we have restricted the usage of the class SessionTracker, " + 017 "you now can only use this class by defining the web admin password, when you call the constructor of this class, " + 018 "so instead of just doing the following: SessionTracker=createObject('java','coldfusion.runtime.SessionTracker') " + 019 "and then use it, you have to call the constructor with the web admin password: SessionTracker=createObject('java','coldfusion.runtime.SessionTracker').init('yourwebadminpassword')"); 020 021 022 } 023 public SessionTracker(String webAdminPassword) throws SAXException, IOException{ 024 this.webAdminPassword=webAdminPassword; 025 026 PageContext pc = ThreadLocalPageContext.get(); 027 //ConfigWebAdmin admin = ConfigWebAdmin.newInstance((ConfigWebImpl)pc.getConfig(),webAdminPassword); 028 // TODO verify password 029 }*/ 030 031 032 public static int getSessionCount(){ 033 PageContext pc = ThreadLocalPageContext.get(); 034 ScopeContext sc = ((CFMLFactoryImpl)pc.getCFMLFactory()).getScopeContext(); 035 return sc.getSessionCount(pc); 036 } 037 038 public static Struct getSessionCollection(String appName){ 039 PageContext pc = ThreadLocalPageContext.get(); 040 ScopeContext sc = ((CFMLFactoryImpl)pc.getCFMLFactory()).getScopeContext(); 041 return sc.getAllSessionScopes(appName); 042 } 043 044 /* 045 public static coldfusion.runtime.SessionScope getSession(java.lang.String,java.lang.String) 046 public static coldfusion.runtime.SessionScope getSession(java.lang.String) 047 public static coldfusion.runtime.SessionScope getSession(javax.servlet.http.HttpSession,java.lang.String) 048 public static coldfusion.runtime.SessionScope getSession(java.lang.String,java.lang.String,java.lang.String) 049 public static coldfusion.runtime.SessionScope createSession(java.lang.String,java.lang.String) 050 public static coldfusion.runtime.SessionScope createSession(java.lang.String,java.lang.String,java.lang.String) 051 public static coldfusion.runtime.SessionScope createSession(javax.servlet.http.HttpSession,java.lang.String) 052 public static void cleanUp(java.lang.String,java.lang.String,java.lang.String) 053 public static void cleanUp(javax.servlet.http.HttpSession,java.lang.String) 054 public static void cleanUp(java.lang.String,java.lang.String) 055 public static java.util.Enumeration getSessionKeys() 056 public static java.util.Hashtable getMSessionPool() 057 public static coldfusion.runtime.AppSessionCollection getSessionCollection(java.lang.String) 058 */ 059 060 061 }