Chris Ridd a écrit :
On 26 May 2009, at 15:56, Guillaume Rousse wrote:
Chris Ridd a écrit :
On 26 May 2009, at 14:42, Guillaume Rousse wrote:
Hello list.
Some time ago, I had an issue with set_password() not handling
controls:
http://www.nntp.perl.org/group/perl.ldap/2008/09/msg2950.html
It was fixed in perl-ldap 0.38.
I also opened an ITS in openldap, because apparently password modify
exop was not returning ppolicy control correctly:
http://www.openldap.org/lists/openldap-bugs/200809/msg00178.html
It was fixed in openldap 2.4.12
However, it still doesn't work. The following test case shows than
the value returned by $response->control(
LDAP_CONTROL_PASSWORDPOLICY ) is always '1', instead of an instance
of Net::LDAP::Control::PasswordPolicy class.
Can you give us BER dumps of the exop itself and the response?
Is there any other way beyond network capture directly ?
It is the only way to prove what's being sent/returned is buggy (or
not). If the data being sent/returned is good, we look to see where the
perl code's gone wrong, if it is bad there's not much we can do.
Use the debug method on your Net::LDAP object to get the output, maybe
xx out the sensitive hex and ASCII data.
Here you have, with both debug output mode.
--
BOFH excuse #372:
Forced to support NT servers; sysadmins quit.
Net::LDAP=HASH(0x9e63030) sending:
0000 67: SEQUENCE {
0002 1: INTEGER = 1
0005 62: [APPLICATION 0] {
0007 1: INTEGER = 3
000A 47: STRING = 'uid=rousse,ou=users,dc=msr-inria,dc=inria,dc=fr'
003B 8: [CONTEXT 0]
003D : 54 63 48 65 4B 40 32 31 __ __ __ __ __ __ __ __ XXXXXXX
0045 : }
0045 : }
Net::LDAP=HASH(0x9e63030) received:
0000 12: SEQUENCE {
0002 1: INTEGER = 1
0005 7: [APPLICATION 1] {
0007 1: ENUM = 0
000A 0: STRING = ''
000C 0: STRING = ''
000E : }
000E : }
Net::LDAP=HASH(0x9e63030) sending:
0000 68: SEQUENCE {
0002 1: INTEGER = 2
0005 32: [APPLICATION 23] {
0007 23: [CONTEXT 0]
0009 : 31 2E 33 2E 36 2E 31 2E 34 2E 31 2E 34 32 30 33
1.3.6.1.4.1.4203
0019 : 2E 31 2E 31 31 2E 31 __ __ __ __ __ __ __ __ __ .1.11.1
0020 5: [CONTEXT 1]
0022 : 30 03 82 01 61 __ __ __ __ __ __ __ __ __ __ __ 0...a
0027 : }
0027 29: [CONTEXT 0] {
0029 27: SEQUENCE {
002B 25: STRING = '1.3.6.1.4.1.42.2.27.8.5.1'
0046 : }
0046 : }
0046 : }
Net::LDAP=HASH(0x9e63030) received:
0000 88: SEQUENCE {
0002 1: INTEGER = 2
0005 45: [APPLICATION 24] {
0007 1: ENUM = 19
000A 0: STRING = ''
000C 38: STRING = 'Password fails quality checking policy'
0034 : }
0034 36: [CONTEXT 0] {
0036 34: SEQUENCE {
0038 25: STRING = '1.3.6.1.4.1.42.2.27.8.5.1'
0053 5: STRING
0055 : 30 03 81 01 06 __ __ __ __ __ __ __ __ __ __ __ 0....
005A : }
005A : }
005A : }
Net::LDAP=HASH(0x9136ff0) sending:
30 43 02 01 01 60 3E 02 01 03 04 2F 75 69 64 3D 0C...`>..../uid=
72 6F 75 73 73 65 2C 6F 75 3D 75 73 65 72 73 2C rousse,ou=users,
64 63 3D 6D 73 72 2D 69 6E 72 69 61 2C 64 63 3D dc=msr-inria,dc=
69 6E 72 69 61 2C 64 63 3D 66 72 80 08 54 XX XX inria,dc=fr..XXX
XX XX XX XX XX __ __ __ __ __ __ __ __ __ __ __ XXXXX
Net::LDAP=HASH(0x9136ff0) received:
30 0C 02 01 01 61 07 0A 01 00 04 00 04 00 __ __ 0....a........
Net::LDAP=HASH(0x9136ff0) sending:
30 44 02 01 02 77 20 80 17 31 2E 33 2E 36 2E 31 0D...w ..1.3.6.1
2E 34 2E 31 2E 34 32 30 33 2E 31 2E 31 31 2E 31 .4.1.4203.1.11.1
81 05 30 03 82 01 61 A0 1D 30 1B 04 19 31 2E 33 ..0...a..0...1.3
2E 36 2E 31 2E 34 2E 31 2E 34 32 2E 32 2E 32 37 .6.1.4.1.42.2.27
2E 38 2E 35 2E 31 __ __ __ __ __ __ __ __ __ __ .8.5.1
Net::LDAP=HASH(0x9136ff0) received:
30 58 02 01 02 78 2D 0A 01 13 04 00 04 26 50 61 0X...x-......&Pa
73 73 77 6F 72 64 20 66 61 69 6C 73 20 71 75 61 ssword fails qua
6C 69 74 79 20 63 68 65 63 6B 69 6E 67 20 70 6F lity checking po
6C 69 63 79 A0 24 30 22 04 19 31 2E 33 2E 36 2E licy.$0"..1.3.6.
31 2E 34 2E 31 2E 34 32 2E 32 2E 32 37 2E 38 2E 1.4.1.42.2.27.8.
35 2E 31 04 05 30 03 81 01 06 __ __ __ __ __ __ 5.1..0....