X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.security.ui%2Fsrc%2Forg%2Fargeo%2Fsecurity%2Fui%2FPrivilegedJob.java;h=3a9ade427bf4794151526baba5680b91788918d3;hb=94c0a695c972463b613d919f615f3d92642c75d5;hp=33ee4a6c9be86afcefcc15fd661e5e519249ddde;hpb=5277f95708da66ef5e1791f0301056506768daf7;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.security.ui/src/org/argeo/security/ui/PrivilegedJob.java b/org.argeo.security.ui/src/org/argeo/security/ui/PrivilegedJob.java index 33ee4a6c9..3a9ade427 100644 --- a/org.argeo.security.ui/src/org/argeo/security/ui/PrivilegedJob.java +++ b/org.argeo.security.ui/src/org/argeo/security/ui/PrivilegedJob.java @@ -1,5 +1,6 @@ package org.argeo.security.ui; +import java.security.AccessControlContext; import java.security.AccessController; import java.security.PrivilegedAction; @@ -8,22 +9,22 @@ import javax.security.auth.Subject; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.jobs.Job; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.context.SecurityContextHolder; /** * Propagate authentication to an eclipse job. Typically to execute a privileged * action outside the UI thread */ public abstract class PrivilegedJob extends Job { - - private final Authentication authentication; - private Subject subject; + private final Subject subject; public PrivilegedJob(String jobName) { + this(jobName, AccessController.getContext()); + } + + public PrivilegedJob(String jobName, + AccessControlContext accessControlContext) { super(jobName); - authentication = SecurityContextHolder.getContext().getAuthentication(); - subject = Subject.getSubject(AccessController.getContext()); + subject = Subject.getSubject(accessControlContext); // Must be called *before* the job is scheduled, // it is required for the progress window to appear @@ -34,8 +35,6 @@ public abstract class PrivilegedJob extends Job { protected IStatus run(final IProgressMonitor progressMonitor) { PrivilegedAction privilegedAction = new PrivilegedAction() { public IStatus run() { - SecurityContextHolder.getContext().setAuthentication( - authentication); return doRun(progressMonitor); } };