Search in sources :

Example 26 with Response

use of org.apache.wicket.request.Response in project wicket by apache.

the class RequestCycle method setResponse.

/**
 * {@inheritDoc}
 */
@Override
public Response setResponse(final Response response) {
    Response current = activeResponse;
    activeResponse = response;
    return current;
}
Also used : Response(org.apache.wicket.request.Response)

Example 27 with Response

use of org.apache.wicket.request.Response in project wicket by apache.

the class Component method internalRenderHead.

/**
 * THIS METHOD IS NOT PART OF THE WICKET PUBLIC API. DO NOT USE IT!
 *
 * Print to the web response what ever the component wants to contribute to the head section.
 * Make sure that all attached behaviors are asked as well.
 * <p>
 * NOT intended for overriding by framework clients. Rather, use
 * {@link Component#renderHead(org.apache.wicket.markup.head.IHeaderResponse)}
 * </p>
 *
 * @param container
 *            The HtmlHeaderContainer
 */
public void internalRenderHead(final HtmlHeaderContainer container) {
    if (isVisibleInHierarchy() && isRenderAllowed()) {
        if (log.isDebugEnabled()) {
            log.debug("internalRenderHead: {}", toString(false));
        }
        IHeaderResponse response = container.getHeaderResponse();
        // Allow component to contribute
        if (response.wasRendered(this) == false) {
            StringResponse markupHeaderResponse = new StringResponse();
            Response oldResponse = getResponse();
            RequestCycle.get().setResponse(markupHeaderResponse);
            try {
                // Make sure the markup source strategy contributes to the header first
                // to be backward compatible. WICKET-3761
                getMarkupSourcingStrategy().renderHead(this, container);
                CharSequence headerContribution = markupHeaderResponse.getBuffer();
                if (Strings.isEmpty(headerContribution) == false) {
                    response.render(StringHeaderItem.forString(headerContribution));
                }
            } finally {
                RequestCycle.get().setResponse(oldResponse);
            }
            // Then let the component itself to contribute to the header
            renderHead(response);
            response.markRendered(this);
        }
        // Then ask all behaviors
        for (Behavior behavior : getBehaviors()) {
            if (isBehaviorAccepted(behavior)) {
                if (response.wasRendered(behavior) == false) {
                    behavior.renderHead(this, response);
                    List<IClusterable> pair = Arrays.asList(this, behavior);
                    response.markRendered(pair);
                }
            }
        }
    }
}
Also used : StringResponse(org.apache.wicket.response.StringResponse) Response(org.apache.wicket.request.Response) IHeaderResponse(org.apache.wicket.markup.head.IHeaderResponse) IClusterable(org.apache.wicket.util.io.IClusterable) IHeaderResponse(org.apache.wicket.markup.head.IHeaderResponse) StringResponse(org.apache.wicket.response.StringResponse) Behavior(org.apache.wicket.behavior.Behavior)

Example 28 with Response

use of org.apache.wicket.request.Response in project wicket by apache.

the class RequestCycleListenerTest method newRequestCycle.

private RequestCycle newRequestCycle(final RuntimeException exception) {
    final Response originalResponse = newResponse();
    Request request = new MockWebRequest(Url.parse("http://wicket.apache.org"));
    handler = new IRequestHandler() {

        @Override
        public void respond(IRequestCycle requestCycle) {
            if (exception != null) {
                throw exception;
            }
            responses++;
        }

        @Override
        public void detach(IRequestCycle requestCycle) {
            detaches++;
        }
    };
    IRequestMapper requestMapper = new IRequestMapper() {

        @Override
        public IRequestHandler mapRequest(Request request) {
            return handler;
        }

        @Override
        public Url mapHandler(IRequestHandler requestHandler) {
            throw new UnsupportedOperationException();
        }

        @Override
        public int getCompatibilityScore(Request request) {
            throw new UnsupportedOperationException();
        }
    };
    IExceptionMapper exceptionMapper = new IExceptionMapper() {

        @Override
        public IRequestHandler map(Exception e) {
            exceptionsMapped++;
            return null;
        }
    };
    RequestCycleContext context = new RequestCycleContext(request, originalResponse, requestMapper, exceptionMapper);
    RequestCycle cycle = new RequestCycle(context);
    if (Application.exists()) {
        cycle.getListeners().add(Application.get().getRequestCycleListeners());
    }
    return cycle;
}
Also used : Response(org.apache.wicket.request.Response) IRequestHandler(org.apache.wicket.request.IRequestHandler) IRequestCycle(org.apache.wicket.request.IRequestCycle) MockWebRequest(org.apache.wicket.mock.MockWebRequest) Request(org.apache.wicket.request.Request) MockWebRequest(org.apache.wicket.mock.MockWebRequest) IExceptionMapper(org.apache.wicket.request.IExceptionMapper) IRequestMapper(org.apache.wicket.request.IRequestMapper) IRequestCycle(org.apache.wicket.request.IRequestCycle) ReplaceHandlerException(org.apache.wicket.request.RequestHandlerExecutor.ReplaceHandlerException)

