Display message to user on expired session when using wicket-auth-roles -


hi have been unable solve following problem in wicket 6.*:

in our webapp using wicket-auth-roles manage authentication/authorization. when session expires, user should redirected page set getapplicationsettings().setpageexpirederrorpage(somepage.class) on next action. however, if user tries access page doesn't allow guests, redirected login page skipping pageexpiredpage altogether.

my question - how can display "session has expired." message user?

among other things, have tried session.info("message") during oninvalidate phase of session's lifecycle, feedback message rendered on first page after login (not on login page).

thank anwsers.

you use requestcyclelistener record when pageexpiredexception thrown.

public class exceptionmapperlistener extends abstractrequestcyclelistener {      @override     public irequesthandler onexception(requestcycle cycle, exception ex) {         if (ex instanceof pageexpiredexception) {             // record in session or request cycle             // or             // create renderpagerequesthandler , add page parameter             // see defaultexceptionmapper#internalmap(exception)         }         return null;     } }  // in application#init(): getrequestcyclelisteners().add(new exceptionmapperlistener()); 

orinal answer

(kept because still help...)

i haven't tried myself since don't use wicket-auth-roles, try overriding method authenticatedwebapplication#restartresponseatsigninpage() this:

if (issessionexpired()) {     pageparameters params = new pageparameters();     params.add("showsessionexpired", true);     throw new restartresponseatinterceptpageexception(getsigninpageclass(), params); } else {     throw new restartresponseatinterceptpageexception(getsigninpageclass()); } 

and in signinpageclass, display desired message if showsessionexpired page parameter present.

i'm not sure how implement issessionexpired(), seem have part covered.

or

depending on how implemented issessionexpired(), maybe following in signinpageclass:

if (sessionexpired()) {     session.info("message") } 

Comments

Popular posts from this blog

android - Get AccessToken using signpost OAuth without opening a browser (Two legged Oauth) -

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: mockito -

google shop client API returns 400 bad request error while adding an item -