I like this more and more.

-David

On Jan 14, 2006, at 6:12 AM, Trygve Laugstøl wrote:

On Wed, 2006-01-11 at 19:13 +0100, Emmanuel Venisse wrote:
Hi,

In 1.1, we have decided to rework all security features.

I haven't looked at osuser in particular yet, but I still think it might
work for us.

Anyway I'm suggesting the following strategy:

1) Make a set of Continuum-specific interfaces:

 * ContinuumAuthentication
     has a login( username, password ) and a logout() method

 * ContinuumAuthorization
     canExecute( authenticationToken, protectedResourceId )

 * ContinuumUserManager
     User and Group object CRUD methods,
     addUserToGroup() and the likes.

2) Make a LDAP implementation of these interfaces and include Apache
Directory in Continuum as the default database or write a Derby- specific
implementation as that's what we're already shipping with.

The advantage by including Directory is that we have one less
implementation to write and it's easier to migrate to a proper LDAP
database as you can connect to the Directory service and dump the
existing database. The disadvantage is the increased size of the
Continuum binary distribution. I'm currently not sure how big the
Directory server is in terms of bytes. The binary ApacheDS distro [1] is
10MB but I really doubt all of that is required.

It shouldn't be really hard to write a Derby implementation and it will
probably be the fastest implementation.

By following this strategy we isolate Continuum from the implementation
as the interfaces are Continuum-oriented and should be pretty stable
from day one, and we can add JAAS implementations later on. By having a
standalone (Derby), LDAP and JAAS implementation I think that we've
covered all possible integration points. I'd guess that 90% of all
people wanting authenticate with an external system would use LDAP
anyway.

Thoughts?

[1]: http://cvs.apache.org/dist/directory/apacheds/

--
Trygve


Reply via email to