Saturday, January 26, 2013

V7 - Vaadin 7 RC2 Guice and Shiro

Vaadin RC2

I have updated the code to Vaadin 7 release candidate 2, with no issues found.  There was a bug in beta 11 using Chameleon styles, but that is now fixed.

Testing

I've improved the test harness a bit - it pretends now to be a Shiro Web environment, so Shiro generates things like ShiroWebSubject correctly.  This allows a bit more testing within JUnit.

There is a bug in one of the tests - the LoginStatusPanelTest is not configured correctly - but testing is gradually improving overall.

Standard Pages

I have introduced the idea of standard "pages" for things like login, logout and others, to help with some of the Shiro logic.  It is still configurable, so any View could be used to create the "page".


The documentation is still some way behind, and the forum unused, but at least one person contacted me to say they had found it useful.  It is always good to get feedback ...






Sunday, January 13, 2013

Vaadin Guice and Shiro - done

Progress

I got there eventually - there is now a working version of the V7 code, which integrates Vaadin 7, Guice 3.0 and Apache Shiro 1.2. 

V7 supports the direct coding of interaction with Shiro, and also the use of Shiro annotations.  If you are not familiar with Shiro then it is worth taking a look.  It greatly simplifies one of those time-consuming development tasks - authentication and authorisation.

Path filtering

The one aspect I have not been able to integrate is the Shiro path filter to apply security according to the URL.  A great idea, and something which could greatly reduce maintenance, but clearly will not work with an AJAX application.

I need to do some more work on that ...

General code state  

I have done quite a bit to tidy up the code, especially for testing.  The test harness is reasonable now, and allows quite a bit of testing of the Vaadin UI, and also incorporates Shiro.

But pretty it is not!  I really have not done justice to Vaadin with the user interface, but just now I am more concerned about function.

Sadly, the documentation  has fallen behind a bit, but I have opened a forum for anyone interested. Comments at the forum, or on this blog would be welcome.