【7.1.6】获取请求IP的逻辑中加入自定义头

pull/23/head
rays 2021-12-01 17:22:39 +08:00
parent 08aabade56
commit dddb3a04f7
1 changed files with 11 additions and 8 deletions

View File

@ -56,6 +56,11 @@ public class HttpServletUtil {
*/
private static final String LOCAL_IP = "127.0.0.1";
/**
* NginxIP
*/
private static final String AGENT_SOURCE_IP = "Agent-Source-Ip";
/**
* ipipv6
*/
@ -73,7 +78,7 @@ public class HttpServletUtil {
* @date 2020/10/15 17:48
*/
public static HttpServletRequest getRequest() {
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
ServletRequestAttributes requestAttributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
if (requestAttributes == null) {
throw new ServiceException(ServletExceptionEnum.HTTP_CONTEXT_ERROR);
} else {
@ -88,7 +93,7 @@ public class HttpServletUtil {
* @date 2020/10/15 17:48
*/
public static HttpServletResponse getResponse() {
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
ServletRequestAttributes requestAttributes = (ServletRequestAttributes)RequestContextHolder.getRequestAttributes();
if (requestAttributes == null) {
throw new ServiceException(ServletExceptionEnum.HTTP_CONTEXT_ERROR);
} else {
@ -108,7 +113,7 @@ public class HttpServletUtil {
if (ObjectUtil.isEmpty(request)) {
return LOCAL_IP;
} else {
String remoteHost = ServletUtil.getClientIP(request);
String remoteHost = ServletUtil.getClientIP(request, AGENT_SOURCE_IP);
return LOCAL_REMOTE_HOST.equals(remoteHost) ? LOCAL_IP : remoteHost;
}
}
@ -151,7 +156,7 @@ public class HttpServletUtil {
HttpRequest http = HttpUtil.createGet(String.format(ipGeoApi, ip));
http.header(requestApiHeader, appCodeSymbol + " " + ipGeoAppCode);
resultJson = http.timeout(3000).execute().body();
resultJson = String.join("", (List<String>) JSONPath.read(resultJson, jsonPath));
resultJson = String.join("", (List<String>)JSONPath.read(resultJson, jsonPath));
}
} catch (Exception e) {
log.error("根据ip定位异常具体信息为{}", e.getMessage());
@ -192,8 +197,7 @@ public class HttpServletUtil {
* @date 2021/2/22 22:37
*/
public static Boolean getNormalRequestFlag(HttpServletRequest request) {
return request.getHeader("Accept") == null
|| request.getHeader("Accept").toLowerCase().contains("text/html");
return request.getHeader("Accept") == null || request.getHeader("Accept").toLowerCase().contains("text/html");
}
/**
@ -206,8 +210,7 @@ public class HttpServletUtil {
* @date 2021/2/22 22:37
*/
public static Boolean getJsonRequestFlag(HttpServletRequest request) {
return request.getHeader("Accept") == null
|| request.getHeader("Accept").toLowerCase().contains("application/json");
return request.getHeader("Accept") == null || request.getHeader("Accept").toLowerCase().contains("application/json");
}
}