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    }