Remove proxy from AccountFactory
This commit is contained in:
@@ -79,7 +79,7 @@ public class Settings {
|
|||||||
|
|
||||||
Account account;
|
Account account;
|
||||||
try {
|
try {
|
||||||
account = factory.fromStorage(settings, ProxyManager.getProxy());
|
account = factory.fromStorage(settings);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LOG.log(Level.WARNING, "Malformed account storage, removing: " + settings, e);
|
LOG.log(Level.WARNING, "Malformed account storage, removing: " + settings, e);
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
|
|||||||
@@ -152,7 +152,7 @@ public class AddAccountPane extends StackPane {
|
|||||||
lblCreationWarning.setText("");
|
lblCreationWarning.setText("");
|
||||||
setDisable(true);
|
setDisable(true);
|
||||||
|
|
||||||
Task.ofResult("create_account", () -> factory.create(new Selector(), username, password, addtionalData, ProxyManager.getProxy()))
|
Task.ofResult("create_account", () -> factory.create(new Selector(), username, password, addtionalData))
|
||||||
.finalized(Schedulers.javafx(), variables -> {
|
.finalized(Schedulers.javafx(), variables -> {
|
||||||
Settings.INSTANCE.addAccount(variables.get("create_account"));
|
Settings.INSTANCE.addAccount(variables.get("create_account"));
|
||||||
acceptPane.hideSpinner();
|
acceptPane.hideSpinner();
|
||||||
|
|||||||
@@ -17,7 +17,6 @@
|
|||||||
*/
|
*/
|
||||||
package org.jackhuang.hmcl.auth;
|
package org.jackhuang.hmcl.auth;
|
||||||
|
|
||||||
import java.net.Proxy;
|
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
public final class AccountBuilder<T extends Account> {
|
public final class AccountBuilder<T extends Account> {
|
||||||
@@ -25,7 +24,6 @@ public final class AccountBuilder<T extends Account> {
|
|||||||
private String username;
|
private String username;
|
||||||
private String password = null;
|
private String password = null;
|
||||||
private Object additionalData = null;
|
private Object additionalData = null;
|
||||||
private Proxy proxy = Proxy.NO_PROXY;
|
|
||||||
|
|
||||||
public AccountBuilder() {
|
public AccountBuilder() {
|
||||||
}
|
}
|
||||||
@@ -50,12 +48,7 @@ public final class AccountBuilder<T extends Account> {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public AccountBuilder setProxy(Proxy proxy) {
|
|
||||||
this.proxy = Objects.requireNonNull(proxy);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public T create(AccountFactory<T> factory) throws AuthenticationException {
|
public T create(AccountFactory<T> factory) throws AuthenticationException {
|
||||||
return factory.create(selector, Objects.requireNonNull(username), password, additionalData, proxy);
|
return factory.create(selector, Objects.requireNonNull(username), password, additionalData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,7 +17,6 @@
|
|||||||
*/
|
*/
|
||||||
package org.jackhuang.hmcl.auth;
|
package org.jackhuang.hmcl.auth;
|
||||||
|
|
||||||
import java.net.Proxy;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -26,7 +25,7 @@ import java.util.Map;
|
|||||||
*/
|
*/
|
||||||
public abstract class AccountFactory<T extends Account> {
|
public abstract class AccountFactory<T extends Account> {
|
||||||
|
|
||||||
public abstract T create(CharacterSelector selector, String username, String password, Object additionalData, Proxy proxy) throws AuthenticationException;
|
public abstract T create(CharacterSelector selector, String username, String password, Object additionalData) throws AuthenticationException;
|
||||||
|
|
||||||
public abstract T fromStorage(Map<Object, Object> storage, Proxy proxy);
|
public abstract T fromStorage(Map<Object, Object> storage);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ import org.jackhuang.hmcl.auth.yggdrasil.YggdrasilSession;
|
|||||||
import org.jackhuang.hmcl.util.ExceptionalSupplier;
|
import org.jackhuang.hmcl.util.ExceptionalSupplier;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.Proxy;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
@@ -45,24 +44,22 @@ public class AuthlibInjectorAccountFactory extends AccountFactory<AuthlibInjecto
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AuthlibInjectorAccount create(CharacterSelector selector, String username, String password, Object additionalData, Proxy proxy) throws AuthenticationException {
|
public AuthlibInjectorAccount create(CharacterSelector selector, String username, String password, Object additionalData) throws AuthenticationException {
|
||||||
Objects.requireNonNull(selector);
|
Objects.requireNonNull(selector);
|
||||||
Objects.requireNonNull(username);
|
Objects.requireNonNull(username);
|
||||||
Objects.requireNonNull(password);
|
Objects.requireNonNull(password);
|
||||||
Objects.requireNonNull(proxy);
|
|
||||||
|
|
||||||
AuthlibInjectorServer server = (AuthlibInjectorServer) additionalData;
|
AuthlibInjectorServer server = (AuthlibInjectorServer) additionalData;
|
||||||
|
|
||||||
AuthlibInjectorAccount account = new AuthlibInjectorAccount(new YggdrasilService(new AuthlibInjectorProvider(server.getUrl()), proxy),
|
AuthlibInjectorAccount account = new AuthlibInjectorAccount(new YggdrasilService(new AuthlibInjectorProvider(server.getUrl())),
|
||||||
server, authlibInjectorDownloader, username, null, null);
|
server, authlibInjectorDownloader, username, null, null);
|
||||||
account.logInWithPassword(password, selector);
|
account.logInWithPassword(password, selector);
|
||||||
return account;
|
return account;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public AuthlibInjectorAccount fromStorage(Map<Object, Object> storage, Proxy proxy) {
|
public AuthlibInjectorAccount fromStorage(Map<Object, Object> storage) {
|
||||||
Objects.requireNonNull(storage);
|
Objects.requireNonNull(storage);
|
||||||
Objects.requireNonNull(proxy);
|
|
||||||
|
|
||||||
YggdrasilSession session = YggdrasilSession.fromStorage(storage);
|
YggdrasilSession session = YggdrasilSession.fromStorage(storage);
|
||||||
|
|
||||||
@@ -73,7 +70,7 @@ public class AuthlibInjectorAccountFactory extends AccountFactory<AuthlibInjecto
|
|||||||
|
|
||||||
AuthlibInjectorServer server = serverLookup.apply(apiRoot);
|
AuthlibInjectorServer server = serverLookup.apply(apiRoot);
|
||||||
|
|
||||||
return new AuthlibInjectorAccount(new YggdrasilService(new AuthlibInjectorProvider(server.getUrl()), proxy),
|
return new AuthlibInjectorAccount(new YggdrasilService(new AuthlibInjectorProvider(server.getUrl())),
|
||||||
server, authlibInjectorDownloader, username, session.getSelectedProfile().getId(), session);
|
server, authlibInjectorDownloader, username, session.getSelectedProfile().getId(), session);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ import org.jackhuang.hmcl.auth.AccountFactory;
|
|||||||
import org.jackhuang.hmcl.auth.CharacterSelector;
|
import org.jackhuang.hmcl.auth.CharacterSelector;
|
||||||
import org.jackhuang.hmcl.util.UUIDTypeAdapter;
|
import org.jackhuang.hmcl.util.UUIDTypeAdapter;
|
||||||
|
|
||||||
import java.net.Proxy;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@@ -39,12 +38,12 @@ public class OfflineAccountFactory extends AccountFactory<OfflineAccount> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public OfflineAccount create(CharacterSelector selector, String username, String password, Object additionalData, Proxy proxy) {
|
public OfflineAccount create(CharacterSelector selector, String username, String password, Object additionalData) {
|
||||||
return new OfflineAccount(username, getUUIDFromUserName(username));
|
return new OfflineAccount(username, getUUIDFromUserName(username));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public OfflineAccount fromStorage(Map<Object, Object> storage, Proxy proxy) {
|
public OfflineAccount fromStorage(Map<Object, Object> storage) {
|
||||||
String username = tryCast(storage.get("username"), String.class)
|
String username = tryCast(storage.get("username"), String.class)
|
||||||
.orElseThrow(() -> new IllegalStateException("Offline account configuration malformed."));
|
.orElseThrow(() -> new IllegalStateException("Offline account configuration malformed."));
|
||||||
UUID uuid = tryCast(storage.get("uuid"), String.class)
|
UUID uuid = tryCast(storage.get("uuid"), String.class)
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ import org.jackhuang.hmcl.auth.AuthenticationException;
|
|||||||
import org.jackhuang.hmcl.auth.CharacterSelector;
|
import org.jackhuang.hmcl.auth.CharacterSelector;
|
||||||
import org.jackhuang.hmcl.util.UUIDTypeAdapter;
|
import org.jackhuang.hmcl.util.UUIDTypeAdapter;
|
||||||
|
|
||||||
import java.net.Proxy;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
@@ -42,28 +41,26 @@ public class YggdrasilAccountFactory extends AccountFactory<YggdrasilAccount> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public YggdrasilAccount create(CharacterSelector selector, String username, String password, Object additionalData, Proxy proxy) throws AuthenticationException {
|
public YggdrasilAccount create(CharacterSelector selector, String username, String password, Object additionalData) throws AuthenticationException {
|
||||||
Objects.requireNonNull(selector);
|
Objects.requireNonNull(selector);
|
||||||
Objects.requireNonNull(username);
|
Objects.requireNonNull(username);
|
||||||
Objects.requireNonNull(password);
|
Objects.requireNonNull(password);
|
||||||
Objects.requireNonNull(proxy);
|
|
||||||
|
|
||||||
YggdrasilAccount account = new YggdrasilAccount(new YggdrasilService(provider, proxy), username, null, null);
|
YggdrasilAccount account = new YggdrasilAccount(new YggdrasilService(provider), username, null, null);
|
||||||
account.logInWithPassword(password, selector);
|
account.logInWithPassword(password, selector);
|
||||||
return account;
|
return account;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public YggdrasilAccount fromStorage(Map<Object, Object> storage, Proxy proxy) {
|
public YggdrasilAccount fromStorage(Map<Object, Object> storage) {
|
||||||
Objects.requireNonNull(storage);
|
Objects.requireNonNull(storage);
|
||||||
Objects.requireNonNull(proxy);
|
|
||||||
|
|
||||||
YggdrasilSession session = YggdrasilSession.fromStorage(storage);
|
YggdrasilSession session = YggdrasilSession.fromStorage(storage);
|
||||||
|
|
||||||
String username = tryCast(storage.get("username"), String.class)
|
String username = tryCast(storage.get("username"), String.class)
|
||||||
.orElseThrow(() -> new IllegalArgumentException("storage does not have username"));
|
.orElseThrow(() -> new IllegalArgumentException("storage does not have username"));
|
||||||
|
|
||||||
return new YggdrasilAccount(new YggdrasilService(provider, proxy), username, session.getSelectedProfile().getId(), session);
|
return new YggdrasilAccount(new YggdrasilService(provider), username, session.getSelectedProfile().getId(), session);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String randomToken() {
|
public static String randomToken() {
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import org.jackhuang.hmcl.util.StringUtils;
|
|||||||
import org.jackhuang.hmcl.util.UUIDTypeAdapter;
|
import org.jackhuang.hmcl.util.UUIDTypeAdapter;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.Proxy;
|
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
@@ -21,15 +20,9 @@ import static org.jackhuang.hmcl.util.Pair.pair;
|
|||||||
public class YggdrasilService {
|
public class YggdrasilService {
|
||||||
|
|
||||||
private final YggdrasilProvider provider;
|
private final YggdrasilProvider provider;
|
||||||
private final Proxy proxy;
|
|
||||||
|
|
||||||
public YggdrasilService(YggdrasilProvider provider) {
|
public YggdrasilService(YggdrasilProvider provider) {
|
||||||
this(provider, Proxy.NO_PROXY);
|
|
||||||
}
|
|
||||||
|
|
||||||
public YggdrasilService(YggdrasilProvider provider, Proxy proxy) {
|
|
||||||
this.provider = provider;
|
this.provider = provider;
|
||||||
this.proxy = proxy;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public YggdrasilSession authenticate(String username, String password, String clientToken) throws AuthenticationException {
|
public YggdrasilSession authenticate(String username, String password, String clientToken) throws AuthenticationException {
|
||||||
@@ -155,7 +148,7 @@ public class YggdrasilService {
|
|||||||
private String request(URL url, Object payload) throws AuthenticationException {
|
private String request(URL url, Object payload) throws AuthenticationException {
|
||||||
try {
|
try {
|
||||||
if (payload == null)
|
if (payload == null)
|
||||||
return NetworkUtils.doGet(url, proxy);
|
return NetworkUtils.doGet(url);
|
||||||
else
|
else
|
||||||
return NetworkUtils.doPost(url, payload instanceof String ? (String) payload : GSON.toJson(payload), "application/json");
|
return NetworkUtils.doPost(url, payload instanceof String ? (String) payload : GSON.toJson(payload), "application/json");
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
|
|||||||
Reference in New Issue
Block a user