User must change password on AD is broken
Concerned version
Version: 2.0.1
Platform: Nginx
Summary
I'm using AD (samba4) as auth module, and when I set an account to change its password on next login, he can't log into LL::NG. There's tha usual "Wrong credentials" displayed. This was working fine in the 1.9.X days.
This is 100% reproducible, on 3 different (but with mostly similar configuration) installations. I'm happy to run more test if you need me to.
Logs
févr. 01 19:07:10 proxyin2 LLNG[7775]: User not authenticated, Try in use, cancel redirection
févr. 01 19:07:10 proxyin2 LLNG[7775]: Start routing default route
févr. 01 19:07:10 proxyin2 LLNG[7775]: Processing restoreArgs
févr. 01 19:07:10 proxyin2 LLNG[7775]: Processing controlUrl
févr. 01 19:07:10 proxyin2 LLNG[7775]: Processing code ref
févr. 01 19:07:10 proxyin2 LLNG[7775]: Cancel called, push authCancel calls
févr. 01 19:07:10 proxyin2 LLNG[7775]: Processing code ref
févr. 01 19:07:10 proxyin2 LLNG[7775]: Launching ::Issuer::CAS::storeEnvAndCheckGateway
févr. 01 19:07:10 proxyin2 LLNG[7775]: Processing code ref
févr. 01 19:07:10 proxyin2 LLNG[7775]: Launching ::Issuer::OpenIDConnect::exportRequestParameters
févr. 01 19:07:10 proxyin2 LLNG[7775]: Processing code ref
févr. 01 19:07:10 proxyin2 LLNG[7775]: Launching ::Plugins::AutoSignin::check
févr. 01 19:07:10 proxyin2 LLNG[7775]: Processing extractFormInfo
févr. 01 19:07:10 proxyin2 LLNG[7775]: Trying to load token 1548972544_5139
févr. 01 19:07:10 proxyin2 LLNG[7775]: Processing getUser
févr. 01 19:07:10 proxyin2 LLNG[7775]: Processing authenticate
févr. 01 19:07:10 proxyin2 LLNG[7775]: Call bind for CN=Test,OU=People,DC=lapiole,DC=org
févr. 01 19:07:10 proxyin2 LLNG[7775]: Bad password
févr. 01 19:07:10 proxyin2 llng-fastcgi-server[7773]: Use of uninitialized value $computed in bitwise and (&) at /usr/share/perl5/vendor_perl/Lemonldap/NG/Portal/Auth/AD.pm line 77.
févr. 01 19:07:10 proxyin2 LLNG[7775]: -> authResult = 5
févr. 01 19:07:10 proxyin2 LLNG[7775]: Processing setSessionInfo
févr. 01 19:07:10 proxyin2 LLNG[7775]: Processing setMacros
févr. 01 19:07:10 proxyin2 LLNG[7775]: Processing setPersistentSessionInfo
févr. 01 19:07:11 proxyin2 LLNG[7775]: Persistent session found for test
févr. 01 19:07:11 proxyin2 LLNG[7775]: Restore persistent parameter loginHistory
févr. 01 19:07:11 proxyin2 LLNG[7775]: Restore persistent parameter _loginHistory
févr. 01 19:07:11 proxyin2 LLNG[7775]: Processing storeHistory
févr. 01 19:07:11 proxyin2 LLNG[7775]: Current login saved into failedLogin
févr. 01 19:07:11 proxyin2 LLNG[7775]: Current login -> 5
févr. 01 19:07:11 proxyin2 LLNG[7775]: Found 'whatToTrace' -> test
févr. 01 19:07:11 proxyin2 LLNG[7775]: Update test persistent session
févr. 01 19:07:11 proxyin2 LLNG[7775]: Processing code ref
févr. 01 19:07:11 proxyin2 LLNG[7775]: Launching ::Plugins::BruteForceProtection::run
févr. 01 19:07:11 proxyin2 LLNG[7775]: Number of failedLogin = 2
févr. 01 19:07:11 proxyin2 LLNG[7775]: Processing code ref
févr. 01 19:07:11 proxyin2 LLNG[7775]: Launching ::Plugins::GrantSession::run
févr. 01 19:07:11 proxyin2 LLNG[7775]: Processing code ref
févr. 01 19:07:11 proxyin2 LLNG[7775]: Returned error: 5
févr. 01 19:07:11 proxyin2 LLNG[7775]: Skin returned: error
févr. 01 19:07:11 proxyin2 LLNG[7775]: Calling sendHtml with template error
Backends used
Using MySQL as storage backend for both config and session (Browsable::MySQL)