You have to return a IRequestHandler. See RenderPageRequestHandler On Wed, Sep 26, 2012 at 1:45 AM, Alec Swan <alecs...@gmail.com> wrote: > I am trying to implement Martin's @SubSite annotation approach to > redirect the user to the sub-site's home page when > AuthenticationException is thrown in Wicket 1.5. However, apparently I > cannot throw a RestartResponseAtInterceptPageException(annotation.homePage()) > from AbstractRequestCycleListener#onException. How else can I redirect > the user to the sub-site login page? > > The following RCH causes a 500 HTTP error page to be shown in the > browser when AuthenticationException is thrown. > > public class AuthenticationExceptionRequestCycleHandler extends > AbstractRequestCycleListener > { > @Override > public IRequestHandler onException(RequestCycle cycle, Exception ex) { > if (ex instanceof WicketRuntimeException && > ex.getCause().getCause() instanceof AuthenticationException) { > IPageRequestHandler lastHandler = > PageRequestHandlerTracker.getLastHandler(cycle); > Class<? extends IRequestablePage> pageClass = lastHandler > == null ? null : lastHandler.getPageClass(); > if (pageClass != null) { > SubSite annotation = pageClass.getAnnotation(SubSite.class); > if (annotation != null && annotation.homePage() != null) { > throw new > RestartResponseAtInterceptPageException(annotation.homePage()); > } > } > } > return super.onException(cycle, ex); > } > } > > Thanks, > > Alec > > On Fri, Jun 8, 2012 at 2:54 PM, Alec Swan <alecs...@gmail.com> wrote: >> I also use this approach, but with authentication exceptions thrown by >> Wicket it's hard to tell if the user was redirected to Login page >> because of authentication or some other exceptions. >> >> On Fri, Jun 8, 2012 at 1:15 PM, Michal Margiel <michal.marg...@gmail.com> >> wrote: >>> 2012/6/8 Alec Swan <alecs...@gmail.com> >>> >>>> That's clever. I will give it a try. >>>> >>>> What is the recommendation on verifying that an exception was thrown >>>> during page rendering using Wicket tester? I am not talking just about >>>> authentication here, but exceptions in general. >>>> >>>> >>> Hello, >>> Why you want to verify that exception was thrown in WicketTester? IMHO it >>> is not proper place to check that. >>> In my code I am verifying expcetions in services tests using >>> catch-exception library [1]. >>> >>> And then while testing Page I am mocking my service to throw exception and >>> I am verifying behaviour on exception (e.g. redirecting to login page, >>> showing error message etc...) >>> >>> That makes not only clearer code but also simplify testing. >>> you can see example of services tests in [2] and page tests in [3] >>> >>> [1] http://code.google.com/p/catch-exception/ >>> [2] >>> https://bitbucket.org/margielm/confitura/src/8599eae2ba00/src/test/java/jelatyna/services/UserServiceImplShould.java >>> [3] >>> https://bitbucket.org/margielm/confitura/src/8599eae2ba00/src/test/java/jelatyna/pages/admin/login/LoginPageShould.java >>> -- >>> Pozdrawiam/Best regards >>> MichaĆ Margiel >>> >>> http://www.confitura.pl (dawniej Javarsovia) >>> http://www.linkedin.com/in/MichalMargiel >>> http://www.margiel.eu > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org >
-- Martin Grigorov jWeekend Training, Consulting, Development http://jWeekend.com --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org