mirror of
https://github.com/ViaVersion/ViaProxy.git
synced 2024-11-22 11:55:24 +01:00
Updated MinecraftAuth
This commit is contained in:
parent
68f715f140
commit
8654ebfafd
@ -91,7 +91,7 @@ dependencies {
|
|||||||
include("net.raphimc.netminecraft:all:2.4.0-SNAPSHOT") {
|
include("net.raphimc.netminecraft:all:2.4.0-SNAPSHOT") {
|
||||||
exclude group: "com.google.code.gson", module: "gson"
|
exclude group: "com.google.code.gson", module: "gson"
|
||||||
}
|
}
|
||||||
include("net.raphimc:MinecraftAuth:3.1.0") {
|
include("net.raphimc:MinecraftAuth:4.0.0-SNAPSHOT") {
|
||||||
exclude group: "com.google.code.gson", module: "gson"
|
exclude group: "com.google.code.gson", module: "gson"
|
||||||
exclude group: "org.slf4j", module: "slf4j-api"
|
exclude group: "org.slf4j", module: "slf4j-api"
|
||||||
}
|
}
|
||||||
|
@ -20,12 +20,10 @@ package net.raphimc.viaproxy.saves.impl;
|
|||||||
import com.google.gson.JsonArray;
|
import com.google.gson.JsonArray;
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import net.raphimc.minecraftauth.util.MicrosoftConstants;
|
|
||||||
import net.raphimc.viaproxy.ViaProxy;
|
import net.raphimc.viaproxy.ViaProxy;
|
||||||
import net.raphimc.viaproxy.saves.AbstractSave;
|
import net.raphimc.viaproxy.saves.AbstractSave;
|
||||||
import net.raphimc.viaproxy.saves.impl.accounts.Account;
|
import net.raphimc.viaproxy.saves.impl.accounts.Account;
|
||||||
import net.raphimc.viaproxy.saves.impl.accounts.OfflineAccount;
|
import net.raphimc.viaproxy.saves.impl.accounts.OfflineAccount;
|
||||||
import org.apache.http.impl.client.CloseableHttpClient;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@ -84,13 +82,11 @@ public class AccountsSaveV3 extends AbstractSave {
|
|||||||
|
|
||||||
public void ensureRefreshed(final Account account) throws Throwable {
|
public void ensureRefreshed(final Account account) throws Throwable {
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
try (final CloseableHttpClient httpClient = MicrosoftConstants.createHttpClient()) {
|
if (account.refresh()) {
|
||||||
if (account.refresh(httpClient)) {
|
|
||||||
ViaProxy.getSaveManager().save();
|
ViaProxy.getSaveManager().save();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
public List<Account> getAccounts() {
|
public List<Account> getAccounts() {
|
||||||
return Collections.unmodifiableList(this.accounts);
|
return Collections.unmodifiableList(this.accounts);
|
||||||
|
@ -19,7 +19,6 @@ package net.raphimc.viaproxy.saves.impl.accounts;
|
|||||||
|
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import com.mojang.authlib.GameProfile;
|
import com.mojang.authlib.GameProfile;
|
||||||
import org.apache.http.impl.client.CloseableHttpClient;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@ -42,7 +41,7 @@ public abstract class Account {
|
|||||||
|
|
||||||
public abstract String getDisplayString();
|
public abstract String getDisplayString();
|
||||||
|
|
||||||
public boolean refresh(final CloseableHttpClient httpClient) throws Exception {
|
public boolean refresh() throws Exception {
|
||||||
if (System.currentTimeMillis() - this.lastRefresh < 10_000L) {
|
if (System.currentTimeMillis() - this.lastRefresh < 10_000L) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,6 @@ import net.raphimc.minecraftauth.step.bedrock.StepPlayFabToken;
|
|||||||
import net.raphimc.minecraftauth.step.bedrock.session.StepFullBedrockSession;
|
import net.raphimc.minecraftauth.step.bedrock.session.StepFullBedrockSession;
|
||||||
import net.raphimc.minecraftauth.step.xbl.StepXblXstsToken;
|
import net.raphimc.minecraftauth.step.xbl.StepXblXstsToken;
|
||||||
import net.raphimc.minecraftauth.util.MicrosoftConstants;
|
import net.raphimc.minecraftauth.util.MicrosoftConstants;
|
||||||
import org.apache.http.impl.client.CloseableHttpClient;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@ -83,10 +82,10 @@ public class BedrockAccount extends Account {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean refresh(CloseableHttpClient httpClient) throws Exception {
|
public boolean refresh() throws Exception {
|
||||||
if (!super.refresh(httpClient)) return false;
|
if (!super.refresh()) return false;
|
||||||
|
|
||||||
this.bedrockSession = DEVICE_CODE_LOGIN.refresh(httpClient, this.bedrockSession);
|
this.bedrockSession = DEVICE_CODE_LOGIN.refresh(MinecraftAuth.createHttpClient(), this.bedrockSession);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -24,7 +24,6 @@ import net.raphimc.minecraftauth.step.java.StepMCProfile;
|
|||||||
import net.raphimc.minecraftauth.step.java.StepPlayerCertificates;
|
import net.raphimc.minecraftauth.step.java.StepPlayerCertificates;
|
||||||
import net.raphimc.minecraftauth.step.java.session.StepFullJavaSession;
|
import net.raphimc.minecraftauth.step.java.session.StepFullJavaSession;
|
||||||
import net.raphimc.minecraftauth.util.MicrosoftConstants;
|
import net.raphimc.minecraftauth.util.MicrosoftConstants;
|
||||||
import org.apache.http.impl.client.CloseableHttpClient;
|
|
||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@ -78,10 +77,10 @@ public class MicrosoftAccount extends Account {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean refresh(CloseableHttpClient httpClient) throws Exception {
|
public boolean refresh() throws Exception {
|
||||||
if (!super.refresh(httpClient)) return false;
|
if (!super.refresh()) return false;
|
||||||
|
|
||||||
this.javaSession = DEVICE_CODE_LOGIN.refresh(httpClient, this.javaSession);
|
this.javaSession = DEVICE_CODE_LOGIN.refresh(MinecraftAuth.createHttpClient(), this.javaSession);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,7 +18,6 @@
|
|||||||
package net.raphimc.viaproxy.saves.impl.accounts;
|
package net.raphimc.viaproxy.saves.impl.accounts;
|
||||||
|
|
||||||
import com.google.gson.JsonObject;
|
import com.google.gson.JsonObject;
|
||||||
import org.apache.http.impl.client.CloseableHttpClient;
|
|
||||||
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@ -62,7 +61,7 @@ public class OfflineAccount extends Account {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean refresh(CloseableHttpClient httpClient) {
|
public boolean refresh() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,8 +19,8 @@ package net.raphimc.viaproxy.ui.impl;
|
|||||||
|
|
||||||
import net.lenni0451.commons.swing.GBC;
|
import net.lenni0451.commons.swing.GBC;
|
||||||
import net.lenni0451.lambdaevents.EventHandler;
|
import net.lenni0451.lambdaevents.EventHandler;
|
||||||
|
import net.raphimc.minecraftauth.MinecraftAuth;
|
||||||
import net.raphimc.minecraftauth.step.msa.StepMsaDeviceCode;
|
import net.raphimc.minecraftauth.step.msa.StepMsaDeviceCode;
|
||||||
import net.raphimc.minecraftauth.util.MicrosoftConstants;
|
|
||||||
import net.raphimc.viaproxy.ViaProxy;
|
import net.raphimc.viaproxy.ViaProxy;
|
||||||
import net.raphimc.viaproxy.cli.options.Options;
|
import net.raphimc.viaproxy.cli.options.Options;
|
||||||
import net.raphimc.viaproxy.saves.impl.accounts.Account;
|
import net.raphimc.viaproxy.saves.impl.accounts.Account;
|
||||||
@ -32,7 +32,6 @@ import net.raphimc.viaproxy.ui.ViaProxyUI;
|
|||||||
import net.raphimc.viaproxy.ui.events.UIInitEvent;
|
import net.raphimc.viaproxy.ui.events.UIInitEvent;
|
||||||
import net.raphimc.viaproxy.ui.popups.AddAccountPopup;
|
import net.raphimc.viaproxy.ui.popups.AddAccountPopup;
|
||||||
import net.raphimc.viaproxy.util.TFunction;
|
import net.raphimc.viaproxy.util.TFunction;
|
||||||
import org.apache.http.impl.client.CloseableHttpClient;
|
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
@ -179,9 +178,7 @@ public class AccountsTab extends AUITab {
|
|||||||
this.addMicrosoftAccountButton.addActionListener(event -> {
|
this.addMicrosoftAccountButton.addActionListener(event -> {
|
||||||
this.addMicrosoftAccountButton.setEnabled(false);
|
this.addMicrosoftAccountButton.setEnabled(false);
|
||||||
this.handleLogin(msaDeviceCodeConsumer -> {
|
this.handleLogin(msaDeviceCodeConsumer -> {
|
||||||
try (final CloseableHttpClient httpClient = MicrosoftConstants.createHttpClient()) {
|
return new MicrosoftAccount(MicrosoftAccount.DEVICE_CODE_LOGIN.getFromInput(MinecraftAuth.createHttpClient(), new StepMsaDeviceCode.MsaDeviceCodeCallback(msaDeviceCodeConsumer)));
|
||||||
return new MicrosoftAccount(MicrosoftAccount.DEVICE_CODE_LOGIN.getFromInput(httpClient, new StepMsaDeviceCode.MsaDeviceCodeCallback(msaDeviceCodeConsumer)));
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
addButtons.add(this.addMicrosoftAccountButton);
|
addButtons.add(this.addMicrosoftAccountButton);
|
||||||
@ -191,9 +188,7 @@ public class AccountsTab extends AUITab {
|
|||||||
this.addBedrockAccountButton.addActionListener(event -> {
|
this.addBedrockAccountButton.addActionListener(event -> {
|
||||||
this.addBedrockAccountButton.setEnabled(false);
|
this.addBedrockAccountButton.setEnabled(false);
|
||||||
this.handleLogin(msaDeviceCodeConsumer -> {
|
this.handleLogin(msaDeviceCodeConsumer -> {
|
||||||
try (final CloseableHttpClient httpClient = MicrosoftConstants.createHttpClient()) {
|
return new BedrockAccount(BedrockAccount.DEVICE_CODE_LOGIN.getFromInput(MinecraftAuth.createHttpClient(), new StepMsaDeviceCode.MsaDeviceCodeCallback(msaDeviceCodeConsumer)));
|
||||||
return new BedrockAccount(BedrockAccount.DEVICE_CODE_LOGIN.getFromInput(httpClient, new StepMsaDeviceCode.MsaDeviceCodeCallback(msaDeviceCodeConsumer)));
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
addButtons.add(this.addBedrockAccountButton);
|
addButtons.add(this.addBedrockAccountButton);
|
||||||
|
@ -20,12 +20,12 @@ package net.raphimc.viaproxy.ui.impl;
|
|||||||
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Iterables;
|
||||||
import net.lenni0451.commons.swing.GBC;
|
import net.lenni0451.commons.swing.GBC;
|
||||||
import net.lenni0451.commons.swing.layouts.VerticalLayout;
|
import net.lenni0451.commons.swing.layouts.VerticalLayout;
|
||||||
import net.raphimc.minecraftauth.responsehandler.exception.RealmsResponseException;
|
import net.raphimc.minecraftauth.MinecraftAuth;
|
||||||
|
import net.raphimc.minecraftauth.responsehandler.exception.RealmsRequestException;
|
||||||
import net.raphimc.minecraftauth.service.realms.AbstractRealmsService;
|
import net.raphimc.minecraftauth.service.realms.AbstractRealmsService;
|
||||||
import net.raphimc.minecraftauth.service.realms.BedrockRealmsService;
|
import net.raphimc.minecraftauth.service.realms.BedrockRealmsService;
|
||||||
import net.raphimc.minecraftauth.service.realms.JavaRealmsService;
|
import net.raphimc.minecraftauth.service.realms.JavaRealmsService;
|
||||||
import net.raphimc.minecraftauth.service.realms.model.RealmsWorld;
|
import net.raphimc.minecraftauth.service.realms.model.RealmsWorld;
|
||||||
import net.raphimc.minecraftauth.util.MicrosoftConstants;
|
|
||||||
import net.raphimc.viabedrock.protocol.data.ProtocolConstants;
|
import net.raphimc.viabedrock.protocol.data.ProtocolConstants;
|
||||||
import net.raphimc.vialoader.util.VersionEnum;
|
import net.raphimc.vialoader.util.VersionEnum;
|
||||||
import net.raphimc.viaproxy.ViaProxy;
|
import net.raphimc.viaproxy.ViaProxy;
|
||||||
@ -37,7 +37,6 @@ import net.raphimc.viaproxy.ui.AUITab;
|
|||||||
import net.raphimc.viaproxy.ui.I18n;
|
import net.raphimc.viaproxy.ui.I18n;
|
||||||
import net.raphimc.viaproxy.ui.ViaProxyUI;
|
import net.raphimc.viaproxy.ui.ViaProxyUI;
|
||||||
import net.raphimc.viaproxy.util.logging.Logger;
|
import net.raphimc.viaproxy.util.logging.Logger;
|
||||||
import org.apache.http.impl.client.CloseableHttpClient;
|
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
@ -48,7 +47,6 @@ public class RealmsTab extends AUITab {
|
|||||||
|
|
||||||
private static final VersionEnum LATEST_JAVA_RELEASE;
|
private static final VersionEnum LATEST_JAVA_RELEASE;
|
||||||
private static final VersionEnum LATEST_JAVA_SNAPSHOT;
|
private static final VersionEnum LATEST_JAVA_SNAPSHOT;
|
||||||
private static final CloseableHttpClient HTTP_CLIENT = MicrosoftConstants.createHttpClient();
|
|
||||||
|
|
||||||
static {
|
static {
|
||||||
VersionEnum latestVersion = null;
|
VersionEnum latestVersion = null;
|
||||||
@ -108,10 +106,10 @@ public class RealmsTab extends AUITab {
|
|||||||
ViaProxy.getSaveManager().accountsSave.ensureRefreshed(this.currentAccount);
|
ViaProxy.getSaveManager().accountsSave.ensureRefreshed(this.currentAccount);
|
||||||
SwingUtilities.invokeLater(() -> {
|
SwingUtilities.invokeLater(() -> {
|
||||||
if (this.currentAccount instanceof MicrosoftAccount account) {
|
if (this.currentAccount instanceof MicrosoftAccount account) {
|
||||||
final JavaRealmsService realmsService = new JavaRealmsService(HTTP_CLIENT, Iterables.getLast(this.currentSelectedJavaVersion.getProtocol().getIncludedVersions()), account.getMcProfile());
|
final JavaRealmsService realmsService = new JavaRealmsService(MinecraftAuth.createHttpClient(), Iterables.getLast(this.currentSelectedJavaVersion.getProtocol().getIncludedVersions()), account.getMcProfile());
|
||||||
this.loadRealms(realmsService, body, statusLabel);
|
this.loadRealms(realmsService, body, statusLabel);
|
||||||
} else if (this.currentAccount instanceof BedrockAccount account) {
|
} else if (this.currentAccount instanceof BedrockAccount account) {
|
||||||
final BedrockRealmsService realmsService = new BedrockRealmsService(HTTP_CLIENT, ProtocolConstants.BEDROCK_VERSION_NAME, account.getRealmsXsts());
|
final BedrockRealmsService realmsService = new BedrockRealmsService(MinecraftAuth.createHttpClient(), ProtocolConstants.BEDROCK_VERSION_NAME, account.getRealmsXsts());
|
||||||
this.loadRealms(realmsService, body, statusLabel);
|
this.loadRealms(realmsService, body, statusLabel);
|
||||||
} else {
|
} else {
|
||||||
statusLabel.setText(I18n.get("tab.realms.unsupported_account"));
|
statusLabel.setText(I18n.get("tab.realms.unsupported_account"));
|
||||||
@ -231,7 +229,7 @@ public class RealmsTab extends AUITab {
|
|||||||
SwingUtilities.invokeLater(() -> {
|
SwingUtilities.invokeLater(() -> {
|
||||||
join.setEnabled(true);
|
join.setEnabled(true);
|
||||||
join.setText(I18n.get("tab.realms.join"));
|
join.setText(I18n.get("tab.realms.join"));
|
||||||
if (realmsService instanceof JavaRealmsService javaRealmsService && cause instanceof RealmsResponseException realmsResponseException && realmsResponseException.getErrorCode() == RealmsResponseException.TOS_NOT_ACCEPTED) {
|
if (realmsService instanceof JavaRealmsService javaRealmsService && cause instanceof RealmsRequestException realmsRequestException && realmsRequestException.getErrorCode() == RealmsRequestException.TOS_NOT_ACCEPTED) {
|
||||||
final int chosen = JOptionPane.showConfirmDialog(ViaProxy.getUI(), I18n.get("tab.realms.accept_tos", "https://aka.ms/MinecraftRealmsTerms"), "ViaProxy", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
|
final int chosen = JOptionPane.showConfirmDialog(ViaProxy.getUI(), I18n.get("tab.realms.accept_tos", "https://aka.ms/MinecraftRealmsTerms"), "ViaProxy", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);
|
||||||
if (chosen == JOptionPane.YES_OPTION) {
|
if (chosen == JOptionPane.YES_OPTION) {
|
||||||
javaRealmsService.acceptTos();
|
javaRealmsService.acceptTos();
|
||||||
|
Loading…
Reference in New Issue
Block a user