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

Reply via email to