/** <p>This implementation forward request to onAcegiLogin command.</p> */ public void commence(ServletRequest request, ServletResponse response, AuthenticationException authException) throws IOException, ServletException { final Component comp = (Component) request.getAttribute(ZkEventExceptionFilter.COMPONENT); //remember the original event that cause the security login in session final Event evt = (Event) request.getAttribute(ZkEventExceptionFilter.EVENT); ((HttpServletRequest) request).getSession().setAttribute(ZkEventExceptionFilter.EVENT, evt); if (!comp.isListenerAvailable(ON_ACEGILOGIN, true)) { final EventListener<Event> listener = new ShowWindowEventListener<Event>(); comp.setAttribute(ON_ACEGILOGIN, listener); comp.addEventListener(ON_ACEGILOGIN, listener); } final String url = getLoginFormUrl(); Events.postEvent(new Event(ON_ACEGILOGIN, comp, url != null ? url : "~./acegilogin.zul")); } }
public void handle(ServletRequest request, ServletResponse response, AccessDeniedException accessDeniedException) throws IOException, ServletException { // Put exception into request scope (perhaps of use to a view) ((HttpServletRequest) request).setAttribute(AccessDeniedHandlerImpl.ACEGI_SECURITY_ACCESS_DENIED_EXCEPTION_KEY, accessDeniedException); final Component comp = (Component) request.getAttribute(ZkEventExceptionFilter.COMPONENT); if (!comp.isListenerAvailable(ON_ACCESSDENIED, true)) { final EventListener<Event> listener = new ShowWindowEventListener<Event>(); comp.setAttribute(ON_ACCESSDENIED, listener); comp.addEventListener(ON_ACCESSDENIED, listener); } final String url = getErrorPage(); Events.postEvent(new Event(ON_ACCESSDENIED, comp, url != null ? url : "~./accessDenied.zul")); } }
return true; if (ComponentsCtrl.getEventMethod(comp.getClass(), evtnm) != null || comp.isListenerAvailable(evtnm, asap)) return true;
protected void sendRedirect(HttpServletRequest request, HttpServletResponse response, String url) throws IOException { if (url == null) { return; //skip } final Event evt = (Event) (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) { (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<Event> listener = new ShowWindowEventListener<Event>(); comp.setAttribute(ZkAuthenticationEntryPoint.ON_ACEGILOGIN, listener); comp.addEventListener(ZkAuthenticationEntryPoint.ON_ACEGILOGIN, listener); } Events.postEvent(new Event(ZkAuthenticationEntryPoint.ON_ACEGILOGIN, comp, url)); }
if (loadOnSaveProxy == null && dataTarget.isListenerAvailable("onLoadOnSave", true)) { loadOnSaveProxy = dataTarget;
if (!comp.isListenerAvailable("onLoadOnSave", true)) { comp.addEventListener("onLoadOnSave", _listener);
@SuppressWarnings("unchecked") public void onEvent(T event) { //fetch old Event stored in Session and post again final Component comp = event.getTarget(); final Page page = comp.getPage(); final String url = (String) event.getData(); final Execution exec = Executions.getCurrent(); try { doModal(page, url); } finally { if (comp.isListenerAvailable(event.getName(), true)) { EventListener listener = (EventListener) comp.getAttribute(event.getName()); if (listener != null) { comp.removeEventListener(event.getName(), listener); comp.removeAttribute(event.getName()); } } } }