You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by pe...@apache.org on 2026/09/08 23:46:28 UTC
(wicket) branch wicket-10.x updated (d716af4a78 -> 2edbe271bb)
This is an automated email from the ASF dual-hosted git repository.
pedrosans pushed a change to branch wicket-10.x
in repository https://gitbox.apache.org/repos/asf/wicket.git
from d716af4a78 Document the CDI integration in the user guide
new 00f2e01032 WICKET-7205: Resolve IRequestHandlerDelegate-Chain in CSP-Processing
new fedc172255 Simplified test.
new 2edbe271bb Further simplified test
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../org/apache/wicket/csp/CSPHeaderWriterTest.java | 50 ++++++++++++++++++++++
.../wicket/request/IRequestHandlerDelegate.java | 6 +--
2 files changed, 53 insertions(+), 3 deletions(-)
(wicket) 03/03: Further simplified test
Posted by pe...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
pedrosans pushed a commit to branch wicket-10.x
in repository https://gitbox.apache.org/repos/asf/wicket.git
commit 2edbe271bb742dc56718aef7f4ab4b025d698d37
Author: Schäfer, H.H. (Hans Hosea) <Ha...@ing.de>
AuthorDate: Tue Sep 8 21:22:10 2026 +0200
Further simplified test
---
.../test/java/org/apache/wicket/csp/CSPHeaderWriterTest.java | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
diff --git a/wicket-core-tests/src/test/java/org/apache/wicket/csp/CSPHeaderWriterTest.java b/wicket-core-tests/src/test/java/org/apache/wicket/csp/CSPHeaderWriterTest.java
index 71a9fc62e3..cda846e588 100644
--- a/wicket-core-tests/src/test/java/org/apache/wicket/csp/CSPHeaderWriterTest.java
+++ b/wicket-core-tests/src/test/java/org/apache/wicket/csp/CSPHeaderWriterTest.java
@@ -128,7 +128,7 @@ class CSPHeaderWriterTest extends WicketTestCase
@Test
void addCspDirectiveToPageEvenIfWrappedInMultipleIRequestHandlerDelegates()
{
- tester.getApplication().mount(new MountedMapper("withdelegate/page", NoopMockPage.class)
+ tester.getApplication().mount(new MountedMapper("withdelegate/page", Page.class)
{
@Override
public IRequestHandler mapRequest(final Request request)
@@ -140,16 +140,13 @@ class CSPHeaderWriterTest extends WicketTestCase
.orElse(null);
}
});
- tester.startPage(NoopMockPage.class);
+ tester.startPage(Page.class);
- assertThat(tester.getLastRenderedPage()).isInstanceOf(NoopMockPage.class);
+ assertThat(tester.getLastRenderedPage()).isInstanceOf(Page.class);
assertThat(tester.getLastResponse().getHeader("Content-Security-Policy")).contains(
STYLE_SRC.getValue());
}
-
- public static class NoopMockPage extends MockHomePage {
- }
-
+
static class NoopIRequestHandlerDelegate implements IRequestHandlerDelegate {
private final IRequestHandler delegate;
(wicket) 01/03: WICKET-7205: Resolve IRequestHandlerDelegate-Chain in CSP-Processing
Posted by pe...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
pedrosans pushed a commit to branch wicket-10.x
in repository https://gitbox.apache.org/repos/asf/wicket.git
commit 00f2e01032023a67da610906094095317984eb5d
Author: Schäfer, H.H. (Hans Hosea) <Ha...@ing.de>
AuthorDate: Tue Sep 8 13:12:59 2026 +0200
WICKET-7205: Resolve IRequestHandlerDelegate-Chain in CSP-Processing
---
.../org/apache/wicket/csp/CSPHeaderWriterTest.java | 55 ++++++++++++++++++++++
.../wicket/request/IRequestHandlerDelegate.java | 6 +--
2 files changed, 58 insertions(+), 3 deletions(-)
diff --git a/wicket-core-tests/src/test/java/org/apache/wicket/csp/CSPHeaderWriterTest.java b/wicket-core-tests/src/test/java/org/apache/wicket/csp/CSPHeaderWriterTest.java
index e491144992..ad3edefdcb 100644
--- a/wicket-core-tests/src/test/java/org/apache/wicket/csp/CSPHeaderWriterTest.java
+++ b/wicket-core-tests/src/test/java/org/apache/wicket/csp/CSPHeaderWriterTest.java
@@ -20,16 +20,24 @@ import org.apache.wicket.MarkupContainer;
import org.apache.wicket.RestartResponseException;
import org.apache.wicket.core.request.handler.PageProvider;
import org.apache.wicket.core.request.handler.RenderPageRequestHandler;
+import org.apache.wicket.core.request.mapper.MountedMapper;
import org.apache.wicket.markup.IMarkupResourceStreamProvider;
import org.apache.wicket.markup.head.CssHeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.form.login.MockHomePage;
import org.apache.wicket.markup.html.link.StatelessLink;
import org.apache.wicket.protocol.http.BufferedWebResponse;
import org.apache.wicket.protocol.http.WebApplication;
import org.apache.wicket.protocol.http.mock.MockHttpServletResponse;
import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
+import org.apache.wicket.request.IRequestCycle;
+import org.apache.wicket.request.IRequestHandler;
+import org.apache.wicket.request.IRequestHandlerDelegate;
+import org.apache.wicket.request.IRequestMapper;
+import org.apache.wicket.request.Request;
import org.apache.wicket.request.Response;
+import org.apache.wicket.request.Url;
import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.request.http.WebResponse;
import org.apache.wicket.request.mapper.parameter.PageParameters;
@@ -115,6 +123,53 @@ class CSPHeaderWriterTest extends WicketTestCase
STYLE_SRC.getValue());
}
+ @Test
+ void addCspDirectiveToStatelessPageEvenIfWrappedInMultipleIRequestHandlerDelegates()
+ {
+ tester.getApplication().mount(new MountedMapper("withdelegate/page", NoopMockPage.class)
+ {
+ @Override
+ public IRequestHandler mapRequest(final Request request)
+ {
+ final IRequestHandler requestHandler = super.mapRequest(request);
+ final IRequestHandler result;
+ if (requestHandler instanceof RenderPageRequestHandler renderPageRequestHandler && NoopMockPage.class.equals(renderPageRequestHandler.getPageClass()))
+ {
+ result = new NoopIRequestHandlerDelegate(new NoopIRequestHandlerDelegate(renderPageRequestHandler));
+ } else {
+ result = requestHandler;
+ }
+ return result;
+ }
+ });
+ tester.startPage(NoopMockPage.class);
+
+ assertThat(tester.getLastRenderedPage()).isInstanceOf(NoopMockPage.class);
+ assertThat(tester.getLastResponse().getHeader("Content-Security-Policy")).contains(
+ STYLE_SRC.getValue());
+ }
+
+ public static class NoopMockPage extends MockHomePage {
+ }
+
+ static class NoopIRequestHandlerDelegate implements IRequestHandlerDelegate {
+ private final IRequestHandler delegate;
+
+ NoopIRequestHandlerDelegate(final IRequestHandler delegate) {
+ this.delegate = delegate;
+ }
+
+ @Override
+ public IRequestHandler getDelegateHandler() {
+ return delegate;
+ }
+
+ @Override
+ public void respond(final IRequestCycle requestCycle) {
+ delegate.respond(requestCycle);
+ }
+ }
+
public static class Page extends WebPage implements IMarkupResourceStreamProvider
{
@Override
diff --git a/wicket-request/src/main/java/org/apache/wicket/request/IRequestHandlerDelegate.java b/wicket-request/src/main/java/org/apache/wicket/request/IRequestHandlerDelegate.java
index de3803dd99..9c4909332f 100644
--- a/wicket-request/src/main/java/org/apache/wicket/request/IRequestHandlerDelegate.java
+++ b/wicket-request/src/main/java/org/apache/wicket/request/IRequestHandlerDelegate.java
@@ -29,11 +29,11 @@ public interface IRequestHandlerDelegate extends IRequestHandler
/**
* @return the innermost delegated {@link IRequestHandler}
*/
- static IRequestHandler unwrap(IRequestHandler handler)
+ static IRequestHandler unwrap(final IRequestHandler handler)
{
- if (handler instanceof IRequestHandlerDelegate)
+ if (handler instanceof IRequestHandlerDelegate requestHandlerDelegate)
{
- return ((IRequestHandlerDelegate)handler).getDelegateHandler();
+ return unwrap(requestHandlerDelegate.getDelegateHandler());
}
return handler;
}
(wicket) 02/03: Simplified test.
Posted by pe...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
pedrosans pushed a commit to branch wicket-10.x
in repository https://gitbox.apache.org/repos/asf/wicket.git
commit fedc172255b5dbd9c87c7d1ca26bed4f3b6012f3
Author: Schäfer, H.H. (Hans Hosea) <Ha...@ing.de>
AuthorDate: Tue Sep 8 21:18:19 2026 +0200
Simplified test.
---
.../java/org/apache/wicket/csp/CSPHeaderWriterTest.java | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)
diff --git a/wicket-core-tests/src/test/java/org/apache/wicket/csp/CSPHeaderWriterTest.java b/wicket-core-tests/src/test/java/org/apache/wicket/csp/CSPHeaderWriterTest.java
index ad3edefdcb..71a9fc62e3 100644
--- a/wicket-core-tests/src/test/java/org/apache/wicket/csp/CSPHeaderWriterTest.java
+++ b/wicket-core-tests/src/test/java/org/apache/wicket/csp/CSPHeaderWriterTest.java
@@ -58,6 +58,8 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.*;
+import java.util.Optional;
+
class CSPHeaderWriterTest extends WicketTestCase
{
@@ -124,7 +126,7 @@ class CSPHeaderWriterTest extends WicketTestCase
}
@Test
- void addCspDirectiveToStatelessPageEvenIfWrappedInMultipleIRequestHandlerDelegates()
+ void addCspDirectiveToPageEvenIfWrappedInMultipleIRequestHandlerDelegates()
{
tester.getApplication().mount(new MountedMapper("withdelegate/page", NoopMockPage.class)
{
@@ -132,14 +134,10 @@ class CSPHeaderWriterTest extends WicketTestCase
public IRequestHandler mapRequest(final Request request)
{
final IRequestHandler requestHandler = super.mapRequest(request);
- final IRequestHandler result;
- if (requestHandler instanceof RenderPageRequestHandler renderPageRequestHandler && NoopMockPage.class.equals(renderPageRequestHandler.getPageClass()))
- {
- result = new NoopIRequestHandlerDelegate(new NoopIRequestHandlerDelegate(renderPageRequestHandler));
- } else {
- result = requestHandler;
- }
- return result;
+ return Optional.ofNullable(requestHandler)
+ .map(NoopIRequestHandlerDelegate::new)
+ .map(NoopIRequestHandlerDelegate::new) // wrap twice
+ .orElse(null);
}
});
tester.startPage(NoopMockPage.class);