001 002 package railo.runtime.functions.other; 003 004 005 import railo.runtime.PageContext; 006 import railo.runtime.config.ConfigImpl; 007 import railo.runtime.config.ConfigWeb; 008 import railo.runtime.config.ConfigWebImpl; 009 import railo.runtime.exp.PageException; 010 import railo.runtime.ext.function.Function; 011 import railo.runtime.op.Caster; 012 import railo.runtime.type.Collection; 013 import railo.runtime.type.KeyImpl; 014 import railo.runtime.type.Struct; 015 import railo.runtime.type.StructImpl; 016 017 /** 018 * Implements the Cold Fusion Function createGuid 019 */ 020 public final class GetRailoId implements Function { 021 022 private static final Collection.Key SECURITY_KEY = KeyImpl.intern("securityKey"); 023 private static final Collection.Key WEB = KeyImpl.intern("web"); 024 private static final Collection.Key REQUEST = KeyImpl.intern("request"); 025 026 public static Struct call(PageContext pc ) throws PageException { 027 Struct sct=new StructImpl(); 028 Struct web=new StructImpl(); 029 Struct server=new StructImpl(); 030 ConfigWeb config = pc.getConfig(); 031 032 web.set(SECURITY_KEY, ((ConfigImpl)config).getSecurityKey()); 033 web.set(KeyImpl.ID, config.getId()); 034 sct.set(WEB, web); 035 036 if(config instanceof ConfigWebImpl){ 037 ConfigWebImpl cwi = (ConfigWebImpl)config; 038 server.set(SECURITY_KEY, cwi.getServerSecurityKey()); 039 server.set(KeyImpl.ID, cwi.getServerId()); 040 sct.set(KeyImpl.SERVER, server); 041 } 042 043 sct.set(REQUEST, Caster.toString(pc.getId())); 044 return sct; 045 } 046 047 }