Skip to content

Commit d0f037a

Browse files
author
jantje
committed
#1387 use secure stored pwd when no pwd found in code
1 parent 896f07c commit d0f037a

File tree

3 files changed

+17
-8
lines changed

3 files changed

+17
-8
lines changed

io.sloeber.core/src/io/sloeber/core/tools/uploaders/UploadSketchWrapper.java

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929

3030
import io.sloeber.core.Messages;
3131
import io.sloeber.core.api.BoardDescription;
32+
import io.sloeber.core.api.PasswordManager;
3233
import io.sloeber.core.api.SerialManager;
3334
import io.sloeber.core.api.SloeberProject;
3435
import io.sloeber.core.common.IndexHelper;
@@ -108,6 +109,7 @@ private class UploadJobWrapper extends Job {
108109
private ICConfigurationDescription myConfDes;
109110
private String myNAmeTag;
110111
private IProject myProject;
112+
private String myProvidedUploadPort;
111113

112114
public UploadJobWrapper(String name, SloeberProject project, ICConfigurationDescription cConf) {
113115
super(name);
@@ -124,6 +126,7 @@ protected IStatus run(IProgressMonitor monitor) {
124126

125127
String projectName = myProject.getName();
126128
BoardDescription boardDescriptor = mySProject.getBoardDescription(myConfDes.getName(), true);
129+
myProvidedUploadPort = boardDescriptor.getActualUploadPort();
127130

128131
MessageConsole console = Helpers.findConsole(Messages.Upload_console_name.replace(PROJECT, projectName));
129132
console.clearConsole();
@@ -153,7 +156,7 @@ public void run() {
153156
highLevelStream.println(message);
154157
monitor.beginTask(message, 2);
155158
try {
156-
WeStoppedTheComPort = SerialManager.StopSerialMonitor(boardDescriptor.getActualUploadPort());
159+
WeStoppedTheComPort = SerialManager.StopSerialMonitor(myProvidedUploadPort);
157160
} catch (Exception e) {
158161
ret = new Status(IStatus.WARNING, CORE_PLUGIN_ID, Messages.Upload_Error_com_port, e);
159162
log(ret);
@@ -171,7 +174,7 @@ public void run() {
171174
} finally {
172175
try {
173176
if (WeStoppedTheComPort) {
174-
SerialManager.StartSerialMonitor(boardDescriptor.getActualUploadPort());
177+
SerialManager.StartSerialMonitor(myProvidedUploadPort);
175178
}
176179
} catch (Exception e) {
177180
ret = new Status(IStatus.WARNING, CORE_PLUGIN_ID, Messages.Upload_Error_serial_monitor_restart, e);
@@ -185,7 +188,7 @@ public void run() {
185188
private boolean actualUpload(IProgressMonitor monitor, MessageConsoleStream highStream,
186189
MessageConsoleStream outStream, MessageConsoleStream errStream) {
187190
BoardDescription boardDescr = mySProject.getBoardDescription(myConfDes.getName(), true);
188-
String uploadPort = boardDescr.getActualUploadPort();
191+
String uploadPort = myProvidedUploadPort;
189192

190193
IEnvironmentVariableManager envManager = CCorePlugin.getDefault().getBuildEnvironmentManager();
191194
IContributedEnvironment contribEnv = envManager.getContributedEnvironment();
@@ -234,9 +237,10 @@ private boolean actualUpload(IProgressMonitor monitor, MessageConsoleStream high
234237
* @return the password string or no_pwd_found_in_code if not found
235238
*/
236239
@SuppressWarnings("nls")
237-
private String getPasswordFromCode() {
240+
private String getPasswordFromCode(String defaultPassword) {
241+
238242
String parameter = IndexHelper.findParameterInFunction(myProject.getProject(), "setup",
239-
"ArduinoOTA.setPassword", "no_pwd_found_in_code");
243+
"ArduinoOTA.setPassword", defaultPassword);
240244
return parameter.replaceAll("\\(.*\\)", "").trim();
241245

242246
}
@@ -251,7 +255,12 @@ private String getOTAPortFromCode() {
251255

252256
private void setEnvironmentvarsForAutorizedUpload(IContributedEnvironment contribEnv,
253257
ICConfigurationDescription configurationDescription) {
254-
String passWord = getPasswordFromCode();
258+
String defaultPassword = "no_pwd_configured_nor_found_in_code"; //$NON-NLS-1$
259+
PasswordManager pwdManager = new PasswordManager();
260+
if (pwdManager.setHost(myProvidedUploadPort)) {
261+
defaultPassword = pwdManager.getPassword();
262+
}
263+
String passWord = getPasswordFromCode(defaultPassword);
255264
String OTAPort = getOTAPortFromCode();
256265
IEnvironmentVariable var = new EnvironmentVariable(ENV_KEY_NETWORK_AUTH, passWord);
257266
contribEnv.addVariable(var, configurationDescription);

io.sloeber.ui/src/io/sloeber/ui/actions/UploadProjectHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public UploadJobHandler(IProject buildProject, boolean isProgram) {
4141

4242
@Override
4343
protected IStatus run(IProgressMonitor monitor) {
44-
boolean canUpload = false;
44+
boolean canUpload = true;
4545
IStatus retStatus = Status.OK_STATUS;
4646
if (MyPreferences.getBuildBeforeUploadOption()) {
4747
try {

io.sloeber.ui/src/io/sloeber/ui/project/properties/PasswordDialog.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public PasswordDialog(Shell parentShell) {
5050

5151
@Override
5252
protected Control createDialogArea(Composite parent) {
53-
parent.getShell().setText(Messages.ui_sec_login_and_password + this.myPassWordmanager.getHost());
53+
parent.getShell().setText(Messages.ui_sec_login_and_password + ' ' + this.myPassWordmanager.getHost());
5454
Composite container = (Composite) super.createDialogArea(parent);
5555
GridLayout layout = new GridLayout(2, false);
5656
layout.marginRight = 5;

0 commit comments

Comments
 (0)