Skip to content

Commit a369a10

Browse files
committed
Make .../build URL use regular RequirePOST notice
1 parent 81b61bb commit a369a10

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

core/src/main/java/hudson/model/BuildAuthorizationToken.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,17 +35,20 @@
3535
import java.io.IOException;
3636
import java.nio.charset.StandardCharsets;
3737
import java.security.MessageDigest;
38+
import java.util.ServiceLoader;
3839
import java.util.logging.Level;
3940
import java.util.logging.Logger;
4041
import jenkins.model.Jenkins;
4142
import jenkins.model.ParameterizedJobMixIn;
4243
import org.kohsuke.accmod.Restricted;
4344
import org.kohsuke.accmod.restrictions.NoExternalUse;
45+
import org.kohsuke.stapler.ForwardToView;
4446
import org.kohsuke.stapler.HttpResponses;
4547
import org.kohsuke.stapler.StaplerRequest;
4648
import org.kohsuke.stapler.StaplerRequest2;
4749
import org.kohsuke.stapler.StaplerResponse;
4850
import org.kohsuke.stapler.StaplerResponse2;
51+
import org.kohsuke.stapler.interceptor.RequirePOST;
4952
import org.springframework.security.access.AccessDeniedException;
5053

5154
/**
@@ -124,6 +127,13 @@ public static void checkPermission(Job<?, ?> project, BuildAuthorizationToken to
124127
return;
125128
}
126129

130+
for (RequirePOST.ErrorCustomizer handler : ServiceLoader.load(RequirePOST.ErrorCustomizer.class)) {
131+
ForwardToView forwardToView = handler.getForwardView();
132+
if (forwardToView != null) {
133+
throw forwardToView.with("requestURL", req.getRequestURLWithQueryString().toString());
134+
}
135+
}
136+
127137
rsp.setStatus(HttpServletResponse.SC_METHOD_NOT_ALLOWED);
128138
rsp.addHeader("Allow", "POST");
129139
throw HttpResponses.forwardToView(project, "requirePOST.jelly");

core/src/main/resources/hudson/security/csrf/CrumbFilter/retry.jelly

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ THE SOFTWARE.
2525
<?jelly escape-by-default='true'?>
2626
<j:jelly xmlns:j="jelly:core" xmlns:st="jelly:stapler" xmlns:d="jelly:define" xmlns:l="/lib/layout" xmlns:t="/lib/hudson" xmlns:f="/lib/form">
2727
<st:statusCode value="405"/>
28-
<l:layout norefresh="true" title="${%Method Not Allowed}">
28+
<st:header name="Allow" value="POST" />
29+
<l:layout title="${%Method Not Allowed}">
2930

3031
<l:main-panel>
3132
<h1>${%This URL requires POST}</h1>

0 commit comments

Comments
 (0)