Hi Have you looked in to tynamo security project ?
2010/7/30 Daniel Henze <dhe...@googlemail.com> > Hi Christophe, > > yes, I have read that article before, but admit that I could not grasp all > the details by that time and therefore decided to go with > tapestry-spring-security. A lot of knowledge has been gained in between > though, so I will re-read and think about option 3 (re-implementing security > with my own requirements). This will take a tad longer, but probably benefit > a lot in terms of learning curve. > > Cheers > Daniel > > Am 30.07.2010 12:34, schrieb Christophe Cordenier: > > Hi >> >> Have already read this article [1] from Howard, it explains how to secure >> an >> application via Annotations and shows the pipeline as well >> >> >> [1] >> http://tapestryjava.blogspot.com/2009/12/securing-tapestry-pages-with.html >> >> 2010/7/30 Daniel Henze<dhe...@googlemail.com> >> >> >> >>> Hi everyone, >>> >>> I created a Service, contributeded it as Dispatcher to check on request >>> of >>> secured pages (using tapestry-spring-security with @Secured annotation) >>> whether the user profile has all required fields filled out. In case, >>> information is missing, the user is forwarded to his profile page and >>> requested to update the required fields. >>> >>> So far so good, following the AccessController example from the Tapestry >>> HowTos I could build the service and add it to the Dispatcher Pipeline: >>> --- (important part from AccessController): >>> Component page = componentSource.getPage(pageName); >>> boolean privatePage = page.getClass().getAnnotation( Secured.class ) >>> != >>> null; >>> >>> if (privatePage) >>> { >>> canAccess = false; >>> /* Is the user already authentified ? */ >>> if(asm.exists(User.class)) >>> { >>> User user = asm.get(User.class); >>> canAccess = user.getUserProfile().isComplete(); >>> System.out.println("user " + user.getUsername() + " has completed >>> his profile: " + canAccess); >>> } >>> } >>> --- >>> public static void >>> contributeMasterDispatcher(OrderedConfiguration<Dispatcher> >>> configuration, >>> AccessController accessController){ >>> configuration.add("AccessWithCompleteProfileController", >>> accessController, "after:*"); >>> } >>> --- >>> >>> My problem is apparently with the sequence of the pipeline, as with the >>> above stated "after:*" the service never is actually executed (simple >>> System >>> out calls to check), with "before:*" I get an redirect error from the >>> server >>> ("indefinite loop") and without any declaration it again is not called at >>> all. >>> >>> I'd appreciate a little guidance on the correct way to solve that issue. >>> I >>> see the following options: >>> 1. Get AccessController invoked as the last service in Dispatcher >>> pipeline >>> (all other checks done before). I suspect SecurityChecker to break the >>> line. >>> 2. Figure out whether User is logged in already and do not break the >>> chain >>> in AccessController if User is not logged in. Next page request will do >>> the >>> check. >>> 3. Implement my own Security Checker and include the AccessController >>> into >>> that code. >>> >>> Regards >>> Daniel >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org >>> For additional commands, e-mail: users-h...@tapestry.apache.org >>> >>> >>> >>> >> >> >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org > For additional commands, e-mail: users-h...@tapestry.apache.org > > -- Regards, Christophe Cordenier. Committer on Apache Tapestry 5 Co-creator of wooki @wookicentral.com