Hi,

isn't IAuthorizationStrategy#isInstantiationAuthorized() quite prone to 
security related bugs? Authorization is checked only when a page (or any 
other component) is instantiated - the page instance is then stored in a page 
map. After a user logs out he can still access these secured pages stored in 
the page map. This IMHO opens dangerous security holes in secured wicket 
applications...

One possible solution is to call Session.get().clear() when a user logs out - 
but it won't work when user's authorization can dynamically change during his 
session (e.g. roles are added or removed).

Moreover, Session.get().clear() does not work in current wicket-2.0 snapshot 
(I just created WICKET-331 issue).

I think that there should be a mechanism that checks authorization everytime a 
page instance is created or retrieved from a page map. Something like 
isAccessAuthorized(Class<? extends Page> pageClass). Another question: do we 
need this fine-grained isInstantisationAuthorized(componentClass) at all?

WDYT?

Regards,
Bendis

Reply via email to