I haven’t ready any statistics around this, but if I am the so called average user – I guess, I am 75% less likely to register for your website , even if that comes at the cost of having to do without your services.
How I got it working
Getting OpenId to work with Grails wasn’t bad at all.
I used the Acegi security plugin for this – it seems to be the de-facto choice (, at least at the time of this writing).
The tutorials I used were pretty OK. They show you how to use Acegi as well as OpenId. I guess these could have been structured a bit better to avoid repetition and also had some outdated information. The tutorial for OpenId did miss couple of things, which I have mentioned below.
1) You will need Xerces library files when you switch the flag to OpenId. If not- you will see a NoClassDefFoundError at startup, something like this
2) The OpenId tutorial asks you to remove references to password from the domain classes and the GSPs. You will find an additional reference in UserController.groovy
3) While testing myopenid , I realized that Acegi doesn’t handle trailing bakslash in userIds very well. My id on myopenId is http://<myid>.myopenid.com/ (Note the trailing backslash) . I have created the user in my database as http://<myid>.myopenid.com (sans the trailing baclslash). When I try to login, it takes me to the MyopenId for authentication against my account just fine, but is then later on unable to find the user on the local database. This is the exception that I saw
Overall, Grails+Acegi+OpenId was quite a smooth experience. OpenId is not perfect and does have drawbacks, but IMHO is better than having to create a user account for each and every website you want to use.
And honor as at may be, I really don’t want to store your passwords.