Example 29 with Response

use of org.apache.wicket.request.Response in project wicket by apache.

the class CssUrlReplacerTest method newApplication.

@Override
protected WebApplication newApplication() {
    return new MockApplication() {

        @Override
        protected void init() {
            super.init();
            getResourceSettings().setCachingStrategy(new FilenameWithVersionResourceCachingStrategy("=VER=", new MessageDigestResourceVersion()) {

                @Override
                public void decorateUrl(ResourceUrl url, IStaticCacheableResource resource) {
                    url.setFileName(url.getFileName() + DECORATION_SUFFIX);
                }
            });
        }

        @Override
        public Session newSession(Request request, Response response) {
            Session newSession = super.newSession(request, response);
            newSession.setLocale(Locale.ROOT);
            return newSession;
        }
    };
}
Also used : FilenameWithVersionResourceCachingStrategy(org.apache.wicket.request.resource.caching.FilenameWithVersionResourceCachingStrategy) IStaticCacheableResource(org.apache.wicket.request.resource.caching.IStaticCacheableResource) Response(org.apache.wicket.request.Response) MockApplication(org.apache.wicket.mock.MockApplication) Request(org.apache.wicket.request.Request) MessageDigestResourceVersion(org.apache.wicket.request.resource.caching.version.MessageDigestResourceVersion) ResourceUrl(org.apache.wicket.request.resource.caching.ResourceUrl) Session(org.apache.wicket.Session)

Example 30 with Response

use of org.apache.wicket.request.Response in project openmeetings by apache.

the class Application method init.

