修改获取客户端地址的问题。
This commit is contained in:
parent
c3d570a3f3
commit
9ee75303cc
|
|
@ -12,7 +12,7 @@ import com.electromagnetic.industry.software.common.util.TokenUtil;
|
||||||
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
import com.electromagnetic.industry.software.common.util.UserThreadLocal;
|
||||||
import com.electromagnetic.industry.software.manage.mapper.TokenMapper;
|
import com.electromagnetic.industry.software.manage.mapper.TokenMapper;
|
||||||
import com.electromagnetic.industry.software.manage.mapper.UserAccessLogMapper;
|
import com.electromagnetic.industry.software.manage.mapper.UserAccessLogMapper;
|
||||||
import com.electromagnetic.industry.software.manage.mapper.UserMapper;
|
import org.springframework.web.util.WebUtils;
|
||||||
import com.electromagnetic.industry.software.manage.pojo.models.Token;
|
import com.electromagnetic.industry.software.manage.pojo.models.Token;
|
||||||
import com.electromagnetic.industry.software.manage.pojo.models.UserAccessLog;
|
import com.electromagnetic.industry.software.manage.pojo.models.UserAccessLog;
|
||||||
import io.jsonwebtoken.Claims;
|
import io.jsonwebtoken.Claims;
|
||||||
|
|
@ -117,7 +117,7 @@ public class LoginInterceptor implements HandlerInterceptor {
|
||||||
.action(userOperation.value())
|
.action(userOperation.value())
|
||||||
.requestUrl(request.getRequestURL().toString())
|
.requestUrl(request.getRequestURL().toString())
|
||||||
.reqArgs(reqArgs)
|
.reqArgs(reqArgs)
|
||||||
.remoteAddr(request.getRemoteAddr())
|
.remoteAddr(getRealIp(request))
|
||||||
.accessSuccess(true)
|
.accessSuccess(true)
|
||||||
.createTime(new Date())
|
.createTime(new Date())
|
||||||
.operationModule(userOperation.modelName().key)
|
.operationModule(userOperation.modelName().key)
|
||||||
|
|
@ -141,4 +141,21 @@ public class LoginInterceptor implements HandlerInterceptor {
|
||||||
Date now = new Date(SystemClock.now());
|
Date now = new Date(SystemClock.now());
|
||||||
return token != null && now.before(token.getExpireAt());
|
return token != null && now.before(token.getExpireAt());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static String getRealIp(HttpServletRequest request) {
|
||||||
|
String ipAddress = request.getHeader("X-Forwarded-For");
|
||||||
|
if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
|
||||||
|
// 回退到X-Real-IP或直接RemoteAddr
|
||||||
|
ipAddress = request.getHeader("X-Real-IP");
|
||||||
|
}
|
||||||
|
if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) {
|
||||||
|
ipAddress = request.getRemoteAddr();
|
||||||
|
}
|
||||||
|
// 处理多级代理的情况(取第一个IP)
|
||||||
|
if (ipAddress.contains(",")) {
|
||||||
|
ipAddress = ipAddress.split(",")[0].trim();
|
||||||
|
}
|
||||||
|
return ipAddress;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue