/*
Copyright 2009 David Revell
This file is part of SwiFTP.
SwiFTP is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
SwiFTP is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with SwiFTP. If not, see <http://www.gnu.org/licenses/>.
*/
package org.swiftp;
import android.content.Context;
import android.content.SharedPreferences;
import android.util.Log;
public class CmdPASS extends FtpCmd implements Runnable {
String input;
public CmdPASS(SessionThread sessionThread, String input) {
// We can just discard the password for now. We're just
// following the expected dialogue, we're going to allow
// access in any case.
super(sessionThread, CmdPASS.class.toString());
this.input = input;
}
public void run() {
// User must have already executed a USER command to
// populate the Account object's username
myLog.l(Log.DEBUG, "Executing PASS");
sessionThread.writeString("230 Access granted\r\n");
sessionThread.authAttempt(true);
//
// String attemptPassword = getParameter(input, true); // silent
// String attemptUsername = sessionThread.account.getUsername();
// if(attemptUsername == null) {
// sessionThread.writeString("503 Must send USER first\r\n");
// return;
// }
// Context ctx = Globals.getContext();
// if(ctx == null) {
// // This will probably never happen, since the global
// // context is configured by the Service
// myLog.l(Log.ERROR, "No global context in PASS\r\n");
// }
// String password;
// String username;
// SharedPreferences settings = ctx.getSharedPreferences(
// Defaults.getSettingsName(), Defaults.getSettingsMode());
// username = settings.getString("username", null);
// password = settings.getString("password", null);
// if(username == null || password == null) {
// myLog.l(Log.ERROR, "Username or password misconfigured");
// sessionThread.writeString("500 Internal error during authentication");
// } else if(username.equals(attemptUsername) &&
// password.equals(attemptPassword)) {
// sessionThread.writeString("230 Access granted\r\n");
// myLog.l(Log.INFO, "User " + username + " password verified");
// sessionThread.authAttempt(true);
// } else {
// try {
// // If the login failed, sleep for one second to foil
// // brute force attacks
// Thread.sleep(1000);
// } catch(InterruptedException e) {}
// myLog.l(Log.INFO, "Failed authentication");
// sessionThread.writeString("530 Login incorrect.\r\n");
// sessionThread.authAttempt(false);
// }
}
}