refactoring

This commit is contained in:
rusefi 2020-08-15 20:37:56 -04:00
parent ce402a7cae
commit 94edcc6177
11 changed files with 53 additions and 47 deletions

View File

@ -67,6 +67,10 @@ public class NetworkConnector implements Closeable {
return NetworkConnectorResult.ERROR; return NetworkConnectorResult.ERROR;
} }
return start(authToken, context, reconnectListener, controllerConnector);
}
public NetworkConnectorResult start(String authToken, NetworkConnectorContext context, ReconnectListener reconnectListener, LinkManager controllerConnector) {
ControllerInfo controllerInfo; ControllerInfo controllerInfo;
try { try {
controllerInfo = getControllerInfo(controllerConnector, controllerConnector.getConnector().getBinaryProtocol().getStream()); controllerInfo = getControllerInfo(controllerConnector, controllerConnector.getConnector().getBinaryProtocol().getStream());

View File

@ -0,0 +1,31 @@
package com.rusefi.auth;
import org.jetbrains.annotations.NotNull;
import static com.rusefi.ui.storage.PersistentConfiguration.getConfig;
public class AutoTokenUtil {
public static final int TOKEN_LENGTH = 8 + 1 + 4 + 1 + 4 + 1 + 4 + 1 + 12;
public static final String TOKEN_PROFILE_URL = "https://rusefi.com/forum/ucp.php?i=254";
public static final String TOKEN_WARNING = "Please copy token from your forum profile";
private static final String AUTH_TOKEN = "auth_token";
public static boolean isToken(String content) {
if (content == null)
return false;
content = content.trim();
if (content.length() != TOKEN_LENGTH)
return false;
return content.charAt(8) == '-' && content.charAt(8 + 1 + 4) == '-';
}
public static void setAuthToken(String value) {
getConfig().getRoot().setProperty(AUTH_TOKEN, value);
}
@NotNull
public static String getAuthToken() {
return getConfig().getRoot().getProperty(AUTH_TOKEN);
}
}

View File

@ -1,15 +0,0 @@
package com.rusefi.auth;
public class AutoTokenUtil {
public static final int TOKEN_LENGTH = 8 + 1 + 4 + 1 + 4 + 1 + 4 + 1 + 12;
public static boolean isToken(String content) {
if (content == null)
return false;
content = content.trim();
if (content.length() != TOKEN_LENGTH)
return false;
return content.charAt(8) == '-' && content.charAt(8 + 1 + 4) == '-';
}
}

View File

@ -1,6 +1,7 @@
package com.rusefi.tools.online; package com.rusefi.tools.online;
import com.devexperts.logging.Logging; import com.devexperts.logging.Logging;
import com.rusefi.auth.AutoTokenUtil;
import com.rusefi.shared.FileUtil; import com.rusefi.shared.FileUtil;
import com.rusefi.tune.xml.Msq; import com.rusefi.tune.xml.Msq;
import com.rusefi.ui.AuthTokenPanel; import com.rusefi.ui.AuthTokenPanel;
@ -89,7 +90,7 @@ public class Online {
@Nullable @Nullable
public static BasicFuture<UploadResult> uploadFile(JComponent parent, FutureCallback<UploadResult> callback, final String fileName) { public static BasicFuture<UploadResult> uploadFile(JComponent parent, FutureCallback<UploadResult> callback, final String fileName) {
BasicFuture<UploadResult> result = new BasicFuture<>(callback); BasicFuture<UploadResult> result = new BasicFuture<>(callback);
String authToken = AuthTokenPanel.getAuthToken(); String authToken = AutoTokenUtil.getAuthToken();
if (!AuthTokenPanel.hasToken()) { if (!AuthTokenPanel.hasToken()) {
AuthTokenPanel.showError(parent); AuthTokenPanel.showError(parent);
return null; return null;

View File

@ -3,7 +3,6 @@ package com.rusefi.ui;
import com.rusefi.auth.AutoTokenUtil; import com.rusefi.auth.AutoTokenUtil;
import com.rusefi.ui.storage.PersistentConfiguration; import com.rusefi.ui.storage.PersistentConfiguration;
import com.rusefi.ui.util.URLLabel; import com.rusefi.ui.util.URLLabel;
import org.jetbrains.annotations.NotNull;
import javax.swing.*; import javax.swing.*;
import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentEvent;
@ -13,12 +12,7 @@ import java.awt.datatransfer.*;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.io.IOException; import java.io.IOException;
import static com.rusefi.ui.storage.PersistentConfiguration.getConfig;
public class AuthTokenPanel { public class AuthTokenPanel {
private static final String TOKEN_WARNING = "Please copy token from your forum profile";
private static final String AUTH_TOKEN = "auth_token";
private static final String TOKEN_PROFILE_URL = "https://rusefi.com/forum/ucp.php?i=254";
private final JPanel content = new JPanel(new BorderLayout()); private final JPanel content = new JPanel(new BorderLayout());
private final JTextField authTokenTestField = new JTextField(); private final JTextField authTokenTestField = new JTextField();
@ -31,7 +25,7 @@ public class AuthTokenPanel {
authTokenTestField.setPreferredSize(new Dimension(200, 24)); authTokenTestField.setPreferredSize(new Dimension(200, 24));
String authToken = getAuthToken(); String authToken = AutoTokenUtil.getAuthToken();
System.out.println("Got from settings: " + authToken); System.out.println("Got from settings: " + authToken);
authTokenTestField.getDocument().addDocumentListener(new DocumentListener() { authTokenTestField.getDocument().addDocumentListener(new DocumentListener() {
@ -88,9 +82,9 @@ public class AuthTokenPanel {
*/ */
content.add(top); content.add(top);
if (authToken.trim().isEmpty()) { if (authToken.trim().isEmpty()) {
authToken = TOKEN_WARNING; authToken = AutoTokenUtil.TOKEN_WARNING;
} }
content.add(new URLLabel("Manage authentication token at your forum profile", TOKEN_PROFILE_URL), BorderLayout.SOUTH); content.add(new URLLabel("Manage authentication token at your forum profile", AutoTokenUtil.TOKEN_PROFILE_URL), BorderLayout.SOUTH);
authTokenTestField.setText(authToken); authTokenTestField.setText(authToken);
} }
@ -104,7 +98,7 @@ public class AuthTokenPanel {
} }
private void grabText() { private void grabText() {
setAuthToken(AuthTokenPanel.this.authTokenTestField.getText()); AutoTokenUtil.setAuthToken(AuthTokenPanel.this.authTokenTestField.getText());
PersistentConfiguration.getConfig().save(); PersistentConfiguration.getConfig().save();
} }
@ -114,21 +108,12 @@ public class AuthTokenPanel {
} }
} }
public static void setAuthToken(String value) {
getConfig().getRoot().setProperty(AUTH_TOKEN, value);
}
@NotNull
public static String getAuthToken() {
return getConfig().getRoot().getProperty(AUTH_TOKEN);
}
public JPanel getContent() { public JPanel getContent() {
return content; return content;
} }
public static boolean hasToken() { public static boolean hasToken() {
return AutoTokenUtil.isToken(getAuthToken()); return AutoTokenUtil.isToken(AutoTokenUtil.getAuthToken());
} }
public String getToken() { public String getToken() {

View File

@ -3,11 +3,11 @@ package com.rusefi.sensor_logs;
import com.rusefi.FileLog; import com.rusefi.FileLog;
import com.rusefi.NamedThreadFactory; import com.rusefi.NamedThreadFactory;
import com.rusefi.Timeouts; import com.rusefi.Timeouts;
import com.rusefi.auth.AutoTokenUtil;
import com.rusefi.core.Sensor; import com.rusefi.core.Sensor;
import com.rusefi.core.SensorCentral; import com.rusefi.core.SensorCentral;
import com.rusefi.tools.online.Online; import com.rusefi.tools.online.Online;
import com.rusefi.tools.online.UploadResult; import com.rusefi.tools.online.UploadResult;
import com.rusefi.ui.AuthTokenPanel;
import java.io.File; import java.io.File;
import java.util.concurrent.Executor; import java.util.concurrent.Executor;
@ -58,7 +58,7 @@ public class BinarySensorLogRestarter implements SensorLog {
UPLOAD_EXECUTOR.execute(new Runnable() { UPLOAD_EXECUTOR.execute(new Runnable() {
@Override @Override
public void run() { public void run() {
UploadResult result = Online.upload(new File(fileName), AuthTokenPanel.getAuthToken()); UploadResult result = Online.upload(new File(fileName), AutoTokenUtil.getAuthToken());
System.out.println(result.toString()); System.out.println(result.toString());
} }
}); });

View File

@ -6,6 +6,7 @@ import com.opensr5.Logger;
import com.opensr5.ini.IniFileModel; import com.opensr5.ini.IniFileModel;
import com.opensr5.io.ConfigurationImageFile; import com.opensr5.io.ConfigurationImageFile;
import com.rusefi.*; import com.rusefi.*;
import com.rusefi.auth.AutoTokenUtil;
import com.rusefi.autodetect.PortDetector; import com.rusefi.autodetect.PortDetector;
import com.rusefi.autodetect.SerialAutoChecker; import com.rusefi.autodetect.SerialAutoChecker;
import com.rusefi.binaryprotocol.BinaryProtocol; import com.rusefi.binaryprotocol.BinaryProtocol;
@ -24,7 +25,6 @@ import com.rusefi.maintenance.ExecHelper;
import com.rusefi.proxy.client.LocalApplicationProxy; import com.rusefi.proxy.client.LocalApplicationProxy;
import com.rusefi.tools.online.Online; import com.rusefi.tools.online.Online;
import com.rusefi.tune.xml.Msq; import com.rusefi.tune.xml.Msq;
import com.rusefi.ui.AuthTokenPanel;
import com.rusefi.ui.light.LightweightGUI; import com.rusefi.ui.light.LightweightGUI;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@ -124,7 +124,7 @@ public class ConsoleTools {
private static void uploadTune(String[] args) { private static void uploadTune(String[] args) {
String fileName = args[1]; String fileName = args[1];
String authToken = AuthTokenPanel.getAuthToken(); String authToken = AutoTokenUtil.getAuthToken();
System.out.println("Trying to upload " + fileName + " using " + authToken); System.out.println("Trying to upload " + fileName + " using " + authToken);
Online.upload(new File(fileName), authToken); Online.upload(new File(fileName), authToken);
} }
@ -171,7 +171,7 @@ public class ConsoleTools {
private static void setAuthToken(String[] args) { private static void setAuthToken(String[] args) {
String newToken = args[1]; String newToken = args[1];
System.out.println("Saving auth token " + newToken); System.out.println("Saving auth token " + newToken);
AuthTokenPanel.setAuthToken(newToken); AutoTokenUtil.setAuthToken(newToken);
} }
private static void printVehicleToken() { private static void printVehicleToken() {
@ -180,7 +180,7 @@ public class ConsoleTools {
} }
private static void printAuthToken() { private static void printAuthToken() {
String authToken = AuthTokenPanel.getAuthToken(); String authToken = AutoTokenUtil.getAuthToken();
if (authToken.trim().isEmpty()) { if (authToken.trim().isEmpty()) {
System.out.println("Auth token not defined. Please use " + SET_AUTH_TOKEN + " command"); System.out.println("Auth token not defined. Please use " + SET_AUTH_TOKEN + " command");
System.out.println("\tPlease see https://github.com/rusefi/rusefi/wiki/Online"); System.out.println("\tPlease see https://github.com/rusefi/rusefi/wiki/Online");
@ -329,7 +329,7 @@ public class ConsoleTools {
Msq tune = MsqFactory.valueOf(image); Msq tune = MsqFactory.valueOf(image);
tune.writeXmlFile(Online.outputXmlFileName); tune.writeXmlFile(Online.outputXmlFileName);
String authToken = AuthTokenPanel.getAuthToken(); String authToken = AutoTokenUtil.getAuthToken();
System.out.println("Using " + authToken); System.out.println("Using " + authToken);
Online.upload(new File(Online.outputXmlFileName), authToken); Online.upload(new File(Online.outputXmlFileName), authToken);
} }

View File

@ -5,12 +5,11 @@ import com.rusefi.auth.AutoTokenUtil;
import com.rusefi.autodetect.PortDetector; import com.rusefi.autodetect.PortDetector;
import com.rusefi.proxy.NetworkConnector; import com.rusefi.proxy.NetworkConnector;
import com.rusefi.proxy.NetworkConnectorContext; import com.rusefi.proxy.NetworkConnectorContext;
import com.rusefi.ui.AuthTokenPanel;
public class NetworkConnectorStartup { public class NetworkConnectorStartup {
private final static Logging log = Logging.getLogging(NetworkConnectorStartup.class); private final static Logging log = Logging.getLogging(NetworkConnectorStartup.class);
public static void start() { public static void start() {
String authToken = AuthTokenPanel.getAuthToken(); String authToken = AutoTokenUtil.getAuthToken();
if (!AutoTokenUtil.isToken(authToken)) { if (!AutoTokenUtil.isToken(authToken)) {
System.err.println("Please configure authentication token using 'set_auth_token' command"); System.err.println("Please configure authentication token using 'set_auth_token' command");
return; return;

View File

@ -33,7 +33,7 @@ public class BroadcastTab {
disconnect.setEnabled(false); disconnect.setEnabled(false);
broadcast.addActionListener(e -> { broadcast.addActionListener(e -> {
String authToken = AuthTokenPanel.getAuthToken(); String authToken = AutoTokenUtil.getAuthToken();
if (!AutoTokenUtil.isToken(authToken)) { if (!AutoTokenUtil.isToken(authToken)) {
status.setText("Auth token is required to broadcast ECU"); status.setText("Auth token is required to broadcast ECU");
return; return;

View File

@ -3,6 +3,7 @@ package com.rusefi.ts_plugin;
import com.rusefi.NamedThreadFactory; import com.rusefi.NamedThreadFactory;
import com.rusefi.SignatureHelper; import com.rusefi.SignatureHelper;
import com.rusefi.Timeouts; import com.rusefi.Timeouts;
import com.rusefi.auth.AutoTokenUtil;
import com.rusefi.autoupdate.AutoupdateUtil; import com.rusefi.autoupdate.AutoupdateUtil;
import com.rusefi.io.serial.StreamStatistics; import com.rusefi.io.serial.StreamStatistics;
import com.rusefi.io.tcp.ServerSocketReference; import com.rusefi.io.tcp.ServerSocketReference;
@ -275,7 +276,7 @@ public class RemoteTab {
@NotNull @NotNull
private ApplicationRequest getApplicationRequest(PublicSession publicSession) { private ApplicationRequest getApplicationRequest(PublicSession publicSession) {
SessionDetails sessionDetails = new SessionDetails(publicSession.getControllerInfo(), AuthTokenPanel.getAuthToken(), SessionDetails sessionDetails = new SessionDetails(publicSession.getControllerInfo(), AutoTokenUtil.getAuthToken(),
Integer.parseInt(oneTimePasswordControl.getText()), rusEFIVersion.CONSOLE_VERSION); Integer.parseInt(oneTimePasswordControl.getText()), rusEFIVersion.CONSOLE_VERSION);
ApplicationRequest applicationRequest = new ApplicationRequest(sessionDetails, publicSession.getVehicleOwner()); ApplicationRequest applicationRequest = new ApplicationRequest(sessionDetails, publicSession.getVehicleOwner());