package com.moral.util; import java.util.Enumeration; import java.util.Map; import java.util.TreeMap; import javax.servlet.ServletRequest; import javax.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; import org.springframework.util.Assert; import org.springframework.util.ObjectUtils; @Slf4j public class WebUtils extends org.springframework.web.util.WebUtils { public static Map getParametersStartingWith(ServletRequest request, String prefix) { Assert.notNull(request, "Request must not be null"); Enumeration paramNames = request.getParameterNames(); Map params = new TreeMap(); if (prefix == null) { prefix = ""; } while (paramNames != null && paramNames.hasMoreElements()) { String paramName = paramNames.nextElement(); if ("".equals(prefix) || paramName.startsWith(prefix)) { String unprefixed = paramName.substring(prefix.length()); String[] values = request.getParameterValues(paramName); if (values == null || values.length == 0 ) { // Do nothing, no values found at all. } else if (values.length > 1) { params.put(unprefixed, values); } else { if (!ObjectUtils.isEmpty(values[0]) && !"null".equalsIgnoreCase(values[0])) { if ("sorter".equals(unprefixed)) { params.put(unprefixed, values[0].replace("end", "")); } else { params.put(unprefixed, values[0]); } } } } } return params; } /** * @Description: 获取请求IP地址 * @Param: [request] * @return: java.lang.String * @Author: 陈凯裕 * @Date: 2021/3/31 */ public static String getIpAddr(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){ ip = request.getHeader("Proxy-Client-IP"); } if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){ ip = request.getHeader("WL-Proxy-Client-IP"); } if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){ ip = request.getRemoteAddr(); } return ip.equals("0:0:0:0:0:0:0:1")?"127.0.0.1":ip; } }