반응형
<%@page language = "java" pageEncoding = "utf-8" import = "java.io.*,java.net.URL,java.net.URLConnection,org.apache.commons.io.IOUtils" %>
<%
String GET_URL = request.getParameter("url");

URL tempURL = new URL(GET_URL);
byte[] bytes = null;
URLConnection conn = tempURL.openConnection();
bytes = IOUtils.toByteArray(conn.getInputStream());

System.out.println("bytes Length: " + bytes.length);

String THIS_URL = request.getRequestURL().toString();
String PROXY_URL = THIS_URL + "?url=";

System.out.println("GET_URL : " + GET_URL);
System.out.println("THIS_URL : " + THIS_URL);
System.out.println("PROXY_URL : " + PROXY_URL);

String contentType = conn.getContentType();
response.setContentType(contentType);

System.out.println("contentType: " + contentType);

if (GET_URL.contains("cur") || contentType.contains("image")) {
  out.clear();
  out = pageContext.pushBody();

  byte[] data = bytes;
  response.setHeader("Content-length", Integer.toString(data.length));
  response.setHeader("Accept-Ranges", "bytes");
  response.setHeader("Access-Control-Allow-Origin", "*");
  response.setContentType("text/plain;charset=UTF-8");

  response.getOutputStream().write(data, 0, data.length);
  response.getOutputStream().flush();

}
else {

  String output = new String(bytes);
  System.out.println("contentLength: " + output.length());

  output = output.replace("http://static.naver.net", PROXY_URL + "http://static.naver.net");
  output = output.replace("https://ssl.pstatic.net/static", PROXY_URL + "https://ssl.pstatic.net/static");
  output = output.replace("return\"http://\"+this.prefix+\"onetile\"", "return\"" + PROXY_URL + "http://\"+this.prefix+\"onetile\"");

  output = output.replace("_parse:function(t){var e=t.split", "_parse:function(t){t='" + GET_URL + "';var e=t.split");

  String temp = THIS_URL.replace(request.getScheme() + "://", "") + "?url=" + request.getScheme() + "://openapi.map.naver.com";
  output = output.replace("_sync:function(t,e){i.forEach(t,function(t){", "_sync:function(t,e){i.forEach(t,function(t){t=t.replace(location.hostname,'" + temp + "');");

  output = output.replace("&uri", "%26uri");
  output = output.replace("&useStyleMap", "%26useStyleMap");
  output = output.replace("&time", "%26time");
  output = output.replace("(F?\"https\":\"http\")", "(F?\"" + PROXY_URL + "https\":\"" + PROXY_URL + "http\")");
  output = output.replace("&\")+s.callbackname", "%26\")+s.callbackname");

  output = output.replace("!u.test(e)", "u.test(e)");

  output = output.replace("e=\"\";", "e=\"\";e=decodeURIComponent(e);e=e.split('url')[1];");
  output = output.replace("http://rts1.map.naver.net", PROXY_URL + "http://rts1.map.naver.net");

  //output = output.replace("removeDOMListener:function(t,n,o){", "removeDOMListener:function(t,n,o){console.log(t);console.log(i);");

  out.print(output);
}

System.out.println("");
%>
반응형

+ Recent posts