@Override
protected void init() {
    setWicketApplicationName(super.getName());
    getSecuritySettings().setAuthenticationStrategy(new OmAuthenticationStrategy());
    getApplicationSettings().setAccessDeniedPage(AccessDeniedPage.class);
    getComponentInstantiationListeners().add(new SpringComponentInjector(this, ctx, true));
    hazelcast.getCluster().getLocalMember().setStringAttribute(NAME_ATTR_KEY, hazelcast.getName());
    hazelWsTopic = hazelcast.getTopic("default");
    hazelWsTopic.addMessageListener(msg -> {
        String serverId = msg.getPublishingMember().getStringAttribute(NAME_ATTR_KEY);
        if (serverId.equals(hazelcast.getName())) {
            return;
        }
        WbWebSocketHelper.send(msg.getMessageObject());
    });
    hazelcast.getCluster().addMembershipListener(new MembershipListener() {

        @Override
        public void memberRemoved(MembershipEvent evt) {
            // server down, need to remove all online clients, process persistent addresses
            String serverId = evt.getMember().getStringAttribute(NAME_ATTR_KEY);
            cm.clean(serverId);
            scm.clean(serverId);
            updateJpaAddresses();
        }

        @Override
        public void memberAttributeChanged(MemberAttributeEvent evt) {
        // no-op
        }

        @Override
        public void memberAdded(MembershipEvent evt) {
            // server added, need to process persistent addresses
            updateJpaAddresses();
            // check for duplicate instance-names
            Set<String> names = new HashSet<>();
            for (Member m : evt.getMembers()) {
                if (evt.getMember().getUuid().equals(m.getUuid())) {
                    continue;
                }
                String serverId = m.getStringAttribute(NAME_ATTR_KEY);
                names.add(serverId);
            }
            String serverId = evt.getMember().getStringAttribute(NAME_ATTR_KEY);
            if (names.contains(serverId)) {
                log.warn("Duplicate cluster instance with name {} found {}", serverId, evt.getMember());
            }
        }
    });
    setPageManagerProvider(new DefaultPageManagerProvider(this) {

        @Override
        protected IDataStore newDataStore() {
            return new HazelcastDataStore(hazelcast);
        }
    });
    // Add custom resource loader at the beginning, so it will be checked first in the
    // chain of Resource Loaders, if not found it will search in Wicket's internal
    // Resource Loader for a the property key
    getResourceSettings().getStringResourceLoaders().add(0, new LabelResourceLoader());
    getJavaScriptLibrarySettings().setJQueryReference(getV3());
    getRequestCycleListeners().add(new WebSocketAwareCsrfPreventionRequestCycleListener() {

        @Override
        public void onEndRequest(RequestCycle cycle) {
            Response resp = cycle.getResponse();
            if (resp instanceof WebResponse && !(resp instanceof WebSocketResponse)) {
                WebResponse wresp = (WebResponse) resp;
                wresp.setHeader("X-XSS-Protection", "1; mode=block");
                wresp.setHeader("Strict-Transport-Security", "max-age=31536000; includeSubDomains; preload");
                wresp.setHeader("X-Content-Type-Options", "nosniff");
                wresp.setHeader("X-Frame-Options", xFrameOptions);
                Url reqUrl = cycle.getRequest().getUrl();
                wresp.setHeader("Content-Security-Policy", String.format("%s; connect-src 'self' %s;", contentSecurityPolicy, getWsUrl(reqUrl)));
            }
        }
    });
    super.init();
    // register some widgets
    dashboardContext = new DashboardContext();
    dashboardContext.setDashboardPersister(new UserDashboardPersister());
    WidgetRegistry widgetRegistry = dashboardContext.getWidgetRegistry();
    widgetRegistry.registerWidget(new MyRoomsWidgetDescriptor());
    widgetRegistry.registerWidget(new RecentRoomsWidgetDescriptor());
    widgetRegistry.registerWidget(new WelcomeWidgetDescriptor());
    widgetRegistry.registerWidget(new StartWidgetDescriptor());
    widgetRegistry.registerWidget(new RssWidgetDescriptor());
    widgetRegistry.registerWidget(new AdminWidgetDescriptor());
    // add dashboard context injector
    getComponentInstantiationListeners().add(new DashboardContextInjector(dashboardContext));
    DashboardSettings dashboardSettings = DashboardSettings.get();
    dashboardSettings.setIncludeJQueryUI(false);
    getRootRequestMapperAsCompound().add(new NoVersionMapper(getHomePage()));
    getRootRequestMapperAsCompound().add(new NoVersionMapper(NOTINIT_MAPPING, NotInitedPage.class));
    getRootRequestMapperAsCompound().add(new NoVersionMapper(HASH_MAPPING, HashPage.class));
    getRootRequestMapperAsCompound().add(new NoVersionMapper(SIGNIN_MAPPING, getSignInPageClass()));
    getRootRequestMapperAsCompound().add(new NoVersionMapper("oauth/${oauthid}", getSignInPageClass()));
    mountPage("install", InstallWizardPage.class);
    mountPage("activate", ActivatePage.class);
    mountPage("reset", ResetPage.class);
    mountResource("/recordings/mp4/${id}", new Mp4RecordingResourceReference());
    // should be in sync with VideoPlayer
    mountResource("/recordings/png/${id}", new PngRecordingResourceReference());
    mountResource("/room/file/${id}", new RoomResourceReference());
    mountResource("/room/preview/${id}", new RoomPreviewResourceReference());
    mountResource("/profile/${id}", new ProfileImageResourceReference());
    mountResource("/group/${id}", new GroupLogoResourceReference());
    log.debug("Application::init");
    try {
        if (OmFileHelper.getOmHome() == null) {
            OmFileHelper.setOmHome(new File(getServletContext().getRealPath("/")));
        }
        LabelDao.initLanguageMap();
        log.debug("webAppPath : {}", OmFileHelper.getOmHome());
        // Init all global config properties
        cfgDao.reinit();
        // Init properties
        setXFrameOptions(cfgDao.getString(CONFIG_HEADER_XFRAME, HEADER_XFRAME_SAMEORIGIN));
        setContentSecurityPolicy(cfgDao.getString(CONFIG_HEADER_CSP, HEADER_CSP_SELF));
        updateJpaAddresses();
        setExtProcessTtl(cfgDao.getInt(CONFIG_EXT_PROCESS_TTL, getExtProcessTtl()));
        Version.logOMStarted();
        // we are starting so all processing recordings are now errors
        recordingDao.resetProcessingStatus();
        setInitComplete(true);
    } catch (Exception err) {
        log.error("[appStart]", err);
    }
}
Also used : DashboardContext(org.wicketstuff.dashboard.web.DashboardContext) ProfileImageResourceReference(org.apache.openmeetings.web.util.ProfileImageResourceReference) Set(java.util.Set) HashSet(java.util.HashSet) MemberAttributeEvent(com.hazelcast.core.MemberAttributeEvent) DashboardSettings(org.wicketstuff.dashboard.web.DashboardSettings) MembershipEvent(com.hazelcast.core.MembershipEvent) RequestCycle(org.apache.wicket.request.cycle.RequestCycle) RecentRoomsWidgetDescriptor(org.apache.openmeetings.web.user.dashboard.RecentRoomsWidgetDescriptor) Url(org.apache.wicket.request.Url) OpenmeetingsVariables.getBaseUrl(org.apache.openmeetings.util.OpenmeetingsVariables.getBaseUrl) MyRoomsWidgetDescriptor(org.apache.openmeetings.web.user.dashboard.MyRoomsWidgetDescriptor) HazelcastDataStore(org.wicketstuff.datastores.hazelcast.HazelcastDataStore) DashboardContextInjector(org.wicketstuff.dashboard.web.DashboardContextInjector) Member(com.hazelcast.core.Member) RoomPreviewResourceReference(org.apache.openmeetings.web.room.RoomPreviewResourceReference) IDataStore(org.apache.wicket.pageStore.IDataStore) WebResponse(org.apache.wicket.request.http.WebResponse) WelcomeWidgetDescriptor(org.apache.openmeetings.web.user.dashboard.WelcomeWidgetDescriptor) AdminWidgetDescriptor(org.apache.openmeetings.web.user.dashboard.admin.AdminWidgetDescriptor) RssWidgetDescriptor(org.apache.openmeetings.web.user.dashboard.RssWidgetDescriptor) Mp4RecordingResourceReference(org.apache.openmeetings.web.user.record.Mp4RecordingResourceReference) NotInitedPage(org.apache.openmeetings.web.pages.NotInitedPage) RoomResourceReference(org.apache.openmeetings.web.room.RoomResourceReference) WicketRuntimeException(org.apache.wicket.WicketRuntimeException) UnknownHostException(java.net.UnknownHostException) WebSocketAwareCsrfPreventionRequestCycleListener(org.apache.wicket.protocol.ws.WebSocketAwareCsrfPreventionRequestCycleListener) WebResponse(org.apache.wicket.request.http.WebResponse) Response(org.apache.wicket.request.Response) WebSocketResponse(org.apache.wicket.protocol.ws.api.WebSocketResponse) HashPage(org.apache.openmeetings.web.pages.HashPage) StartWidgetDescriptor(org.apache.openmeetings.web.user.dashboard.StartWidgetDescriptor) GroupLogoResourceReference(org.apache.openmeetings.web.util.GroupLogoResourceReference) WidgetRegistry(org.wicketstuff.dashboard.WidgetRegistry) SpringComponentInjector(org.apache.wicket.spring.injection.annot.SpringComponentInjector) MembershipListener(com.hazelcast.core.MembershipListener) WebSocketResponse(org.apache.wicket.protocol.ws.api.WebSocketResponse) PngRecordingResourceReference(org.apache.openmeetings.web.user.record.PngRecordingResourceReference) File(java.io.File) UserDashboardPersister(org.apache.openmeetings.web.util.UserDashboardPersister) DefaultPageManagerProvider(org.apache.wicket.DefaultPageManagerProvider)

Aggregations

Response (org.apache.wicket.request.Response)30 IHeaderResponse (org.apache.wicket.markup.head.IHeaderResponse)9 WebResponse (org.apache.wicket.request.http.WebResponse)9 StringResponse (org.apache.wicket.response.StringResponse)9 Request (org.apache.wicket.request.Request)8 RequestCycle (org.apache.wicket.request.cycle.RequestCycle)8 HeaderResponse (org.apache.wicket.markup.head.internal.HeaderResponse)5 HttpServletResponse (javax.servlet.http.HttpServletResponse)4 WicketRuntimeException (org.apache.wicket.WicketRuntimeException)4 MockApplication (org.apache.wicket.mock.MockApplication)4 Before (org.junit.Before)4 Session (org.apache.wicket.Session)3 IRequestCycle (org.apache.wicket.request.IRequestCycle)3 WicketTester (org.apache.wicket.util.tester.WicketTester)3 Test (org.junit.Test)3 Component (org.apache.wicket.Component)2 WebSession (org.apache.wicket.protocol.http.WebSession)2 Member (com.hazelcast.core.Member)1 MemberAttributeEvent (com.hazelcast.core.MemberAttributeEvent)1 MembershipEvent (com.hazelcast.core.MembershipEvent)1