From f0efdbab087ea26342a034da198d055bd7141b8a Mon Sep 17 00:00:00 2001
From: Daniel Beck
Date: Fri, 15 Dec 2017 23:43:01 +0100
Subject: [PATCH] [JENKINS-34254] Add test
---
.../security/csrf/CrumbFilter/retry.jelly | 2 +-
.../security/csrf/DefaultCrumbIssuerTest.java | 17 +++++++++++++++++
2 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/core/src/main/resources/hudson/security/csrf/CrumbFilter/retry.jelly b/core/src/main/resources/hudson/security/csrf/CrumbFilter/retry.jelly
index 163e015556..70e615b78e 100644
--- a/core/src/main/resources/hudson/security/csrf/CrumbFilter/retry.jelly
+++ b/core/src/main/resources/hudson/security/csrf/CrumbFilter/retry.jelly
@@ -34,7 +34,7 @@ THE SOFTWARE.
${requestURL}
${%warning}
-
+
diff --git a/test/src/test/java/hudson/security/csrf/DefaultCrumbIssuerTest.java b/test/src/test/java/hudson/security/csrf/DefaultCrumbIssuerTest.java
index f3fddef1af..52dc455faf 100644
--- a/test/src/test/java/hudson/security/csrf/DefaultCrumbIssuerTest.java
+++ b/test/src/test/java/hudson/security/csrf/DefaultCrumbIssuerTest.java
@@ -8,6 +8,8 @@ package hudson.security.csrf;
import com.gargoylesoftware.htmlunit.FailingHttpStatusCodeException;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
+import jenkins.model.Jenkins;
+import junit.framework.Assert;
import net.sf.json.JSONObject;
import org.junit.Before;
import org.junit.Rule;
@@ -135,4 +137,19 @@ public class DefaultCrumbIssuerTest {
wc.assertFails("crumbIssuer/api/json?jsonp=hack", HttpURLConnection.HTTP_FORBIDDEN);
}
+ @Issue("JENKINS-34254")
+ @Test public void testRequirePostErrorPageCrumb() throws Exception {
+ Jenkins.getInstance().setCrumbIssuer(new DefaultCrumbIssuer(false));
+ WebClient wc = r.createWebClient();
+ try {
+ wc.goTo("quietDown");
+ fail("expected failure");
+ } catch (FailingHttpStatusCodeException ex) {
+ Assert.assertEquals("expect HTTP 405 method not allowed", 405, ex.getStatusCode());
+ }
+ HtmlPage retry = (HtmlPage) wc.getCurrentWindow().getEnclosedPage();
+ HtmlPage success = r.submit(retry.getFormByName("retry"));
+ Assert.assertTrue("quieting down", r.jenkins.isQuietingDown());
+ }
+
}