public void createdComponentEventLink(Link link, ComponentEventRequestParameters parameters) { trigger(parameters.getActivePageName(), EventConstants.DECORATE_COMPONENT_EVENT_LINK, link, parameters); }
@Override public void handleComponentEvent( ComponentEventRequestParameters parameters, ComponentRequestHandler handler) throws IOException { if (logger.isTraceEnabled()) { logger.trace("handleComponentEvent"); } if (redirectUnauthorizedUser(parameters.getActivePageName())) { return; } handler.handleComponentEvent(parameters); }
public void handleComponentEvent(ComponentEventRequestParameters parameters, ComponentRequestHandler handler) throws IOException { globals.storeActivePageName(parameters.getActivePageName()); handler.handleComponentEvent(parameters); }
public boolean checkForInsecureComponentEventRequest(ComponentEventRequestParameters parameters) throws IOException { if (!needsRedirect(parameters.getActivePageName())) { return false; } // Page is secure but request is not, so redirect. // We can safely ignore the forForm parameter since secure form requests are always done from // an already secured page Link link = componentEventLinkEncoder.createComponentEventLink(parameters, false); response.sendRedirect(link); return true; }
String activePageName = parameters.getActivePageName(); String containingPageName = parameters.getContainingPageName(); String eventType = parameters.getEventType();
@Override public void handle(ComponentEventRequestParameters parameters, ComponentEventRequestHandler handler) throws IOException { FileUploadException uploadException = decoder.getUploadException(); if (uploadException != null) { Component page = componentSource.getPage(parameters.getActivePageName()); ComponentResultProcessorWrapper callback = new ComponentResultProcessorWrapper(resultProcessor); page.getComponentResources().triggerEvent(UploadEvents.UPLOAD_EXCEPTION, new Object[] { uploadException }, callback); // If an event handler exists and returns a value, then the callback will be aborted and a response // (typically a redirect) will already have been sent to the client. if (callback.isAborted()) return; // If the page does not properly handle the exception, then we throw it now. throw new RuntimeException(UploadMessages.unableToDecode(), uploadException); } handler.handle(parameters); } }
@Override public void handle(ComponentEventRequestParameters parameters, ComponentEventRequestHandler handler) throws IOException { FileUploadException uploadException = decoder.getUploadException(); if (uploadException != null) { Component page = componentSource.getPage(parameters.getActivePageName()); ComponentResultProcessorWrapper callback = new ComponentResultProcessorWrapper(resultProcessor); page.getComponentResources().triggerEvent(UploadEvents.UPLOAD_EXCEPTION, new Object[] { uploadException }, callback); // If an event handler exists and returns a value, then the callback will be aborted and a response // (typically a redirect) will already have been sent to the client. if (callback.isAborted()) return; // If the page does not properly handle the exception, then we throw it now. throw new RuntimeException(UploadMessages.unableToDecode(), uploadException); } handler.handle(parameters); } }
public Link transformComponentEventLink(Link defaultLink, ComponentEventRequestParameters parameters) { Link link = defaultLink.copyWithBasePath("/event"); for (String name : defaultLink.getParameterNames()) { link.removeParameter(name); } Locale locale = persistentLocale.get(); if (locale != null) { link.addParameter("x:locale", locale.toString()); } link.addParameter("x:type", parameters.getEventType()); addEventContext(link, "x:ec", parameters.getEventContext()); addEventContext(link, "x:pac", parameters.getPageActivationContext()); link.addParameter("x:page", parameters.getActivePageName()); link.addParameter("x:id", parameters.getNestedComponentId()); if (!parameters.getActivePageName().equals(parameters.getContainingPageName())) link.addParameter("x:container", parameters.getContainingPageName()); return link; }
public void handle(ComponentEventRequestParameters parameters) throws IOException Page activePage = cache.get(parameters.getActivePageName()); request.setAttribute(InternalConstants.PAGE_NAME_ATTRIBUTE_NAME, parameters.getActivePageName());
public void handle(ComponentEventRequestParameters parameters) throws IOException Page activePage = cache.get(parameters.getActivePageName());
@Test public void page_name_includes_dash_in_component_event_request() { ComponentClassResolver resolver = mockComponentClassResolver(); Request request = mockRequest(); LocalizationSetter ls = mockLocalizationSetter(); MetaDataLocator metaDataLocator = neverWhitelistProtected(); expect(ls.isSupportedLocaleName("foo-bar")).andReturn(false); train_getParameter(request, InternalConstants.PAGE_CONTEXT_NAME, null); train_getParameter(request, InternalConstants.CONTAINER_PAGE_NAME, null); train_getLocale(request, Locale.ENGLISH); ls.setNonPersistentLocaleFromLocaleName("en"); String path = "/foo-bar/baz.biff"; train_getPath(request, path); train_isPageName(resolver, "foo-bar/baz", true); train_canonicalizePageName(resolver, "foo-bar/baz", "foo-bar/Baz"); replay(); ComponentEventLinkEncoderImpl linkEncoder = new ComponentEventLinkEncoderImpl(resolver, contextPathEncoder, ls, null, null, null, null, true, null, "", metaDataLocator, null); ComponentEventRequestParameters parameters = linkEncoder.decodeComponentEventRequest(request); assertEquals(parameters.getActivePageName(), "foo-bar/Baz"); assertEquals(parameters.getNestedComponentId(), "biff"); verify(); }
@Test public void decode_compoent_event_request_with_slash_in_context_path() throws Exception { ComponentClassResolver resolver = mockComponentClassResolver(); Request request = mockRequest(); Response response = mockResponse(); LocalizationSetter ls = mockLocalizationSetter(); MetaDataLocator metaDataLocator = neverWhitelistProtected(); expect(ls.isSupportedLocaleName("page.component:event")).andReturn(false); train_getParameter(request, InternalConstants.PAGE_CONTEXT_NAME, null); train_getParameter(request, InternalConstants.CONTAINER_PAGE_NAME, null); train_getLocale(request, Locale.ENGLISH); ls.setNonPersistentLocaleFromLocaleName("en"); train_getPath(request, "/foo/bar/page.component:event"); train_isPageName(resolver, "page", true); train_canonicalizePageName(resolver, "page", "Page"); replay(); ComponentEventLinkEncoderImpl linkEncoder = new ComponentEventLinkEncoderImpl(resolver, contextPathEncoder, ls, response, null, null, null, true, null, "foo/bar", metaDataLocator, null); ComponentEventRequestParameters parameters = linkEncoder.decodeComponentEventRequest(request); assertNotNull(parameters); assertEquals(parameters.getActivePageName(), "Page"); assertEquals(parameters.getEventType(), "event"); verify(); }