|
@@ -1,200 +0,0 @@
|
|
-package com.onemap.spatial.controller;
|
|
|
|
-
|
|
|
|
-import com.onemap.common.core.utils.StringUtils;
|
|
|
|
-import com.onemap.spatial.domain.TYztZyml;
|
|
|
|
-import com.onemap.spatial.service.IProxyHandleService;
|
|
|
|
-import org.springframework.web.bind.annotation.GetMapping;
|
|
|
|
-import org.springframework.web.bind.annotation.PathVariable;
|
|
|
|
-import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
|
-import org.springframework.web.bind.annotation.RestController;
|
|
|
|
-
|
|
|
|
-import javax.annotation.Resource;
|
|
|
|
-import javax.servlet.ServletOutputStream;
|
|
|
|
-import javax.servlet.http.HttpServletRequest;
|
|
|
|
-import javax.servlet.http.HttpServletResponse;
|
|
|
|
-import java.io.IOException;
|
|
|
|
-import java.io.InputStream;
|
|
|
|
-import java.io.PrintWriter;
|
|
|
|
-import java.net.URL;
|
|
|
|
-import java.net.URLConnection;
|
|
|
|
-import java.util.Enumeration;
|
|
|
|
-import java.util.HashMap;
|
|
|
|
-import java.util.Map;
|
|
|
|
-
|
|
|
|
-//代理测试
|
|
|
|
-public class ProxyHandleControllectBak {
|
|
|
|
-
|
|
|
|
- @Resource
|
|
|
|
- private IProxyHandleService proxyHandleService;
|
|
|
|
-
|
|
|
|
- public void geoserverHandle(@PathVariable("token") String token, HttpServletRequest request, HttpServletResponse response) throws IOException {
|
|
|
|
- String fwId = proxyHandleService.proxyServerCheck(token, request, response);
|
|
|
|
- if (StringUtils.isEmpty(fwId)) {
|
|
|
|
- isCheckFull(response);
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- TYztZyml serverUrlData = proxyHandleService.proxyServerData(fwId);
|
|
|
|
- if (serverUrlData == null) {
|
|
|
|
- isCheckFull(response);
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- proxyHandleService.proxyGeoServer(serverUrlData, request, response);
|
|
|
|
- //a484b75e2ac24016a62ccbef76c8b138
|
|
|
|
- //http://192.168.60.4:9201/proxy/handle/2/siweigeoserver?service=wms&format=image%2Fpng&transparent=true&version=1.1.1&request=GetMap&styles=&layers=sanya_workspace%3ATB_CZKFBJ&bbox=111.09374999999999%2C21.093750000000004%2C112.50000000000003%2C22.5&width=256&height=256&srs=EPSG%3A4326
|
|
|
|
-
|
|
|
|
-// String url = getCompleteURL(request);
|
|
|
|
-// int len = url.indexOf("siweigeoserver");
|
|
|
|
-// String paramsurl = url.substring(len+14);
|
|
|
|
-// String serverUrl = serverUrlData.getUrl();
|
|
|
|
-// String qqurl = serverUrl + paramsurl;
|
|
|
|
-//
|
|
|
|
-// System.out.println("wz:" + url);
|
|
|
|
-// System.out.println("len:" + len);
|
|
|
|
-// System.out.println("paramsurl:" + paramsurl);
|
|
|
|
-// System.out.println("serverUrl:" + serverUrl);
|
|
|
|
-// System.out.println("qqurl:" + qqurl);
|
|
|
|
-
|
|
|
|
-// System.out.println("token:" + token);
|
|
|
|
-
|
|
|
|
-// String ipAddr = IpUtils.getIpAddr(request);
|
|
|
|
-// System.out.println("ipAddr:" + ipAddr);
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-// //请求地址
|
|
|
|
-// String url = request.getRequestURI();
|
|
|
|
-// System.out.println("url:" + url);
|
|
|
|
-//
|
|
|
|
-// int len = url.indexOf("siweigeoserver");
|
|
|
|
-// String paramsurl = url.substring(len + 14);
|
|
|
|
-// String serverUrl = serverUrlData.getUrl();
|
|
|
|
-// String qqurl = serverUrl + paramsurl;
|
|
|
|
-//
|
|
|
|
-// System.out.println("wz:" + url);
|
|
|
|
-// System.out.println("len:" + len);
|
|
|
|
-// System.out.println("paramsurl:" + paramsurl);
|
|
|
|
-// System.out.println("serverUrl:" + serverUrl);
|
|
|
|
-// System.out.println("qqurl:" + qqurl);
|
|
|
|
-//
|
|
|
|
-//
|
|
|
|
-// Map params = new HashMap();
|
|
|
|
-// Enumeration<String> parameters = request.getParameterNames();
|
|
|
|
-// while (parameters.hasMoreElements()) {
|
|
|
|
-// String paramName = parameters.nextElement();
|
|
|
|
-// String paramValue = request.getParameter(paramName);
|
|
|
|
-// // 处理参数
|
|
|
|
-//// System.out.println("paramName:"+paramName);
|
|
|
|
-//// System.out.println("paramValue:"+paramValue);
|
|
|
|
-// params.put(paramName, paramValue);
|
|
|
|
-// }
|
|
|
|
-// String url_new = qqurl;
|
|
|
|
-// formatFileResponse(url_new, params, response);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- public void test(HttpServletRequest request, HttpServletResponse response) throws IOException {
|
|
|
|
- String url = getCompleteURL(request);
|
|
|
|
- System.out.println("wz:" + url);
|
|
|
|
- //请求地址
|
|
|
|
- String uri = request.getRequestURI();
|
|
|
|
- System.out.println("url:" + uri);
|
|
|
|
-
|
|
|
|
- Map params = new HashMap();
|
|
|
|
- Enumeration<String> parameters = request.getParameterNames();
|
|
|
|
- while (parameters.hasMoreElements()) {
|
|
|
|
- String paramName = parameters.nextElement();
|
|
|
|
- String paramValue = request.getParameter(paramName);
|
|
|
|
- // 处理参数
|
|
|
|
- System.out.println("paramName:" + paramName);
|
|
|
|
- System.out.println("paramValue:" + paramValue);
|
|
|
|
- params.put(paramName, paramValue);
|
|
|
|
- }
|
|
|
|
- String url_new = "http://192.168.60.2:8089/geoserver/sanya_workspace/wms";
|
|
|
|
- formatFileResponse(url_new, params, response);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private void isCheckFull(HttpServletResponse response) throws IOException {
|
|
|
|
- /*
|
|
|
|
- * 在调用getWriter之前未设置编码(既调用setContentType或者setCharacterEncoding方法设置编码),
|
|
|
|
- * HttpServletResponse则会返回一个用默认的编码(既ISO-8859-1)编码的PrintWriter实例。这样就会
|
|
|
|
- * 造成中文乱码。而且设置编码时必须在调用getWriter之前设置,不然是无效的。
|
|
|
|
- * */
|
|
|
|
- response.setContentType("text/html;charset=utf-8");
|
|
|
|
- //response.setCharacterEncoding("UTF-8");
|
|
|
|
- PrintWriter out = response.getWriter();
|
|
|
|
- //JSON在传递过程中是普通字符串形式传递的,这里简单拼接一个做测试
|
|
|
|
- String jsonString = "{\"code\":401,\"msg\":\"权限校验失败!!!\"}";
|
|
|
|
- out.println(jsonString);
|
|
|
|
- out.flush();
|
|
|
|
- out.close();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private String getCompleteURL(HttpServletRequest request) {
|
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
|
- // 获取协议
|
|
|
|
- String protocol = request.isSecure() ? "https://" : "http://";
|
|
|
|
- sb.append(protocol);
|
|
|
|
- // 获取请求的主机名
|
|
|
|
- sb.append(request.getServerName());
|
|
|
|
- // 获取端口号(如果为默认端口则不添加)
|
|
|
|
- int port = request.getServerPort();
|
|
|
|
- if ((port != 80 && !request.isSecure()) || (port != 443 && request.isSecure())) {
|
|
|
|
- sb.append(":").append(port);
|
|
|
|
- }
|
|
|
|
- // 获取上下文路径
|
|
|
|
- sb.append(request.getContextPath());
|
|
|
|
- // 获取请求URI
|
|
|
|
- sb.append(request.getRequestURI());
|
|
|
|
- // 获取查询字符串(如果存在)
|
|
|
|
- if (request.getQueryString() != null) {
|
|
|
|
- sb.append("?").append(request.getQueryString());
|
|
|
|
- }
|
|
|
|
- return sb.toString();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private void formatFileResponse(String uri, Map params, HttpServletResponse response) throws IOException {
|
|
|
|
- try {
|
|
|
|
- uri = uriJoinParam(uri, params);
|
|
|
|
- URL url = new URL(uri);
|
|
|
|
- URLConnection con = url.openConnection();
|
|
|
|
- System.out.println(con.getContentType());
|
|
|
|
- InputStream headimgIs = con.getInputStream();
|
|
|
|
-// response.setContentType("application/json;charset=UTF-8");
|
|
|
|
- response.setContentType(con.getContentType());
|
|
|
|
-// response.setHeader("Content-Disposition","inline; filename=sanya_workspace-TB_CZKFBJ.png");
|
|
|
|
- response.setHeader("Access-Control-Allow-Origin", "*");
|
|
|
|
-// response.setHeader("Access-Control-Allow-Credentials","true");
|
|
|
|
-// response.setHeader("X-Frame-Options","SAMEORIGIN");
|
|
|
|
-// response.setHeader("X-Content-Type-Options","nosniff");
|
|
|
|
- ServletOutputStream outputStream = response.getOutputStream();
|
|
|
|
- int len = 0;
|
|
|
|
- byte[] bytes = new byte[1024];
|
|
|
|
- while ((len = headimgIs.read(bytes)) > 0) {
|
|
|
|
- outputStream.write(bytes, 0, len);
|
|
|
|
- }
|
|
|
|
- headimgIs.close();
|
|
|
|
- outputStream.close();
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- System.err.println("获取文件流出错");
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /**
|
|
|
|
- * get请求方式针对uri的参数封装
|
|
|
|
- *
|
|
|
|
- * @param uri
|
|
|
|
- * @param params
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
- private String uriJoinParam(String uri, Map params) {
|
|
|
|
- StringBuilder sbf = new StringBuilder(uri);
|
|
|
|
- if (uri.indexOf("?") > 0) {
|
|
|
|
- sbf.append("&");
|
|
|
|
- } else {
|
|
|
|
- sbf.append("?");
|
|
|
|
- }
|
|
|
|
- for (Object key : params.keySet()) {
|
|
|
|
- sbf.append(key).append("=").append(params.get(key)).append("&");
|
|
|
|
- }
|
|
|
|
- return sbf.toString();
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-}
|
|
|