<%@page session="false"%> <%@page import="java.net.*,java.io.*" %> <%! String[] serverUrls = { //"[,]" //For ex. (secured server): "http://myserver.mycompany.com/arcgis/rest/services,ayn2C2iPvqjeqWoXwV6rjmr43kyo23mhIPnXz2CEiMA6rVu0xR0St8gKsd0olv8a" //For ex. (non-secured server): "http://sampleserver1.arcgisonline.com/arcgis/rest/services" "http://sampleserver1.arcgisonline.com/arcgis/rest/services", "http://sampleserver2.arcgisonline.com/arcgis/rest/services", "http://ais3:6080/arcgis/rest/services", "http://gouf:6080/arcgis/rest/services", //NOTE - no comma after the last item "http://sazabiii:6080/arcgis/rest/services" //NOTE - no comma after the last item }; %> <% try { String reqUrl = request.getQueryString(); boolean allowed = false; String token = null; for(String surl : serverUrls) { String[] stokens = surl.split("\\s*,\\s*"); if(reqUrl.toLowerCase().contains(stokens[0].toLowerCase())) { allowed = true; if(stokens.length >= 2 && stokens[1].length() > 0) token = stokens[1]; break; } } if(!allowed) { response.setStatus(403); return; } if(token != null) { reqUrl = reqUrl + (reqUrl.indexOf("?") > -1 ? "&" : "?") + "token=" + token; } URL url = new URL(reqUrl); HttpURLConnection con = (HttpURLConnection)url.openConnection(); con.setDoOutput(true); con.setRequestMethod(request.getMethod()); int clength = request.getContentLength(); if(clength > 0) { con.setDoInput(true); InputStream istream = request.getInputStream(); OutputStream os = con.getOutputStream(); final int length = 5000; byte[] bytes = new byte[length]; int bytesRead = 0; while ((bytesRead = istream.read(bytes, 0, length)) > 0) { os.write(bytes, 0, bytesRead); } } out.clear(); out = pageContext.pushBody(); OutputStream ostream = response.getOutputStream(); response.setContentType(con.getContentType()); InputStream in = con.getInputStream(); final int length = 5000; byte[] bytes = new byte[length]; int bytesRead = 0; while ((bytesRead = in.read(bytes, 0, length)) > 0) { ostream.write(bytes, 0, bytesRead); } } catch(Exception e) { response.setStatus(500); } %>