X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=security%2Feclipse%2Fplugins%2Forg.argeo.security.ui.rcp%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fui%2Frcp%2FSecureRap.java;fp=security%2Feclipse%2Fplugins%2Forg.argeo.security.ui.rcp%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fsecurity%2Fui%2Frcp%2FSecureRap.java;h=964de7c397513ccf314208fd011dfd8b724f198a;hb=8fa413581f5a42ace1817da8c84c86e8ea47fb15;hp=a426d4579bc009ae3e1a1d579940d685ef580b95;hpb=9f3b8f9394e9802121b194f0f5ba3c6e5b67309c;p=lgpl%2Fargeo-commons.git diff --git a/security/eclipse/plugins/org.argeo.security.ui.rcp/src/main/java/org/argeo/security/ui/rcp/SecureRap.java b/security/eclipse/plugins/org.argeo.security.ui.rcp/src/main/java/org/argeo/security/ui/rcp/SecureRap.java index a426d4579..964de7c39 100644 --- a/security/eclipse/plugins/org.argeo.security.ui.rcp/src/main/java/org/argeo/security/ui/rcp/SecureRap.java +++ b/security/eclipse/plugins/org.argeo.security.ui.rcp/src/main/java/org/argeo/security/ui/rcp/SecureRap.java @@ -1,53 +1,28 @@ package org.argeo.security.ui.rcp; -import java.security.PrivilegedAction; - -import javax.security.auth.Subject; - -import org.argeo.security.equinox.CurrentUser; -import org.eclipse.equinox.app.IApplication; -import org.eclipse.equinox.app.IApplicationContext; import org.eclipse.swt.widgets.Display; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.PlatformUI; import org.eclipse.ui.application.IWorkbenchWindowConfigurer; +import org.eclipse.ui.application.WorkbenchAdvisor; import org.eclipse.ui.application.WorkbenchWindowAdvisor; -public class SecureRap implements IApplication { - public Object start(IApplicationContext context) throws Exception { - String username = CurrentUser.getUsername(); - Integer result = null; - Display display = PlatformUI.createDisplay(); - try { - result = (Integer) Subject.doAs(CurrentUser.getSubject(), - getRunAction(display)); - } catch (Exception e) { - e.printStackTrace(); - } finally { - display.dispose(); - } - return result; - } - - @SuppressWarnings("rawtypes") - private PrivilegedAction getRunAction(final Display display) { - return new PrivilegedAction() { +/** Generic secure application for RAP. */ +public class SecureRap extends AbstractSecureApplication { - public Object run() { - int result = PlatformUI.createAndRunWorkbench(display, - new ApplicationWorkbenchAdvisor()); - return new Integer(result); + @Override + protected WorkbenchAdvisor createWorkbenchAdvisor() { + return new SecureWorkbenchAdvisor() { + public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor( + IWorkbenchWindowConfigurer configurer) { + return new RapSecureWorkbenchWindowAdvisor(configurer); } + }; } public void stop() { - final IWorkbench workbench; - try { - workbench = PlatformUI.getWorkbench(); - } catch (Exception e) { - return; - } + final IWorkbench workbench = PlatformUI.getWorkbench(); if (workbench == null) return; final Display display = workbench.getDisplay(); @@ -60,11 +35,4 @@ public class SecureRap implements IApplication { }); } - class ApplicationWorkbenchAdvisor extends SecureWorkbenchAdvisor { - public WorkbenchWindowAdvisor createWorkbenchWindowAdvisor( - IWorkbenchWindowConfigurer configurer) { - return new RapSecureWorkbenchWindowAdvisor(configurer); - } - } - }