/** * Copyright 2000-2004 by CreamTec, LLC. All rights reserved. */ package creamtec.webcream.examples; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import creamtec.core.TraceMgr; import creamtec.webcream.core.*; import creamtec.webcream.RouterRequestFilter; import creamtec.webcream.servlet.AppDesc; /** * Demonstrates an implementation of RouterRequestFilter interface. * See documentation for more information. */ public class RouterRequestFilterExample implements RouterRequestFilter { public RouterRequestFilterExample() { TraceMgr.trace(this, "Filter loaded"); } public boolean preProcessRequest(HttpServletRequest request, HttpServletResponse response) { TraceMgr.trace(this, "Pre-processing request"); // Nothing to do, so just return to continue processing return true; } public boolean postProcessRequest(HttpServletRequest request, HttpServletResponse response, AppDesc appDesc, ClientAgentRemote agent, HttpRequestData requestData) throws Exception { TraceMgr.trace(this, "Post-processing request"); // Obtain client IP address from the HTTP request and save that information in // WebCream's request data String ipAddress = request.getRemoteAddr(); TraceMgr.trace(this, "IP address = " + ipAddress, 6); requestData.getParams().put("custom.ip_address", ipAddress); return true; } public boolean processResponse(HttpServletRequest request, HttpServletResponse response, AppDesc appDesc, ClientAgentRemote agent, HttpRequestData requestData, HttpResponseData responseData) throws Exception { if (responseData != null && responseData.getHtmlPage() != null) { if (responseData.getHtmlPage().indexOf("