You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2015/07/26 00:09:36 UTC
[1/2] wicket git commit: WICKET-1718 since 1.5.x a
ReplaceHandlerException does no longer immediately change the current request
handler,
thus the comparison with the current page was bogus and never prevented
validation of headers
Repository: wicket
Updated Branches:
refs/heads/master 0f48a1e71 -> bb7f9cf54
WICKET-1718 since 1.5.x a ReplaceHandlerException does no longer immediately change the current request handler, thus the comparison with the current page was bogus and never prevented validation of headers
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/af84be57
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/af84be57
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/af84be57
Branch: refs/heads/master
Commit: af84be5792ac22124a4fa19743c03c73eb8d292b
Parents: 0f48a1e
Author: Sven Meier <sv...@apache.org>
Authored: Sat Jul 25 23:17:54 2015 +0200
Committer: Sven Meier <sv...@apache.org>
Committed: Sat Jul 25 23:17:54 2015 +0200
----------------------------------------------------------------------
.../java/org/apache/wicket/markup/html/WebPage.java | 16 +++-------------
1 file changed, 3 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/af84be57/wicket-core/src/main/java/org/apache/wicket/markup/html/WebPage.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/WebPage.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/WebPage.java
index 05feebb..903d7c4 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/WebPage.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/WebPage.java
@@ -213,23 +213,13 @@ public class WebPage extends Page
@Override
protected void onAfterRender()
{
- super.onAfterRender();
-
// only in development mode validate the headers
if (getApplication().usesDevelopmentConfig())
{
- // Ignore if an exception and a redirect happened in between (e.g.
- // RestartResponseAtInterceptPageException)
- IRequestHandler activeHandler = getRequestCycle().getActiveRequestHandler();
- if (activeHandler instanceof IPageRequestHandler)
- {
- IPageRequestHandler h = (IPageRequestHandler)activeHandler;
- if (h.getPage() == this)
- {
- validateHeaders();
- }
- }
+ validateHeaders();
}
+
+ super.onAfterRender();
}
/**
[2/2] wicket git commit: WICKET-1718 check successful rendering of
page before validating headers
Posted by sv...@apache.org.
WICKET-1718 check successful rendering of page before validating headers
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/bb7f9cf5
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/bb7f9cf5
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/bb7f9cf5
Branch: refs/heads/master
Commit: bb7f9cf54770d8470c03a7e2f00eb6445e3953f4
Parents: af84be5
Author: Sven Meier <sv...@apache.org>
Authored: Sat Jul 25 23:19:42 2015 +0200
Committer: Sven Meier <sv...@apache.org>
Committed: Sat Jul 25 23:43:44 2015 +0200
----------------------------------------------------------------------
.../org/apache/wicket/markup/html/WebPage.java | 7 ++--
...artResponseAtInterceptPageExceptionTest.java | 39 ++++++++++++++++++--
2 files changed, 40 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/bb7f9cf5/wicket-core/src/main/java/org/apache/wicket/markup/html/WebPage.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/WebPage.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/WebPage.java
index 903d7c4..5c7d6bb 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/WebPage.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/WebPage.java
@@ -26,11 +26,9 @@ import org.apache.wicket.markup.parser.filter.HtmlHeaderSectionHandler;
import org.apache.wicket.markup.renderStrategy.AbstractHeaderRenderStrategy;
import org.apache.wicket.model.IModel;
import org.apache.wicket.protocol.http.WebApplication;
-import org.apache.wicket.request.IRequestHandler;
import org.apache.wicket.request.Request;
import org.apache.wicket.request.Response;
import org.apache.wicket.request.cycle.RequestCycle;
-import org.apache.wicket.core.request.handler.IPageRequestHandler;
import org.apache.wicket.request.http.WebRequest;
import org.apache.wicket.request.http.WebResponse;
import org.apache.wicket.request.mapper.parameter.PageParameters;
@@ -216,7 +214,10 @@ public class WebPage extends Page
// only in development mode validate the headers
if (getApplication().usesDevelopmentConfig())
{
- validateHeaders();
+ // check headers only when page was completely rendered
+ if (wasRendered(this)) {
+ validateHeaders();
+ }
}
super.onAfterRender();
http://git-wip-us.apache.org/repos/asf/wicket/blob/bb7f9cf5/wicket-core/src/test/java/org/apache/wicket/RestartResponseAtInterceptPageExceptionTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/RestartResponseAtInterceptPageExceptionTest.java b/wicket-core/src/test/java/org/apache/wicket/RestartResponseAtInterceptPageExceptionTest.java
index 1361d36..8220cd0 100644
--- a/wicket-core/src/test/java/org/apache/wicket/RestartResponseAtInterceptPageExceptionTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/RestartResponseAtInterceptPageExceptionTest.java
@@ -16,13 +16,22 @@
*/
package org.apache.wicket;
+import org.apache.wicket.ajax.AjaxEventBehavior;
+import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.authorization.Action;
import org.apache.wicket.authorization.strategies.page.AbstractPageAuthorizationStrategy;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.markup.html.pages.RedirectPage;
import org.apache.wicket.mock.MockApplication;
+import org.apache.wicket.mock.MockHomePage;
import org.apache.wicket.protocol.http.WebApplication;
+import org.apache.wicket.resource.CoreLibrariesContributor;
import org.apache.wicket.util.tester.WicketTestCase;
import org.junit.Test;
+import junit.framework.Assert;
+
/**
* Tests for {@link RestartResponseAtInterceptPageException}
*/
@@ -42,10 +51,12 @@ public class RestartResponseAtInterceptPageExceptionTest extends WicketTestCase
getSecuritySettings().setAuthorizationStrategy(
new AbstractPageAuthorizationStrategy()
{
+ /**
+ * No rendering for pages other than RedirectPage.
+ */
@Override
- protected <T extends Page> boolean isPageAuthorized(Class<T> pageClass)
- {
- if (pageClass != RedirectPage.class)
+ public boolean isActionAuthorized(Component c, Action action) {
+ if ((action.toString() == Action.RENDER) && c instanceof WebPage && c.getClass() != RedirectPage.class)
{
RedirectPage intercept = new RedirectPage("http://example.com/path");
throw new RestartResponseAtInterceptPageException(intercept);
@@ -68,4 +79,26 @@ public class RestartResponseAtInterceptPageExceptionTest extends WicketTestCase
tester.assertRenderedPage(RedirectPage.class);
}
+ /**
+ * https://issues.apache.org/jira/browse/WICKET-5955
+ */
+ @Test
+ public void interceptPagePreventsHeaderContributionButShouldNotBeLogged()
+ {
+ tester.startPage(new MockHomePage() {
+ @Override
+ public void renderHead(IHeaderResponse response) {
+ super.renderHead(response);
+
+ CoreLibrariesContributor.contribute(getApplication(), response);
+ }
+
+ @Override
+ protected void reportMissingHead(CharSequence collectedHeaderOutput) {
+ fail("missing headers should not be reported for unrendered page");
+ }
+ });
+
+ tester.assertRenderedPage(RedirectPage.class);
+ }
}