Use the headers provided by a context to get the IP address

should acknowledge #1975
This commit is contained in:
KingRainbow44
2023-05-31 02:10:25 -04:00
parent 6c97da3715
commit ff421c01f9
5 changed files with 59 additions and 31 deletions

View File

@@ -1,8 +1,5 @@
package emu.grasscutter.auth;
import static emu.grasscutter.config.Configuration.ACCOUNT;
import static emu.grasscutter.utils.lang.Language.translate;
import at.favre.lib.crypto.bcrypt.BCrypt;
import emu.grasscutter.Grasscutter;
import emu.grasscutter.Grasscutter.ServerRunMode;
@@ -17,13 +14,17 @@ import emu.grasscutter.utils.DispatchUtils;
import emu.grasscutter.utils.FileUtils;
import emu.grasscutter.utils.Utils;
import io.javalin.http.ContentType;
import javax.crypto.Cipher;
import java.nio.charset.StandardCharsets;
import java.security.KeyFactory;
import java.security.interfaces.RSAPrivateKey;
import java.security.spec.PKCS8EncodedKeySpec;
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit;
import javax.crypto.Cipher;
import static emu.grasscutter.config.Configuration.ACCOUNT;
import static emu.grasscutter.utils.lang.Language.translate;
/** A class containing default authenticators. */
public final class DefaultAuthenticators {
@@ -38,7 +39,7 @@ public final class DefaultAuthenticators {
assert requestData != null; // This should never be null.
boolean successfulLogin = false;
String address = request.getContext().ip();
String address = Utils.address(request.getContext());
String responseMessage = translate("messages.dispatch.account.username_error");
String loggerMessage = "";
@@ -98,7 +99,7 @@ public final class DefaultAuthenticators {
assert requestData != null; // This should never be null.
boolean successfulLogin = false;
String address = request.getContext().ip();
String address = Utils.address(request.getContext());
String responseMessage = translate("messages.dispatch.account.username_error");
String loggerMessage = "";
String decryptedPassword = "";
@@ -209,7 +210,7 @@ public final class DefaultAuthenticators {
assert requestData != null;
boolean successfulLogin;
String address = request.getContext().ip();
String address = Utils.address(request.getContext());
String loggerMessage;
// Log the attempt.
@@ -257,7 +258,7 @@ public final class DefaultAuthenticators {
assert loginData != null;
boolean successfulLogin;
String address = request.getContext().ip();
String address = Utils.address(request.getContext());
String loggerMessage;
// Get account from database.
@@ -395,7 +396,7 @@ public final class DefaultAuthenticators {
// Check to see if an IP authentication can be performed.
if (Grasscutter.getRunMode() == ServerRunMode.HYBRID) {
var player = Grasscutter.getGameServer().getPlayerByIpAddress(ctx.ip());
var player = Grasscutter.getGameServer().getPlayerByIpAddress(Utils.address(ctx));
if (player != null) {
// Get the player's session token.
var sessionKey = player.getAccount().getSessionKey();