The LDAP Authentication dialog ignores the "save password" button and
comes back.
Description
Details
- Ticket Type
- Task
Related Objects
Event Timeline
Can you please add a screenshot pf the password dialog. There are different dialogs, that ask for the password...
Can you chack if the password is stored in kwallet? (in ldapclient)
cat .kde/share/config/kabldaprc (replace password and host and everything else that is sensible data with fake data, but please mark the part that you replaced)
Please collect the responses here though, otherwise we'll have no clue where's what (except for any private client specific information that shouldn't become public.).
~ cat .kde/share/config/kabldaprc [LDAP] NumHosts=0 NumSelectedHosts=1 SelectedAuth0=Simple SelectedBase0=dc=example,dc=org SelectedBind0=uid=doe,ou=People,dc=example,dc=org SelectedHost0=ldab.example.org SelectedMech0=DIGEST-MD5 SelectedPageSize0=0 SelectedPort0=389 SelectedSecurity0=None SelectedSizeLimit0=0 SelectedTimeLimit0=0 SelectedUser0= SelectedVersion0=3 ~
The problem is reproducable:
killall -9 kded4 /usr/bin/kwalletd /usr/bin/kuiserver kdeinit4 klauncher kontact 2>/dev/null
- start kontact
- create a new message
- type a address
- password dialog shows up
It sounds mostly like the settings to LDAP are not correct and that's why the password is not storred.
- It would be good to have a valid ldapurl, just to make sure that kontact is creating the same.
- kdebugdialog enable kldap and retry and give us the log.
all what i checked is actually just request the password use it and save it to kwallet. I can't see why this is not saved.
Also test if that works:
Kaddressbook->Configure->Ldap Server Settings->select Host -> Request DN (Query Server)
I have now look through the code paths in kdepim that interacts with ldap. We actually use kdepim/libkdepim/ldap/ldapclientsearch.* for getting seach relusts from ldap servers (incidenceeditor,resourcemanagement and addresslineedit).
ldapclientsearch reads the config by itself and is treiggered to reread it when the config file is changed.
it uses ldapclientsearchconfig to set a ldapserver settings with password:
const QString pwdBindBNEntry = prefix + QString::fromLatin1( "PwdBind%1" ).arg( j ); QString pwdBindDN = config.readEntry( pwdBindBNEntry, QString() ); if ( !pwdBindDN.isEmpty() ) { //we know from settingfile, that this is empty (so it must be saved in kwallet) [...] server.setPassword( pwdBindDN ); } else { //Look at in Wallet d->wallet = KWallet::Wallet::openWallet( KWallet::Wallet::LocalWallet(), 0 ); if ( d->wallet ) { d->useWallet = true; if ( !d->wallet->setFolder( QLatin1String("ldapclient") ) ) { d->wallet->createFolder( QLatin1String("ldapclient") ); d->wallet->setFolder( QLatin1String("ldapclient") ); } d->wallet->readPassword( pwdBindBNEntry, pwdBindDN ); if (!pwdBindDN.isEmpty()) server.setPassword( pwdBindDN ); } else { d->useWallet = false; } }
-> the only way to have a empty password is when kwallet is not answering. If using setPassword(QString()) , the dialog in the screenshot is triggered.
One issue i found here is, that it saves the wallet connection forever and do not connect to the walletClosed signal (D155).
Please provide instructions to the customer how to retest and gather the necessary debug output that was added in: https://support.kolabsys.com/provider?Action=AgentTicketZoom&TicketID=20736&ArticleID=73266&ZoomExpand=0#73266
Added the infomations - but have no glue what is there technical level. That's why only some points.