org.argeo.slc.demo.minimal,\
#org.argeo.security.ui.initialPerspective=org.argeo.slc.client.ui.slcExecutionPerspective
-org.argeo.security.ui.initialPerspective=org.argeo.slc.client.ui.dist.distributionPerspective
+#org.argeo.security.ui.initialPerspective=org.argeo.slc.client.ui.dist.distributionPerspective
+org.argeo.security.ui.initialPerspective=org.argeo.security.ui.userHomePerspective
#spring.security.strategy=MODE_INHERITABLETHREADLOCAL
</menu>
</menuContribution> -->
</extension>
+ <extension
+ point="org.eclipse.ui.activities">
+ <!-- TODO: find a way to exclude evrything -->
+ <activityPatternBinding
+ activityId="org.argeo.slc.client.ui.slcActivity"
+ isEqualityPattern="true"
+ pattern="org.argeo.slc.client.ui.dist/org.argeo.slc.client.ui.dist.distributionPerspective">
+ </activityPatternBinding>
+ <activityPatternBinding
+ activityId="org.argeo.security.ui.adminActivity"
+ isEqualityPattern="true"
+ pattern="org.argeo.slc.client.ui/org.argeo.slc.client.ui.slcExecutionPerspective">
+ </activityPatternBinding>
+ </extension>
</plugin>
id="org.argeo.slc.client.ui.processEditorInputFactory">
</factory>
</extension>
+ <extension
+ point="org.eclipse.ui.activities">
+ </extension>
+ <extension
+ point="org.eclipse.ui.activities">
+ <activity
+ description="SLC users"
+ id="org.argeo.slc.client.ui.slcActivity"
+ name="SLC">
+ <enabledWhen>
+ <with variable="roles">
+ <iterate ifEmpty="false" operator="or">
+ <equals value="ROLE_SLC" />
+ </iterate>
+ </with>
+ </enabledWhen>
+ </activity>
+ <!-- TODO: find a way to exclude evrything -->
+ <activityPatternBinding
+ activityId="org.argeo.slc.client.ui.slcActivity"
+ isEqualityPattern="true"
+ pattern="org.argeo.slc.client.ui/org.argeo.slc.client.ui.slcExecutionPerspective">
+ </activityPatternBinding>
+ <activityPatternBinding
+ activityId="org.argeo.security.ui.adminActivity"
+ isEqualityPattern="true"
+ pattern="org.argeo.slc.client.ui/org.argeo.slc.client.ui.slcExecutionPerspective">
+ </activityPatternBinding>
+ </extension>
</plugin>
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.argeo.slc.SlcException;
import org.argeo.slc.execution.ExecutionFlowDescriptor;
import org.argeo.slc.execution.ExecutionStep;
import org.argeo.slc.process.RealizedFlow;
+import org.springframework.security.Authentication;
+import org.springframework.security.context.SecurityContextHolder;
/** Thread of a single execution */
public class ExecutionThread extends Thread {
public void run() {
// authenticate thread
-// Authentication authentication = getProcessThreadGroup()
-// .getAuthentication();
-// if (authentication == null)
-// throw new SlcException("Can only execute authenticated threads");
-// SecurityContextHolder.getContext().setAuthentication(authentication);
+ Authentication authentication = getProcessThreadGroup()
+ .getAuthentication();
+ if (authentication == null)
+ throw new SlcException("Can only execute authenticated threads");
+ SecurityContextHolder.getContext().setAuthentication(authentication);
if (getContextClassLoader() != null) {
if (log.isTraceEnabled())
import org.argeo.slc.execution.ExecutionStep;
import org.argeo.slc.process.RealizedFlow;
import org.argeo.slc.process.SlcExecution;
+import org.springframework.security.Authentication;
+import org.springframework.security.context.SecurityContextHolder;
/** Thread of the SLC Process, starting the sub executions. */
@SuppressWarnings("deprecation")
public final void run() {
// authenticate thread
- // Authentication authentication = getProcessThreadGroup()
- // .getAuthentication();
- // if (authentication == null)
- // throw new SlcException("Can only execute authenticated threads");
- // SecurityContextHolder.getContext().setAuthentication(authentication);
+ Authentication authentication = getProcessThreadGroup()
+ .getAuthentication();
+ if (authentication == null)
+ throw new SlcException("Can only execute authenticated threads");
+ SecurityContextHolder.getContext().setAuthentication(authentication);
// log.info("\n##\n## SLC Process #" + process.getUuid() +
// " STARTED by "
import org.argeo.slc.execution.ExecutionStep;
import org.argeo.slc.process.SlcExecution;
import org.argeo.slc.process.SlcExecutionStep;
+import org.springframework.security.Authentication;
+import org.springframework.security.context.SecurityContextHolder;
/** The thread group attached to a given {@link SlcExecution}. */
@SuppressWarnings("deprecation")
public class ProcessThreadGroup extends ThreadGroup {
private final ExecutionModulesManager executionModulesManager;
private final ProcessThread processThread;
-// private final Authentication authentication;
+ private final Authentication authentication;
private final static Integer STEPS_BUFFER_CAPACITY = 5000;
private BlockingQueue<ExecutionStep> steps = new ArrayBlockingQueue<ExecutionStep>(
+ " thread group");
this.executionModulesManager = executionModulesManager;
this.processThread = processThread;
-// this.authentication = SecurityContextHolder.getContext()
-// .getAuthentication();
+ this.authentication = SecurityContextHolder.getContext()
+ .getAuthentication();
}
-// public Authentication getAuthentication() {
-// return authentication;
-// }
+ public Authentication getAuthentication() {
+ return authentication;
+ }
public void dispatchAddStep(ExecutionStep step) {
// legacy