Page MenuHomePhorge

Kontact LDAP password not saved
Closed, ResolvedPublic

Description

The LDAP Authentication dialog ignores the "save password" button and
comes back.

Details

Ticket Type
Task

Event Timeline

adomaitis created this task.
adomaitis added projects: KDE PIM, Restricted Project.
mollekopf moved this task from Backlog to Need Resolution on the KDE PIM board.
mollekopf subscribed.

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)

mollekopf raised the priority of this task from 60 to High.May 2 2016, 1:46 PM

OTRS ticket #1016880. All requests for user comments should go there.

OTRS ticket #1016880. All requests for user comments should go there.

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.).

kobtact-ldap-password-2.png (287×480 px, 26 KB)

~ 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)

mollekopf moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.
mollekopf added a subscriber: knauss.
mollekopf moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.

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).

knauss moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.May 11 2016, 9:58 AM

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.