[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: Reading schema via ldap
Here's some PHP code that gets the job done:
http://www.openldap.org/lists/openldap-software/200212/msg00526.html
That might help you track down what you shouold be ldap_searching() for.
--Dave
<quote who="Betts, Chris">
> Hi everyone!
>
> I'm the primary author of the JXplorer open source ldap browser
> (http://pegacat.com/jxplorer). The browser is written in java and
> uses Sun's jndi to handle it's ldap connections. In the past I have
> used jndi 'context.getSchema()' method to read schema from both
> slapd and other directories.
>
> Recently I have modified JXplorer to support DSML, and as part of
> this I needed to do the schema downloading manually. The steps are:
>
> a) read the subschema subentry from the root context
> b) use the read subschema subentry to read the schema entry (which
> should correspond more or less to RFC 2252).
>
> Now this works fine for some ldap directories, but seems to fail for
> slapd (and yet jndi reads it fine, somehow). Since a large number of
> the users of JXplorer use slapd, this is a problem! When I do the
> above I get
>
> a) read the subschema subentry from slapd as CN=SCHEMA (hooray!)
> b) attempt to read CN=SCHEMA returns an empty entry (sniff).
>
> Does anyone have any idea what I am doing wrong? The code is the
> equivalent of:
>
> Attributes rawSchema = ctx.getAttributes("CN=SCHEMA"); // Attributes is
> not null, but empty
>
>
> and if anyone can read a BER trace, here it is:
>
> -> odlab7:2123
>
> 0000: 30 25 02 01 01 63 20 04 00 0A 01 00 0A 01 01 02 0%...c
> ......... 0010: 01 00 02 01 00 01 01 00 87 0B 6F 62 6A 65 63 74
> ..........object 0020: 43 6C 61 73 73 30 00
> Class0.
>
>
> <- odlab7:2123
>
> 0000: 30 30 02 01 01 64 2B 04 00 30 27 30 25 04 0B 6F
> 00...d+..0'0%..o 0010: 62 6A 65 63 74 43 6C 61 73 73 31 16 04 03 74 6F
> bjectClass1...to 0020: 70 04 0F 4F 70 65 6E 4C 44 41 50 72 6F 6F 74
> 44 p..OpenLDAProotD 0030: 53 45
> SE
>
>
> <- odlab7:2123
>
> 0000: 30 0C 02 01 01 65 07 0A 01 00 04 00 04 00 0....e........
>
>
> -> odlab7:2123
>
> 0000: 30 38 02 01 02 63 33 04 00 0A 01 00 0A 01 01 02
> 08...c3......... 0010: 01 00 02 01 00 01 01 00 87 0B 6F 62 6A 65 63 74
> ..........object 0020: 43 6C 61 73 73 30 13 04 11 73 75 62 73 63 68
> 65 Class0...subsche 0030: 6D 61 53 75 62 65 6E 74 72 79
> maSubentry
>
>
> <- odlab7:2123
>
> 0000: 30 2B 02 01 02 64 26 04 00 30 22 30 20 04 11 73 0+...d&..0"0
> ..s 0010: 75 62 73 63 68 65 6D 61 53 75 62 65 6E 74 72 79
> ubschemaSubentry 0020: 31 0B 04 09 43 4E 3D 53 43 48 45 4D 41
> 1...CN=SCHEMA
>
>
> <- odlab7:2123
>
> 0000: 30 0C 02 01 02 65 07 0A 01 00 04 00 04 00 0....e........
>
>
> -> odlab7:2123
>
> 0000: 30 2E 02 01 03 63 29 04 09 43 4E 3D 53 43 48 45
> 0....c)..CN=SCHE 0010: 4D 41 0A 01 00 0A 01 01 02 01 00 02 01 00 01 01
> MA.............. 0020: 00 87 0B 6F 62 6A 65 63 74 43 6C 61 73 73 30
> 00 ...objectClass0.
>
>
> <- odlab7:2123
>
> 0000: 30 63 02 01 03 64 5E 04 09 43 4E 3D 53 43 48 45
> 0c...d^..CN=SCHE 0010: 4D 41 30 51 30 3F 04 0B 6F 62 6A 65 63 74 43 6C
> MA0Q0?..objectCl 0020: 61 73 73 31 30 04 03 74 6F 70 04 0C 4C 44 41
> 50 ass10..top..LDAP 0030: 73 75 62 65 6E 74 72 79 04 09 73 75 62 73
> 63 68 subentry..subsch 0040: 65 6D 61 04 10 65 78 74 65 6E 73 69 62
> 6C 65 4F ema..extensibleO 0050: 62 6A 65 63 74 30 0E 04 02 63 6E 31
> 08 04 06 53 bject0...cn1...S 0060: 43 48 45 4D 41
> CHEMA
>
>
> ... thanks in advance to anyone who can shed light on what I'm doing
> wrong here :-).
>
> cheers,
>
> Chris
>
>
> Dr Christopher Betts
> Development Manager UDDI
> Richmond/Mooroolbark Lab
> Melbourne
> Australia
> ph: +61 3 8416 5646