compared with
Current by Brendan Patterson
on Jun 19, 2005 17:30.

Key
This line was removed.
This word was removed. This word was added.
This line was added.

Changes (4)

View Page History
JGUM offers a framework and admin ui to manage Groups, Users, Roles, Permissions and access to resources.

* [The JGUM vision and purpose]?
* [Quick Start]
* [Frequently Asked Questions]

{tip:title=Download it!}
{column:width=50%}
[Available from SourceForge|http://sourceforge.net/project/showfiles.php?group_id=122254]

or the Subversion repository via the command:
*svn co [http://opensvn.csie.org/artemistech/jgum/]*
{column}
{tip}

History:
The majority of systems I've worked on have some notion of user and permission management that typically has very similar requirements. There are currently no widely available solutions to this problem. I've only found two vaguely similar open source projects. One was a user management system deeply embedded in [Turbine|http://jakarta.apache.org/turbine/], I think it was part of Fulcrum. This was an inflexible solution. The other is [OSUser|http://www.opensymphony.com/osuser/] hosted at [Open Symphony|http://www.opensymphony.com]. OSUser has not had an official download for at least three years though you can grab the source.

It struck me as quite strange that this seemingly common component of most systems, some kind of user management, was unavailable. I still find it hard to believe. LDAP provides a partial solution, but its schema is challenging to modify and it comes up short in other areas as well.

So after implementing this solution multiple times and considering carefully how to simplify the solution in a general way I've created J.G.U.M. - Java Generic User Management.

Originally GUM was written using an XML files for persistence. This was done leveraging ((Castor)) to marshal data to and from XML. Later requirements demanded integration with an existing SQLServer db so I converted the persistence layer using Hibernate. Although designed with encapsulation and a pluggable persistence layer in mind I was pleasently suprised to realize that I didn't end up having to touch the core objects - Group, User, Role, Permission. XML is no longer supported as a persistence layer, but all major databases are supported. Of course now there are all kinds of ways to turn your relations data into XML including dbunit.
Powered by Olark