提交 eaafedd2 编写于 作者: D Daniel Beck

[SECURITY-420] Add more @RequirePOST annotations

上级 23f4809e
...@@ -46,6 +46,7 @@ import org.apache.tools.ant.taskdefs.Move; ...@@ -46,6 +46,7 @@ import org.apache.tools.ant.taskdefs.Move;
import org.apache.tools.ant.Project; import org.apache.tools.ant.Project;
import org.apache.tools.ant.DefaultLogger; import org.apache.tools.ant.DefaultLogger;
import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.FileSet;
import org.kohsuke.stapler.interceptor.RequirePOST;
import javax.servlet.ServletException; import javax.servlet.ServletException;
import java.io.File; import java.io.File;
...@@ -105,6 +106,7 @@ public class WindowsInstallerLink extends ManagementLink { ...@@ -105,6 +106,7 @@ public class WindowsInstallerLink extends ManagementLink {
/** /**
* Performs installation. * Performs installation.
*/ */
@RequirePOST
public void doDoInstall(StaplerRequest req, StaplerResponse rsp, @QueryParameter("dir") String _dir) throws IOException, ServletException { public void doDoInstall(StaplerRequest req, StaplerResponse rsp, @QueryParameter("dir") String _dir) throws IOException, ServletException {
if(installationDir!=null) { if(installationDir!=null) {
// installation already complete // installation already complete
...@@ -166,6 +168,7 @@ public class WindowsInstallerLink extends ManagementLink { ...@@ -166,6 +168,7 @@ public class WindowsInstallerLink extends ManagementLink {
} }
} }
@RequirePOST
public void doRestart(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { public void doRestart(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException {
if(installationDir==null) { if(installationDir==null) {
// if the user reloads the page after Hudson has restarted, // if the user reloads the page after Hudson has restarted,
......
...@@ -130,6 +130,7 @@ public class LogRecorderManager extends AbstractModelObject implements ModelObje ...@@ -130,6 +130,7 @@ public class LogRecorderManager extends AbstractModelObject implements ModelObje
* Configure the logging level. * Configure the logging level.
*/ */
@edu.umd.cs.findbugs.annotations.SuppressWarnings("LG_LOST_LOGGER_DUE_TO_WEAK_REFERENCE") @edu.umd.cs.findbugs.annotations.SuppressWarnings("LG_LOST_LOGGER_DUE_TO_WEAK_REFERENCE")
@RequirePOST
public HttpResponse doConfigLogger(@QueryParameter String name, @QueryParameter String level) { public HttpResponse doConfigLogger(@QueryParameter String name, @QueryParameter String level) {
Jenkins.getInstance().checkPermission(Jenkins.ADMINISTER); Jenkins.getInstance().checkPermission(Jenkins.ADMINISTER);
Level lv; Level lv;
......
...@@ -52,6 +52,7 @@ import org.kohsuke.stapler.QueryParameter; ...@@ -52,6 +52,7 @@ import org.kohsuke.stapler.QueryParameter;
import org.kohsuke.stapler.StaplerFallback; import org.kohsuke.stapler.StaplerFallback;
import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse; import org.kohsuke.stapler.StaplerResponse;
import org.kohsuke.stapler.interceptor.RequirePOST;
/** /**
* A UserProperty that remembers user-private views. * A UserProperty that remembers user-private views.
...@@ -149,6 +150,7 @@ public class MyViewsProperty extends UserProperty implements ModifiableViewGroup ...@@ -149,6 +150,7 @@ public class MyViewsProperty extends UserProperty implements ModifiableViewGroup
return new HttpRedirect("view/" + Util.rawEncode(getPrimaryView().getViewName()) + "/"); return new HttpRedirect("view/" + Util.rawEncode(getPrimaryView().getViewName()) + "/");
} }
@RequirePOST
public synchronized void doCreateView(StaplerRequest req, StaplerResponse rsp) public synchronized void doCreateView(StaplerRequest req, StaplerResponse rsp)
throws IOException, ServletException, ParseException, FormException { throws IOException, ServletException, ParseException, FormException {
checkPermission(View.CREATE); checkPermission(View.CREATE);
......
...@@ -35,6 +35,7 @@ import java.io.IOException; ...@@ -35,6 +35,7 @@ import java.io.IOException;
import hudson.security.Permission; import hudson.security.Permission;
import hudson.security.ACL; import hudson.security.ACL;
import org.kohsuke.stapler.interceptor.RequirePOST;
/** /**
* Partial {@link Action} implementation for those who kick some * Partial {@link Action} implementation for those who kick some
...@@ -137,6 +138,7 @@ public abstract class TaskAction extends AbstractModelObject implements Action { ...@@ -137,6 +138,7 @@ public abstract class TaskAction extends AbstractModelObject implements Action {
/** /**
* Clears the error status. * Clears the error status.
*/ */
@RequirePOST
public synchronized void doClearError(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException { public synchronized void doClearError(StaplerRequest req, StaplerResponse rsp) throws IOException, ServletException {
getACL().checkPermission(getPermission()); getACL().checkPermission(getPermission());
......
...@@ -176,6 +176,7 @@ public class UpdateSite { ...@@ -176,6 +176,7 @@ public class UpdateSite {
/** /**
* This is the endpoint that receives the update center data file from the browser. * This is the endpoint that receives the update center data file from the browser.
*/ */
@RequirePOST
public FormValidation doPostBack(StaplerRequest req) throws IOException, GeneralSecurityException { public FormValidation doPostBack(StaplerRequest req) throws IOException, GeneralSecurityException {
DownloadSettings.checkPostBackAccess(); DownloadSettings.checkPostBackAccess();
return updateData(IOUtils.toString(req.getInputStream(),"UTF-8"), true); return updateData(IOUtils.toString(req.getInputStream(),"UTF-8"), true);
......
...@@ -27,6 +27,7 @@ import hudson.model.Computer; ...@@ -27,6 +27,7 @@ import hudson.model.Computer;
import org.kohsuke.stapler.HttpRedirect; import org.kohsuke.stapler.HttpRedirect;
import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.HttpResponse;
import org.kohsuke.stapler.HttpResponses; import org.kohsuke.stapler.HttpResponses;
import org.kohsuke.stapler.interceptor.RequirePOST;
import java.io.IOException; import java.io.IOException;
import javax.annotation.CheckForNull; import javax.annotation.CheckForNull;
...@@ -53,6 +54,7 @@ public class AbstractCloudComputer<T extends AbstractCloudSlave> extends SlaveCo ...@@ -53,6 +54,7 @@ public class AbstractCloudComputer<T extends AbstractCloudSlave> extends SlaveCo
* When the slave is deleted, free the node right away. * When the slave is deleted, free the node right away.
*/ */
@Override @Override
@RequirePOST
public HttpResponse doDoDelete() throws IOException { public HttpResponse doDoDelete() throws IOException {
checkPermission(DELETE); checkPermission(DELETE);
try { try {
......
...@@ -31,6 +31,7 @@ import org.apache.commons.io.FileUtils; ...@@ -31,6 +31,7 @@ import org.apache.commons.io.FileUtils;
import org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement; import org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement;
import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse; import org.kohsuke.stapler.StaplerResponse;
import org.kohsuke.stapler.interceptor.RequirePOST;
import javax.servlet.ServletException; import javax.servlet.ServletException;
import javax.servlet.ServletContext; import javax.servlet.ServletContext;
...@@ -175,6 +176,7 @@ public class DoubleLaunchChecker { ...@@ -175,6 +176,7 @@ public class DoubleLaunchChecker {
/** /**
* Ignore the problem and go back to using Hudson. * Ignore the problem and go back to using Hudson.
*/ */
@RequirePOST
public void doIgnore(StaplerRequest req, StaplerResponse rsp) throws IOException { public void doIgnore(StaplerRequest req, StaplerResponse rsp) throws IOException {
ignore = true; ignore = true;
Jenkins.getInstance().servletContext.setAttribute("app", Jenkins.getInstance()); Jenkins.getInstance().servletContext.setAttribute("app", Jenkins.getInstance());
......
...@@ -4,6 +4,7 @@ import hudson.Util; ...@@ -4,6 +4,7 @@ import hudson.Util;
import hudson.util.HttpResponses; import hudson.util.HttpResponses;
import jenkins.model.Jenkins; import jenkins.model.Jenkins;
import org.kohsuke.stapler.HttpResponse; import org.kohsuke.stapler.HttpResponse;
import org.kohsuke.stapler.interceptor.RequirePOST;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
...@@ -48,6 +49,7 @@ public class HsErrPidFile { ...@@ -48,6 +49,7 @@ public class HsErrPidFile {
return HttpResponses.staticResource(file); return HttpResponses.staticResource(file);
} }
@RequirePOST
public HttpResponse doDelete() throws IOException { public HttpResponse doDelete() throws IOException {
Jenkins.getInstance().checkPermission(Jenkins.ADMINISTER); Jenkins.getInstance().checkPermission(Jenkins.ADMINISTER);
file.delete(); file.delete();
......
...@@ -45,7 +45,7 @@ THE SOFTWARE. ...@@ -45,7 +45,7 @@ THE SOFTWARE.
</tr> </tr>
</table> </table>
<div> <div>
<form action="${rootURL}/ignore"> <form method="post" action="${rootURL}/ignore">
<f:submit value="${%label}" /> <f:submit value="${%label}" />
</form> </form>
</div> </div>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册