diff --git a/src/main/java/cn/lihongjie/coal/common/JwtUtils.java b/src/main/java/cn/lihongjie/coal/common/JwtUtils.java deleted file mode 100644 index 5a7f4f23..00000000 --- a/src/main/java/cn/lihongjie/coal/common/JwtUtils.java +++ /dev/null @@ -1,10 +0,0 @@ -package cn.lihongjie.coal.common; - -import lombok.experimental.UtilityClass; - -@UtilityClass -public class JwtUtils { - - - -} diff --git a/src/main/java/cn/lihongjie/coal/common/RequestUtils.java b/src/main/java/cn/lihongjie/coal/common/RequestUtils.java index 7c1b1913..94d824b1 100644 --- a/src/main/java/cn/lihongjie/coal/common/RequestUtils.java +++ b/src/main/java/cn/lihongjie/coal/common/RequestUtils.java @@ -1,16 +1,58 @@ package cn.lihongjie.coal.common; +import eu.bitwalker.useragentutils.Browser; +import eu.bitwalker.useragentutils.OperatingSystem; +import eu.bitwalker.useragentutils.UserAgent; +import eu.bitwalker.useragentutils.Version; import jakarta.servlet.http.HttpServletRequest; import lombok.experimental.UtilityClass; @UtilityClass public class RequestUtils { + + + private static final String[] HEADERS_TO_TRY = { + "X-Forwarded-For", + "Proxy-Client-IP", + "WL-Proxy-Client-IP", + "HTTP_X_FORWARDED_FOR", + "HTTP_X_FORWARDED", + "HTTP_X_CLUSTER_CLIENT_IP", + "HTTP_CLIENT_IP", + "HTTP_FORWARDED_FOR", + "HTTP_FORWARDED", + "HTTP_VIA", + "REMOTE_ADDR" }; + + private String getClientIpAddress(HttpServletRequest request) { + for (String header : HEADERS_TO_TRY) { + String ip = request.getHeader(header); + if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) { + return ip; + } + } + + return request.getRemoteAddr(); + } public static String getIp(HttpServletRequest request) { - return null; + return getClientIpAddress(request); } public static String getUa(HttpServletRequest request) { - return null; + + UserAgent userAgent = UserAgent.parseUserAgentString(request.getHeader("User-Agent")); + Browser browser = userAgent.getBrowser(); + + String browserName = browser.getName(); + //or + // String browserName = browser.getGroup().getName(); + Version browserVersion = userAgent.getBrowserVersion(); + + OperatingSystem os = userAgent.getOperatingSystem(); + + return os.getName() + " " + browserName + browserVersion.toString(); + + } }