Bug #54104 [NEW]: ldap_sasl_bind fails but not the first time
From:
Operating system: linux
PHP version: 5.2.17
Package: LDAP related
Bug Type: Bug
Bug description:ldap_sasl_bind fails but not the first time
Description:
------------
When using ldap_sasl_bind to bind to active directory the connection is
successful only the first time. When executing the script a second time
shortly after the first execution the bind fails. After around 2 minutes
the bind is again possible.
I suspect that it ma be related to digest md5 fast reauth.
The sample code when executed via web server
http://my_apache_server/ldap.php it binds succesfully
the first time.
hitting F5 in the browser:
Warning: ldap_sasl_bind() [function.ldap-sasl-bind]: Unable to bind to
server: Invalid credentials
After 2 minutes it works again for the first time.
This problem never happens when I execude the script via command line:
php -q ./ldap.php
any number of times in a row.
on tcpdump I see that the nonce-count is inceasing. the first failure has
nc=00000002.
after waiting 2 minutes I see that nc starts back from 1.
when starting php -q ./ldap.php the nc has always the nc=00000001.
My conclusion is that there is some kind of cache/fast reauth/session when
php generates the error when working as a part of httpd.
After ivestigating netstat I noticed that the second bind fails until I see
on netstat the connection in the TIME_WAIR state:
netstat -anpe|grep 389
tcp 0 0 client:42457 ad_server:389 TIME_WAIT
0 0 -
when the connection finally dissapears the first sasl bind is successful.
Of course when I hit F5 many time I have many connections with TIME_WAIT
state. After all of them dissapear the bind is successfull only for the
first time.
Test script:
---------------
$conn = @ldap_connect( "ad_server" ));
ldap_set_option ( $conn, LDAP_OPT_PROTOCOL_VERSION, 3));
ldap_sasl_bind ( $conn, NULL,
"password",'DIGEST-MD5','my_realm','ldap_username',NULL);
Expected result:
----------------
successful sasl bind without the need to wait 2 minutes.
Actual result:
--------------
when the code is executed the second time
Warning: ldap_sasl_bind() [function.ldap-sasl-bind]: Unable to bind to
server: Invalid credentials
--
Edit bug report at http://bugs.php.net/bug.php?id=54104&edit=1
--
Try a snapshot (PHP 5.2): http://bugs.php.net/fix.php?id=54104&r=trysnapshot52
Try a snapshot (PHP 5.3): http://bugs.php.net/fix.php?id=54104&r=trysnapshot53
Try a snapshot (trunk): http://bugs.php.net/fix.php?id=54104&r=trysnapshottrunk
Fixed in SVN: http://bugs.php.net/fix.php?id=54104&r=fixed
Fixed in SVN and need be documented: http://bugs.php.net/fix.php?id=54104&r=needdocs
Fixed in release: http://bugs.php.net/fix.php?id=54104&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=54104&r=needtrace
Need Reproduce Script: http://bugs.php.net/fix.php?id=54104&r=needscript
Try newer version: http://bugs.php.net/fix.php?id=54104&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=54104&r=support
Expected behavior: http://bugs.php.net/fix.php?id=54104&r=notwrong
Not enough info: http://bugs.php.net/fix.php?id=54104&r=notenoughinfo
Submitted twice: http://bugs.php.net/fix.php?id=54104&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=54104&r=globals
PHP 4 support discontinued: http://bugs.php.net/fix.php?id=54104&r=php4
Daylight Savings: http://bugs.php.net/fix.php?id=54104&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=54104&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=54104&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=54104&r=float
No Zend Extensions: http://bugs.php.net/fix.php?id=54104&r=nozend
MySQL Configuration Error: http://bugs.php.net/fix.php?id=54104&r=mysqlcfg
Thread (4 messages)
- mmx at riz dot pl