The attributes you're probably looking for are all operational attributes. You must retrieve them explicitly or use the "+" wildcard in the attribute list to retrieve all of them. -- Howard Chu Chief Architect, Symas Corp. Director, Highland Sun http://www.symas.com <http://www.symas.com/> http://highlandsun.com/hyc <http://highlandsun.com/hyc> Symas: Premier OpenSource Development and Support -----Original Message----- From: owner-openldap-software@OpenLDAP.org [mailto:owner-openldap-software@OpenLDAP.org]On Behalf Of Betts, Chris Sent: Thursday, January 16, 2003 11:11 PM To: openldap-software@OpenLDAP.org Subject: Reading schema via ldap Hi everyone! I'm the primary author of the JXplorer open source ldap browser ( http://pegacat.com/jxplorer <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
<<attachment: winmail.dat>>