Przeglądaj źródła

添加获取客户端ip接口

wangmh 7 lat temu
rodzic
commit
10e0c06146

+ 23 - 2
sso-server/src/main/java/com/uas/sso/controller/TestController.java

@@ -1,16 +1,37 @@
 package com.uas.sso.controller;
 
+import com.uas.sso.util.IpUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * 测试controller
+ */
 @Controller
-@RequestMapping("/test")
+@RequestMapping("/api/test")
 public class TestController {
 
+    @Autowired
+    private HttpServletRequest request;
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(TestController.class);
+
     @RequestMapping
     @ResponseBody
     public String test(String name) {
-        return "return " + name;
+        LOGGER.info("-------------------------------");
+        LOGGER.info("x-forwarded-host:" + request.getHeader("x-forwarded-host"));
+        LOGGER.info("x-forwarded-server:" + request.getHeader("x-forwarded-server"));
+        LOGGER.info("x-forwarded-for:" + request.getHeader("x-forwarded-for"));
+        LOGGER.info("x-real-ip:" + request.getHeader("x-real-ip"));
+        LOGGER.info("x-forwarded-proto:" + request.getHeader("x-forwarded-proto"));
+        LOGGER.info("host:" + request.getHeader("host"));
+        return IpUtils.getIp(request);
     }
 }

+ 30 - 0
sso-server/src/main/java/com/uas/sso/util/IpUtils.java

@@ -0,0 +1,30 @@
+package com.uas.sso.util;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * ip工具类
+ *
+ * @author wangmh
+ * @create 2018-10-09 14:38
+ **/
+public class IpUtils {
+
+    public static String getIp(HttpServletRequest request) {
+        String ip = request.getHeader("x-forwarded-for");
+        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getHeader("x-real-ip");
+        }
+        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+            ip = request.getRemoteAddr();
+        }
+        if (ip.contains(",")) {
+            return ip.split(",")[0];
+        } else {
+            return ip;
+        }
+    }
+}