Eyal Golan [email protected] Visit: http://jvdrums.sourceforge.net/ LinkedIn: http://www.linkedin.com/in/egolan74
P Save a tree. Please don't print this e-mail unless it's really necessary On Thu, Sep 3, 2009 at 2:04 PM, Pedro Santos <[email protected]> wrote: > > > don't you gona fall in to the same problem this way? > -- No. because if I throw a RuntimeException, then I will catch it in the onRuntimeError. > > Set error page in web.xml > <?xml version="1.0" encoding="iso-8859-1"?> > <!DOCTYPE web-app > PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" > "http://java.sun.com/dtd/web-app_2_3.dtd"> > <web-app> > > > <error-page> > <error-code> > 403 > </error-code> > <location> > /403.*html* > </location> > </error-page> > > </web-app> > > > --- Thanks. We'll try that. But is there a 'Wicket' way? If not, then I guess we'll use this one. > > On Thu, Sep 3, 2009 at 5:27 AM, Eyal Golan <[email protected]> wrote: > > > Hello, > > We have in our application the following code: > > /** > > * @see > > org.apache.wicket.Application#newRequestCycle(org.apache.wicket.Request, > > * org.apache.wicket.Response) > > */ > > @Override > > public RequestCycle newRequestCycle(final Request request, > > final Response response) { > > return new WebRequestCycle(this, (WebRequest) request, > > (WebResponse) response) { > > > > @Override > > public Page onRuntimeException(Page page, RuntimeException e) > { > > if (DEPLOYMENT.equalsIgnoreCase(getConfigurationType())) { > > if > > (PageExpiredException.class.isAssignableFrom(e.getClass())) { > > return null; > > } else { > > e.printStackTrace(); > > System.out.println(e.getMessage()); > > return new InternalErrorPage(getErrorDisplay(e)); > > } > > } else { > > // In development we want to see the exception > > return null; > > } > > > > } > > }; > > } > > > > Also, in our base page we have this > > protected void verifyAccess(PageParameters pageParameters) { > > // Redirect to Login page on invalid access. > > if (!isUserLoggedIn()) { > > throw new > RestartResponseAtInterceptPageException(Login.class); > > } > > else if (! isPageAllowed(pageParameters)) { > > String url = pageParameters.getString("url"); > > if (url != null) { > > throw new > > AbortWithWebErrorCodeException(HttpServletResponse.SC_FORBIDDEN, url); > > } > > else { > > throw new > > AbortWithWebErrorCodeException(HttpServletResponse.SC_FORBIDDEN); > > } > > } > > } > > > > 'verifyAccess' is called in the construction of the page. > > > > The problem I'm having is when the page is not allowed. > > We throw AbortWithWebErrorCodeException. > > > > The user gets a 403 error page. > > As expected, the onRuntimeException that configured in the WebApp is not > > reached. > > > > I thought to create a RuntimeException that will be thrown instead of the > > AbortWithWebErrorCodeException(...) and to analyze it in the > > onRuntimeException. > > But, is there a way to map the 403 error page to another page? A setting > of > > the Application or even in the web.xml? > > > > Thanks, > > > > > > > > Eyal Golan > > [email protected] > > > > Visit: http://jvdrums.sourceforge.net/ > > LinkedIn: http://www.linkedin.com/in/egolan74 > > > > P Save a tree. Please don't print this e-mail unless it's really > necessary > > >
