Summary: | FTP KIO slave often forgets password | ||
---|---|---|---|
Product: | [Unmaintained] kio | Reporter: | Martin Pärtel <martin.partel> |
Component: | ftp | Assignee: | David Faure <faure> |
Status: | RESOLVED FIXED | ||
Severity: | normal | CC: | lotorev |
Priority: | NOR | ||
Version: | unspecified | ||
Target Milestone: | --- | ||
Platform: | OpenBSD | ||
OS: | Linux | ||
Latest Commit: | Version Fixed In: | 4.7 | |
Sentry Crash Report: |
Description
Martin Pärtel
2006-03-31 23:23:44 UTC
Discovered a "workaround": log in to an FTP site, enter a directory and immediately go up one directory, re-enter the password (without checking Keep password). After this, the password does not seem to "time out". Keep password = store it in KWallet. Since you are not using KWallet, the password is lost in oblivion. Let me describe my problem, that can confirm this bug. I setup a ftp server with proper user login name and empty password. If I contact it from client via konqueror (all KDE versions from SuSE 9.2 up to SuSE 10.2), login name is specified in addres, it will ask me for password even I check "remember password ...". Additional info: since empty password can be still valid, check extra in kdelibs/kioslave/ftp/ftp.cc bool Ftp::ftpLogin() ... bool missing_password = false; AuthInfo info; info.url.setProtocol( "ftp" ); info.url.setHost( m_host ); info.url.setPort( m_port ); // Try anonymous login if both username/password // information is blank. if (user.isEmpty() && pass.isEmpty()) { user = FTP_LOGIN; pass = FTP_PASSWD; } else if (!user.isEmpty() && pass.isEmpty()) { info.verifyPath = true; info.username = user; missing_password = !checkCachedAuthentication( info ) ) info.username = ""; } info.url.setUser( user ); QByteArray tempbuf; int failedAuth = 0; do { // Check the cache and/or prompt user for password if 1st // login attempt failed OR the user supplied a login name, // but no password. if ( failedAuth > 0 || missing_password ) { QString errorMsg; kDebug(7102) << "Prompting user for login info..." << endl; // Ask user if we should retry after when login fails! if( failedAuth > 0 ) { errorMsg = i18n("Message sent:\nLogin using username=%1 and " "password=[hidden]\n\nServer replied:\n%2\n\n" , user, ftpResponse(0)); } if ( user != FTP_LOGIN ) info.username = user; info.prompt = i18n("You need to supply a username and a password " "to access this site."); info.commentLabel = i18n( "Site:" ); info.comment = i18n("<b>%1</b>", m_host ); info.keepPassword = true; // Prompt the user for persistence as well. info.readOnly = (!m_user.isEmpty() && m_user != FTP_LOGIN); bool disablePassDlg = config()->readEntry( "DisablePassDlg", false ); if ( disablePassDlg || !openPasswordDialog( info, errorMsg ) ) { error( ERR_USER_CANCELED, m_host ); return false; } else { user = info.username; pass = info.password; } } tempbuf = "user "; *** Bug 268629 has been marked as a duplicate of this bug. *** Git commit 3ab6c7f05f113353435e10b6d6fd0fdbbd495855 by Dawit Alemayehu. Committed on 22/04/2011 at 03:40. Pushed by adawit into branch 'master'. Fixed most of the issue related to login. BUG: 258888 BUG: 99686 BUG: 143488 BUG: 124675 FIXED-IN: 4.7 REVIEW: 101173 M +83 -33 kioslave/ftp/ftp.cpp M +3 -1 kioslave/ftp/ftp.h http://commits.kde.org/kdelibs/3ab6c7f05f113353435e10b6d6fd0fdbbd495855 |