Remove dependency to Spring Security
[lgpl/argeo-commons.git] / org.argeo.security.ui / src / org / argeo / security / ui / PrivilegedJob.java
index 33ee4a6c9be86afcefcc15fd661e5e519249ddde..3a9ade427bf4794151526baba5680b91788918d3 100644 (file)
@@ -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<IStatus> privilegedAction = new PrivilegedAction<IStatus>() {
                        public IStatus run() {
-                               SecurityContextHolder.getContext().setAuthentication(
-                                               authentication);
                                return doRun(progressMonitor);
                        }
                };