Nimble leverages Shiro and Grails. It is an example of the sorts of UI that can be built ontop of the flexibility Shiro provides.

Unfortunately as stated I am not currently maintaining Nimble and haven't been for many months. I just simply don't have the time with other full time work that actually pays the bills.

Nimble is however fully open source and all my original hacking is up on Github. The code isn't going anywhere. If nothing else it might still serve as a reasonable basis to give you some ideas on writing these components for your own grails app. Nothing it does is really earth shattering it was (or at least at the time was) simply a way to save a bunch of time with common access control stuff. It took inspiration from similar efforts in the rails space.

I highly recommend vanilla Shiro/ShiroGrails as a starting point for your access control needs, I certainly still make heavy use of it in the Java space.


Welcome to the documentation site for Nimble, an extensive application base for Grails powered software.  Nimble builds on the strengths of many other open source projects including Spring, Hibernate, Grails and Shiro. Like all these projects it is licensed under the fully permissive Apache 2.0 software license. Nimble can save you from months of boring, costly development work by providing all the common internal components web applications require.

For those familliar with Grails you'll be right at home with Nimble. Nimble ships as a grails plugin and is easy to install.


Feature Screencast

The below screencast shows all the functionality currently contained in Nimble Core. No need to adjust your speakers there is no audio :).


Nimble Overview

The following components make up the core of what Nimble provides to developers
Flexible authentication

By utilizing the flexible authentication options provided by the Apache Shiro project we’ve built in support for authentication from a range of sources including local accounts, OpenID, Facebook, Google, Yahoo and many more social services. In the future with some small additional plugins we’ll support LDAP, SAML 2.x and more.

Fine grained access control

By combining the three core access control concepts of users, groups and roles with the permissions engine exposed by Apache Shiro your application can achieve fine grained access control across controllers, views, services, GSPs and native Java logic.

Permissions can be applied to users, roles and groups. Users can be members of an unlimited number of groups. Both users and groups are able to be assigned roles. Enabling permissions to cascade through this structure is where Nimble gains its real access control flexibility. This process is also dynamic. If you remove or apply a permission that ultimately applies to a currently active Nimble based user session that user obtains or loses access without needing to terminate their session.

User Profiles

Interaction with users in todays social websites is extremely important. Nimble supports user profiles that allow users to enter details about themselves, upload a photo or link to gravatar and provide details on their current status. All of this is then available for use elsewhere in your web application to identify users as they undertake various actions.

How to contribute

Contributing is easy, simply fork the core Nimble project at GitHub and start working on your changes, additions and bug fixes. When you've finished simply send a pull request to a Nimble maintainer. We'll review your changes and get them merged into core as appropriate.

Need some help with Git, Github and all the terminology? Github has you covered


External Tools