[Date Prev][Date Next] [Chronological] [Thread] [Top]

Extensibility of SearchRequest.attributes



I believe this data type needs to be re-defined in the LDAPBis work, and
I believe there needs to be a more formal way of extending it with
"special" values.

Currently (in both RFC 2251, and LDAPBis work), this data type does not
allow the string "*" (or the proposed "+" for that matter). Both
specifications restrict it to a list of attribute descriptions. An
attribute description must either be a numeric oid, or begin with a
alpha. Yet both have "special wording" like: "There are two special
values which may be used: an empty list with no attributes, and the
attribute description string "*". Both of these signify that all user
attributes are to be returned. (The "*" allows the client to request all
user attributes in addition to any specified operational attributes).".
Another proposal furthers this and allows "+" to indicate that all
operational attributes are to be returned, and other proposals for other
special strings are in the works.

To start with, I think the current restriction needs to be lifted in
the ldapbis work. The easiest thing to do here is to redefine
SearchRequest.attributes as SEQUENCE OF OCTET STRING. It would be a
little better to define it as a type that has an associated restriction
described in ABNF, where the restriction is like, but less than the
current attributedescription restriction.

Furthermore, I forsee other "special strings" being introduced, and
believe that we'll run out of handy things like * + # $ % etc (beside's
they become less and less intuitive). I suggest we come up with some
generalized standard extensibility mechanism for this. Something like
putting special strings inside parens would work, and would allow the
tradition of setting "x-" prefixed strings aside as experimental. Here's
my suggested ABNF for a single search attribute (refer to
http://ietf.org/internet-drafts/draft-ietf-ldapbis-models-07.txt for
elements not defined here):

searchattribute = descr / numericoid / %x2A / specialsearchattr

specialsearchattr = LPAREN WSP (standardspecialsearchattr /
experimentalspecialsearchattr) WSP RPAREN

standardspecialsearchattr = 1*(%x21-28 / %x2A-7E)

experimental = X HYPHEN standardspecialsearchattr

Jim