diff --git a/core/src/main/java/hudson/model/Executor.java b/core/src/main/java/hudson/model/Executor.java index 12df7238601e61036f30d9da7fc430534a1d06fc..9277956047109c2471620fa8c4b61c675b6199db 100644 --- a/core/src/main/java/hudson/model/Executor.java +++ b/core/src/main/java/hudson/model/Executor.java @@ -1,8 +1,11 @@ package hudson.model; import hudson.Util; +import hudson.security.ACL; import org.kohsuke.stapler.StaplerRequest; import org.kohsuke.stapler.StaplerResponse; +import org.acegisecurity.Authentication; +import org.acegisecurity.context.SecurityContextHolder; import javax.servlet.ServletException; import java.io.IOException; @@ -39,6 +42,9 @@ public class Executor extends Thread implements ModelObject { } public void run() { + // run as the system user. see ACL.SYSTEM for more discussion about why this is somewhat broken + SecurityContextHolder.getContext().setAuthentication(ACL.SYSTEM); + try { while(true) { if(Hudson.getInstance().isTerminating())