package railo.runtime.functions.other; import railo.runtime.PageContext; import railo.runtime.config.ConfigImpl; import railo.runtime.config.ConfigWeb; import railo.runtime.config.ConfigWebImpl; import railo.runtime.exp.PageException; import railo.runtime.ext.function.Function; import railo.runtime.op.Caster; import railo.runtime.type.Collection; import railo.runtime.type.KeyImpl; import railo.runtime.type.Struct; import railo.runtime.type.StructImpl; import railo.runtime.type.util.KeyConstants; /** * Implements the CFML Function createGuid */ public final class GetRailoId implements Function { private static final Collection.Key SECURITY_KEY = KeyImpl.intern("securityKey"); private static final Collection.Key ID_PRO = KeyImpl.intern("idPro"); public static Struct call(PageContext pc ) throws PageException { Struct sct=new StructImpl(); Struct web=new StructImpl(); Struct server=new StructImpl(); ConfigWeb config = pc.getConfig(); web.set(SECURITY_KEY, ((ConfigImpl)config).getSecurityKey()); web.set(KeyConstants._id, config.getId()); sct.set(KeyConstants._web, web); if(config instanceof ConfigWebImpl){ ConfigWebImpl cwi = (ConfigWebImpl)config; server.set(SECURITY_KEY, cwi.getServerSecurityKey()); server.set(KeyConstants._id, cwi.getServerId()); server.set(ID_PRO, cwi.getServerIdPro()); sct.set(KeyConstants._server, server); } sct.set(KeyConstants._request, Caster.toString(pc.getId())); return sct; } }