From directory-dev-return-4640-apmail-incubator-directory-dev-archive=incubator.apache.org@incubator.apache.org Tue Mar 01 20:43:17 2005 Return-Path: Delivered-To: apmail-incubator-directory-dev-archive@www.apache.org Received: (qmail 1977 invoked from network); 1 Mar 2005 20:43:17 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur-2.apache.org with SMTP; 1 Mar 2005 20:43:17 -0000 Received: (qmail 82028 invoked by uid 500); 1 Mar 2005 20:43:16 -0000 Delivered-To: apmail-incubator-directory-dev-archive@incubator.apache.org Received: (qmail 81976 invoked by uid 500); 1 Mar 2005 20:43:16 -0000 Mailing-List: contact directory-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Apache Directory Developers List" Delivered-To: mailing list directory-dev@incubator.apache.org Received: (qmail 81960 invoked by uid 99); 1 Mar 2005 20:43:16 -0000 X-ASF-Spam-Status: No, hits=-0.0 required=10.0 tests=SPF_HELO_PASS,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (hermes.apache.org: domain of david@bozemanpass.com designates 69.145.82.195 as permitted sender) Received: from toad.mtbrook.bozemanpass.com (HELO toad.mtbrook.bozemanpass.com) (69.145.82.195) by apache.org (qpsmtpd/0.28) with ESMTP; Tue, 01 Mar 2005 12:43:16 -0800 Received: from squirrel (unknown [69.145.82.218]) by toad.mtbrook.bozemanpass.com (Postfix) with ESMTP id 517EE1102F5 for ; Tue, 1 Mar 2005 12:44:10 -0800 (PST) Message-ID: <389601c51e9f$41e44740$da529145@mtbrook.bozemanpass.com> From: "David Boreham" To: "Apache Directory Developers List" References: <4224AAB2.9040700@bellsouth.net> <0c2101c51e88$2fed6600$fb529145@mtbrook.bozemanpass.com> <4224D08C.9000901@bellsouth.net> Subject: LDAP Controls Date: Tue, 1 Mar 2005 12:43:00 -0800 MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="iso-8859-1"; reply-type=response Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.2180 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180 X-Virus-Checked: Checked X-Spam-Rating: minotaur-2.apache.org 1.6.2 0/1000/N Heads up on one thing we're working on here: We're writing a new Backend class. It needs to implement special behavior depending on the presence and value of an LDAP control attached to the operation request PDU. The current code doesn't seem to allow easy access to the LDAP controls from inside a back end (the JNDI controls class doesn't handle arbitrary controls, I believe). Anyway, at present we're hacking the controls object that comes with the Request into the env Map that's passed to the back end 's search method. That should work for what we need to do, but it's an evil hack. I was wondering what the plans are for things like this? Typically one sees a catch-all 'context' or 'session' object that's passed in every call, that allows code anywhere to get at things like the authId for the current operation, things like that, with accessor methods. Such an object could also be used to access controls (and also write response controls back onto the response). I realize this isn't great 'object design perfection', but OTOH it's a real pain to be always finding that there's no way to get the @*@#^ thing that you need in your code 15 levels down the stack from where it was last seen... The particular example at hand is a syncronization control that carries an update vector used in the back-end to determine the set of entries modified since that update vector was generated. Another example would be indexed VLV searches, where the back-end needs access to the VLV control payload to drive its query execution engine.