From ccd206bb2404681a5acec6ba0e67d4cdccd7a2f5 Mon Sep 17 00:00:00 2001 From: Li Shengzhao Date: Sat, 30 Jan 2016 00:19:32 +0800 Subject: [PATCH] IP record, upgrade --- .../java/com/monkeyk/sos/web/WebUtils.java | 13 ++++++- .../controller/mobile/MobileController.java | 2 +- .../web/controller/unity/UnityController.java | 2 +- .../web/filter/CharacterEncodingIPFilter.java | 35 +++++++++++++++++++ src/main/webapp/WEB-INF/web.xml | 2 +- 5 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/monkeyk/sos/web/filter/CharacterEncodingIPFilter.java diff --git a/src/main/java/com/monkeyk/sos/web/WebUtils.java b/src/main/java/com/monkeyk/sos/web/WebUtils.java index b35f9b6..e532545 100644 --- a/src/main/java/com/monkeyk/sos/web/WebUtils.java +++ b/src/main/java/com/monkeyk/sos/web/WebUtils.java @@ -10,6 +10,17 @@ import javax.servlet.http.HttpServletRequest; public abstract class WebUtils { + private static ThreadLocal ipThreadLocal = new ThreadLocal<>(); + + + public static void setIp(String ip) { + ipThreadLocal.set(ip); + } + + public static String getIp() { + return ipThreadLocal.get(); + } + //private private WebUtils() { } @@ -36,7 +47,7 @@ public abstract class WebUtils { } private static boolean isUnAvailableIp(String ip) { - return (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)); + return StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip); } } \ No newline at end of file diff --git a/src/main/java/com/monkeyk/sos/web/controller/mobile/MobileController.java b/src/main/java/com/monkeyk/sos/web/controller/mobile/MobileController.java index ee4866c..27b290e 100644 --- a/src/main/java/com/monkeyk/sos/web/controller/mobile/MobileController.java +++ b/src/main/java/com/monkeyk/sos/web/controller/mobile/MobileController.java @@ -25,7 +25,7 @@ public class MobileController { @RequestMapping("user_info") @ResponseBody - public UserJsonDto userInfo() throws Exception { + public UserJsonDto userInfo() { return userService.loadCurrentUserJsonDto(); } diff --git a/src/main/java/com/monkeyk/sos/web/controller/unity/UnityController.java b/src/main/java/com/monkeyk/sos/web/controller/unity/UnityController.java index e509747..b333ba8 100644 --- a/src/main/java/com/monkeyk/sos/web/controller/unity/UnityController.java +++ b/src/main/java/com/monkeyk/sos/web/controller/unity/UnityController.java @@ -26,7 +26,7 @@ public class UnityController { @RequestMapping("user_info") @ResponseBody - public UserJsonDto userInfo() throws Exception { + public UserJsonDto userInfo() { return userService.loadCurrentUserJsonDto(); } diff --git a/src/main/java/com/monkeyk/sos/web/filter/CharacterEncodingIPFilter.java b/src/main/java/com/monkeyk/sos/web/filter/CharacterEncodingIPFilter.java new file mode 100644 index 0000000..b1c27b3 --- /dev/null +++ b/src/main/java/com/monkeyk/sos/web/filter/CharacterEncodingIPFilter.java @@ -0,0 +1,35 @@ +package com.monkeyk.sos.web.filter; + +import com.monkeyk.sos.web.WebUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.web.filter.CharacterEncodingFilter; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +/** + * 2016/1/30 + * + * @author Shengzhao Li + */ +public class CharacterEncodingIPFilter extends CharacterEncodingFilter { + + private static final Logger LOG = LoggerFactory.getLogger(CharacterEncodingIPFilter.class); + + + @Override + protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { + recordIP(request); + super.doFilterInternal(request, response, filterChain); + } + + private void recordIP(HttpServletRequest request) { + final String ip = WebUtils.retrieveClientIp(request); + WebUtils.setIp(ip); + LOG.debug("Send request uri: {}, from IP: {}", request.getRequestURI(), ip); + } +} diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index f3f1972..c70e61b 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -16,7 +16,7 @@ encodingFilter - org.springframework.web.filter.CharacterEncodingFilter + com.monkeyk.sos.web.filter.CharacterEncodingIPFilter encoding UTF-8