mirror of https://github.com/hykilpikonna/AquaDX
[F] Fix ip
parent
8549a5caae
commit
d94a011413
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue