Remove proxy from AccountFactory

This commit is contained in:
yushijinhun
2018-07-18 16:21:18 +08:00
parent 141cda13f1
commit 2f6c7e1ce2
8 changed files with 16 additions and 38 deletions

View File

@@ -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();

View File

@@ -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();

View File

@@ -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);
} }
} }

View File

@@ -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);
} }

View File

@@ -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);
} }
} }

View File

@@ -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)

View File

@@ -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() {

View File

@@ -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) {