throws IOException {
if (url == null) {
return; //skip
}
final Event evt = (Event) ((HttpServletRequest)request).getSession().getAttribute(ZkEventExceptionFilter.EVENT);
final Component comp = evt.getTarget();
final String updateURI = comp.getDesktop().getUpdateURI(null);
if (url.indexOf(updateURI) >= 0) { //saved request
Events.postEvent(new Event(ON_LOGIN_OK, comp, null)); //post onLoginOK event
if (_resendZkEvent) {
((HttpServletRequest)request).getSession().removeAttribute(ZkEventExceptionFilter.EVENT);
Events.postEvent(evt);
}
return;
}
//must redirect
if (url.startsWith("http://") || url.startsWith("https://")) {
Executions.getCurrent().sendRedirect(url);
return;
}
//other url, assume login fail
if (!comp.isListenerAvailable(ZkAuthenticationEntryPoint.ON_ACEGILOGIN, true)) {
final EventListener listener = new ShowWindowEventListener();
comp.setAttribute(ZkAuthenticationEntryPoint.ON_ACEGILOGIN, listener);
comp.addEventListener(ZkAuthenticationEntryPoint.ON_ACEGILOGIN, listener);
}
Events.postEvent(new Event(ZkAuthenticationEntryPoint.ON_ACEGILOGIN, comp, url));
}