<%-- * Licensed Materials - Property of IBM * * 5724-U18 * * (C) COPYRIGHT IBM CORP. 2006,2017 All Rights Reserved. * * US Government Users Restricted Rights - Use, duplication or * disclosure restricted by GSA ADP Schedule Contract with * IBM Corp. --%> <%@ page contentType="text/html;charset=UTF-8" session="true" import="java.util.*,psdi.webclient.system.runtime.WebClientRuntime, psdi.util.MXSession,psdi.server.MXServer,java.util.StringTokenizer,psdi.util.MXSession,psdi.util.logging.MXLoggerFactory,psdi.util.logging.MXLogger"%> <% MXLogger myLogger = MXLoggerFactory.getLogger("maximo.report.directprint"); response.setHeader("Cache-Control","no-cache"); //HTTP 1.1 response.setHeader("Pragma","no-cache"); //HTTP 1.0 response.setDateHeader ("Expires", 0); // Proxy request MXSession mxsession= (MXSession)request.getSession().getAttribute("MXSession"); if (!mxsession.isConnected()) { //Do something which will show error on the page like redirect to login String url = WebClientRuntime.getMaximoRequestContextURL(request)+"/ui/login"; response.sendRedirect(url); return; } String ibmdirectprintkey=(String) request.getParameter("ibmdirectprintkey"); myLogger.debug("printjobspooler.jsp ibmdirectprintkey="+ibmdirectprintkey+" SessionId="+request.getSession().getId()); if(ibmdirectprintkey==null) ibmdirectprintkey=""; Hashtable msDocs = new Hashtable(); String message = (String)session.getAttribute("printmessage"+ibmdirectprintkey); String printwait = (String)session.getAttribute("printwait"+ibmdirectprintkey); String baseUrl=(String) request.getParameter("baseUrl"); if(baseUrl==null) baseUrl=""; else { String baseUrlDefault=WebClientRuntime.getMaximoBaseURL(request); if(!baseUrl.equalsIgnoreCase(baseUrlDefault)) { String baseUrlNoPort=baseUrl.replace(":80",""); baseUrlNoPort=baseUrlNoPort.replace(":443",""); if(!baseUrlNoPort.equalsIgnoreCase(baseUrlDefault)) { boolean needBaseUrls=false; String baseUrls=MXServer.getMXServer().getProperty("mxe.report.birt.proxyurlredirect"); if(baseUrls==null || baseUrls.isEmpty()) needBaseUrls=true; else { boolean foundMatch=false; StringTokenizer st=new StringTokenizer(baseUrls,","); while(st.hasMoreTokens()) { String nextUrl=st.nextToken().trim(); if(baseUrl.equalsIgnoreCase(nextUrl)) { foundMatch=true; break; } } if(!foundMatch) needBaseUrls=true; } if(needBaseUrls) { String errmsg="A proxy server has been detected which modifies the url. "+ "Contact the system administrator to add "+baseUrl+" to the property mxe.report.birt.proxyurlredirect. "+ "You can have multiple values separated by commas."; myLogger.error(errmsg); response.getWriter().write(errmsg); return; } } } } long timeInMillis=System.currentTimeMillis(); String timeInMillisStr=timeInMillis+""; timeInMillisStr=timeInMillisStr.substring(timeInMillisStr.length()-8); String tokenurlPart= (String)session.getAttribute("tokenurlPart"+ibmdirectprintkey); String tokenurl= baseUrl+request.getContextPath()+tokenurlPart; String urlWithCsrfAndUISession=tokenurl.replace("doaction=22", "")+"&ibmdirectprintkey="+ibmdirectprintkey+"&dummyparam="+timeInMillisStr; %>
<%=message%>