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 import railo.runtime.type.util.KeyConstants; 017 018 /** 019 * Implements the CFML Function createGuid 020 */ 021 public final class GetRailoId implements Function { 022 023 private static final Collection.Key SECURITY_KEY = KeyImpl.intern("securityKey"); 024 025 public static Struct call(PageContext pc ) throws PageException { 026 Struct sct=new StructImpl(); 027 Struct web=new StructImpl(); 028 Struct server=new StructImpl(); 029 ConfigWeb config = pc.getConfig(); 030 031 web.set(SECURITY_KEY, ((ConfigImpl)config).getSecurityKey()); 032 web.set(KeyConstants._id, config.getId()); 033 sct.set(KeyConstants._web, web); 034 035 if(config instanceof ConfigWebImpl){ 036 ConfigWebImpl cwi = (ConfigWebImpl)config; 037 server.set(SECURITY_KEY, cwi.getServerSecurityKey()); 038 server.set(KeyConstants._id, cwi.getServerId()); 039 sct.set(KeyConstants._server, server); 040 } 041 042 sct.set(KeyConstants._request, Caster.toString(pc.getId())); 043 return sct; 044 } 045 046 }