Commit c93b1cc3 authored by 郑磊's avatar 郑磊

增加代理ip解析

parent 88445649
...@@ -36,17 +36,7 @@ public class CaptchaController { ...@@ -36,17 +36,7 @@ public class CaptchaController {
@RequestBody(required = false) GenerateCaptchaData data @RequestBody(required = false) GenerateCaptchaData data
) { ) {
var type = getRandomType(); var type = getRandomType();
var ip = request.getRemoteAddr(); var ip = getIpFromRequest(request);
var proxyIp = request.getHeader("x-forwarded-for");
if (proxyIp != null && !proxyIp.isEmpty()) {
ip = proxyIp.split(",")[0].trim();
} else {
proxyIp = request.getHeader("x-real-ip");
if (proxyIp != null && !proxyIp.isEmpty()) {
ip = proxyIp;
}
}
Map<String, Object> extra = null; Map<String, Object> extra = null;
if (data != null) { if (data != null) {
...@@ -94,7 +84,7 @@ public class CaptchaController { ...@@ -94,7 +84,7 @@ public class CaptchaController {
HttpServletRequest request, HttpServletRequest request,
@RequestBody CheckCaptchaData data @RequestBody CheckCaptchaData data
) { ) {
String ip = request.getRemoteAddr(); String ip = getIpFromRequest(request);
//校验验证码 //校验验证码
var result = imageCaptchaApplication.matching( var result = imageCaptchaApplication.matching(
data.getKey(), data.getKey(),
...@@ -155,4 +145,17 @@ public class CaptchaController { ...@@ -155,4 +145,17 @@ public class CaptchaController {
return Response.success(info); return Response.success(info);
} }
} }
protected static String getIpFromRequest(HttpServletRequest request) {
var proxyIp = request.getHeader("x-forwarded-for");
if (proxyIp != null && !proxyIp.isEmpty()) {
return proxyIp.split(",")[0].trim();
}
proxyIp = request.getHeader("x-real-ip");
if (proxyIp != null && !proxyIp.isEmpty()) {
return proxyIp;
}
return request.getRemoteAddr();
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment