diff --git a/src/main/java/icu/samnyan/aqua/sega/allnet/AllNetSecure.kt b/src/main/java/icu/samnyan/aqua/sega/allnet/AllNetSecure.kt index 5f9d2886..535a8975 100644 --- a/src/main/java/icu/samnyan/aqua/sega/allnet/AllNetSecure.kt +++ b/src/main/java/icu/samnyan/aqua/sega/allnet/AllNetSecure.kt @@ -2,6 +2,7 @@ package icu.samnyan.aqua.sega.allnet import ext.Str import icu.samnyan.aqua.net.FrontierProps +import icu.samnyan.aqua.net.components.GeoIP import jakarta.servlet.http.HttpServletRequest import jakarta.servlet.http.HttpServletRequestWrapper import jakarta.servlet.http.HttpServletResponse @@ -27,6 +28,7 @@ class TokenChecker( val keyChipRepo: KeyChipRepo, val keychipSessionService: KeychipSessionService, val frontierProps: FrontierProps, + val geoip: GeoIP ) : HandlerInterceptor { val log = LoggerFactory.getLogger(TokenChecker::class.java) @@ -43,10 +45,11 @@ class TokenChecker( override fun preHandle(req: HttpServletRequest, resp: HttpServletResponse, handler: Any): Boolean { // Skip the interceptor if the request is already forwarded if (req.getAttribute("token") != null) return true + val ip = geoip.getIP(req) // Parse the token from the request path val token = extractTokenFromPath(req.requestURI) - log.debug("PreHandle: ${req.requestURI} from ip ${req.remoteAddr}, token: $token") + log.debug("PreHandle: ${req.requestURI} from ip $ip, token: $token") // Check whether the token exists in the database // The token can either be a keychip id (old method) or a session id (new method) @@ -67,7 +70,7 @@ class TokenChecker( // Token doesn't exist, reject the request resp.status = HttpServletResponse.SC_FORBIDDEN - log.warn("Request rejected: ${req.requestURI} from ip ${req.remoteAddr}") + log.warn("Request rejected: ${req.requestURI} from ip $ip") return false } diff --git a/src/main/java/icu/samnyan/aqua/sega/general/filter/CompressionFilter.kt b/src/main/java/icu/samnyan/aqua/sega/general/filter/CompressionFilter.kt index bcd86fdb..a4242e2c 100644 --- a/src/main/java/icu/samnyan/aqua/sega/general/filter/CompressionFilter.kt +++ b/src/main/java/icu/samnyan/aqua/sega/general/filter/CompressionFilter.kt @@ -3,6 +3,7 @@ package icu.samnyan.aqua.sega.general.filter import ext.details import ext.logger import ext.toJson +import icu.samnyan.aqua.net.components.GeoIP import icu.samnyan.aqua.sega.allnet.TokenChecker import icu.samnyan.aqua.sega.util.ZLib import jakarta.servlet.FilterChain @@ -19,7 +20,9 @@ import java.util.* * @author samnyan (privateamusement@protonmail.com) */ @Component -class CompressionFilter : OncePerRequestFilter() { +class CompressionFilter( + val geoip: GeoIP +) : OncePerRequestFilter() { companion object { val log = logger() val b64d = Base64.getMimeDecoder() @@ -38,7 +41,7 @@ class CompressionFilter : OncePerRequestFilter() { else it } } catch (e: Exception) { - log.error("Failed to decode request from ip ${req.remoteAddr}") + log.error("Failed to decode request from ip ${geoip.getIP(req)}") resp.sendError(400, "Failed to decode request") return }