[ANN] ruby-ldapserver 0.3

B

Brian Candler

ruby-ldapserver is a lightweight, pure Ruby skeleton for implementing LDAP
server applications.

Version 0.3 adds support for LDAP v3 schemas: it can load schemas in
OpenLDAP format, publish them via the root DSE, use them to validate
add/modify operations, map attribute names to their preferred versions (e.g.
"commonname" becomes "cn"), and perform case-insensitive comparisons where
the schema mandates this.

Several important non-backwards-compatible API changes have been made.
Please read the release notes if you have previously used version 0.2:
http://rubyforge.org/frs/shownotes.php?release_id=2512

Download:
http://rubyforge.org/projects/ruby-ldapserver/

Regards,

Brian Candler.
 
B

Brian Candler

Hi Brian,
Does ruby-ldapserver have an in memory b-tree?

ruby-ldapserver is a library which handles the protocol operations; how you
implement the data model is up to you.

There are three sample LDAP servers in the examples/ directory. Two of these
use a hash of {dn=>{attr=>[vals], attr=>[vals]...}} as their data storage
(with a YAML file as hard backing). This gives you a fast answer to a 'base'
search, but a slow answer to a 'subtree' search with filter, since in that
case it just filters the entire set of entries against your query. If you
want to write code to index the attributes, you could do so.

The other sample program constructs SQL queries to answer LDAP search
requests. This will be as fast as your SQL database, but as it's just an
example, it only handles one type of search: ([email protected])

If you *just* want an implementation of the standard LDAP data model then
you're almost certainly better off running OpenLDAP (and with back-sql, it
can also give you a fixed mapping between LDAP attributes and SQL columns).

ruby-ldapserver is intended for when you want to build an 'intelligent' LDAP
server. The reason I wrote it is because I needed a uniform query layer
where one type of customer is in SQL database 1, and another type of
customer is in SQL database 2 (with a completely different schema). I use
ruby-ldapserver as a wrapper for the business logic which maps various
queries to the appropriate databases.

Regards,

Brian.
 
N

Nick Faiz

Brian,
Okay, thanks for the reply. Sounds like your skeleton code is
functioning as an adapter between various back-ends.

Cheers,
Nick


Hi Brian,
Does ruby-ldapserver have an in memory b-tree?

ruby-ldapserver is a library which handles the protocol operations;
how you
implement the data model is up to you.

There are three sample LDAP servers in the examples/ directory. Two
of these
use a hash of {dn=>{attr=>[vals], attr=>[vals]...}} as their data
storage
(with a YAML file as hard backing). This gives you a fast answer to
a 'base'
search, but a slow answer to a 'subtree' search with filter, since
in that
case it just filters the entire set of entries against your query.
If you
want to write code to index the attributes, you could do so.

The other sample program constructs SQL queries to answer LDAP search
requests. This will be as fast as your SQL database, but as it's
just an
example, it only handles one type of search: ([email protected])

If you *just* want an implementation of the standard LDAP data
model then
you're almost certainly better off running OpenLDAP (and with back-
sql, it
can also give you a fixed mapping between LDAP attributes and SQL
columns).

ruby-ldapserver is intended for when you want to build an
'intelligent' LDAP
server. The reason I wrote it is because I needed a uniform query
layer
where one type of customer is in SQL database 1, and another type of
customer is in SQL database 2 (with a completely different schema).
I use
ruby-ldapserver as a wrapper for the business logic which maps various
queries to the appropriate databases.

Regards,

Brian.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads

[ANN] PatchServer 0.3 0
ANN: ruby-ldapserver-0.1 0
[ANN] scheduler 0.3 1
ANN: Sequel 0.3 Released 0
[ANN] FuseFS-0.3 1
[ANN] Arachno Ruby 0.3 (patch 2) 14
[ANN] Ruby-VPI 6.3.0 0
[ANN] net-ldap 0.2 Released 0

Members online

No members online now.

Forum statistics

Threads
473,776
Messages
2,569,602
Members
45,182
Latest member
BettinaPol

Latest Threads

Top